Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Конфигурация АЦП на msp430f5418
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Kirill85
Итак, уважаемые форумчане, есть у меня одна проблема. Пишу прошивку под МК модели 5418, настраиваю 6-ти канальный АЦП следующим образом:
CODE
#define ADC_SREF ADC12SREF_1

//Включить АЦП12 + включить режим множественной выборки + установить количество выборок=512 + подать напряжение 2.5 Вольта
ADC12CTL0 = ADC12ON + ADC12MSC + ADC12SHT0_10 + ADC12REFON + ADC12REF2_5V;
//включить режим автоматических преобразований выборок + подключить модуль АЦП12 к основному источнику тактирования (MCLK)
// + режим преобразований - повторяющийся одноканальный
ADC12CTL1 = ADC12SHP + ADC12SSEL_2 + ADC12CONSEQ_2;
ADC12MCTL0 = ADC12INCH_0 + ADC_SREF;
ADC12MCTL1 = ADC12INCH_1 + ADC_SREF;
ADC12MCTL2 = ADC12INCH_2 + ADC_SREF;
ADC12MCTL3 = ADC12INCH_3 + ADC_SREF;
ADC12MCTL4 = ADC12INCH_4 + ADC_SREF;
ADC12MCTL5 = ADC12INCH_5 + ADC_SREF;
ADC12MCTL6 = ADC12INCH_6 + ADC_SREF + ADC12EOS;
ADC12IE |= MASK_RE;
for(i = 0; i < 0x30; i++); //задержка для стабилизации модуля АЦП12
ADC12CTL0 |= ADC12ENC;
ADC12CTL0 |= ADC12SC;


В итоге на выходе АЦП получается 0 Вольт... Делал все по прилагаемым к даташитам примерам от TI. Гуглил Гугл. Ответа сего поведения МК не нашел. Подскажите, может я пропустил здесь что-то?
Буду очень вам признателен за участие.
rezident
Ну включили АЦП, настроили. А к входным пинам подключать.его собираетесь? То бишь порт P6 настроить нужно.

Еще к вам большая просьба. Форматируйте ваши исходники перед их публикацией на форуме (ограничивайте размер строк). Посмотрите, из-за вашего исходника страница разъехалась по ширине вдвое и появился горизонтальный скроллинг. Ну неудобно же читать-то!
Kirill85
Цитата(rezident @ Oct 27 2010, 23:55) *
Ну включили АЦП, настроили. А к входным пинам подключать.его собираетесь? То бишь порт P6 настроить нужно.

Еще к вам большая просьба. Форматируйте ваши исходники перед их публикацией на форуме (ограничивайте размер строк). Посмотрите, из-за вашего исходника страница разъехалась по ширине вдвое и появился горизонтальный скроллинг. Ну неудобно же читать-то!


Извините за неудобное форматирование, торопился, да.
А настройки P6 такие:
P6DIR = 0xff;
Больше ничего нет.
Что еще выставить по шестому порту забыл?
Спасибо большое за ответ.
rezident
Цитата(Kirill85 @ Oct 28 2010, 02:54) *
Извините за неудобное форматирование, торопился, да.

Ну дык исправьте сейчас. Время отведенное для редактирования вроде еще не вышло. Хотя бы комментарий удалите.
Цитата(Kirill85 @ Oct 28 2010, 02:54) *
P6DIR = 0xff;
Больше ничего нет.
Что еще выставить по шестому порту забыл?
Зашибись! Вы, извиняюсь, за нескромный вопрос User's Manual читали? А блок-схему пина в datasheet рассматривали? Весьма рекомендую почитать Chapter 10. Digital I/O.
Этой командой вы настроили порт на вывод логических уровней. А после старта там лог.0. Вот его вы и пытаетесь измерить.
Нужно по крайней мере для 6и младших пинов PORT6 (предполагаю, что P6.0-P6.5 используются как входы АЦП)
Код
P6DIR &= 0xC0;
P6SEL |= 0x3F;

А лучше все регистры проинициализировать явными значениями, без использования битовых масок, накладываемых на состояние после POR.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.