Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с АЦП
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
//Nikson
Помогите пожалуйста разобраться с непонятной проблемой в работе АЦП.
Глюк был обнаружен в "большой" схеме и программе. Для эксперимента выкинул всё из схемы, а тестовую программу взял из slac015k, но всё равно происходит вот что:

На вход АЦП контроллера подаётся напряжение с потенциометра. К этому же входу также подключен вольтметр. Подкручивая потенциометр, постепенно уменьшаю напряжение от 2,5В до 0,0В на входе АЦП, что и подтверждается показаниями вольтметра. А вот если контролировать показания АЦП в программе, то сначала напряжения совпадают, в интервале примерно 1,4В - 1,2В контроллер выдаёт постоянное значение примерно 1,25В (если в отсчётах - 0x07FF, ровно половина диапазона), потом опять показания совпадают. Вот попытался изобразить график: (наклонная прямая - показания вольтметра, точками показаны показания АЦП в контроллере).



Программа (пробовал разные настройки, например вот в таком виде):

Код
#include  <msp430x13x.h>

static double v_in = 0.0;

int main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  P6SEL |= 0xFF;                            // Enable all A/D channels
  ADC12CTL0 = ADC12ON + SHT0_2;             // Turn on ADC12, set sampling time
  ADC12CTL1 = SHP;                          // Use sampling timer
  ADC12MCTL0 = SREF_2 + INCH_7;             // Vr+ = VeREF+ (external)
  ADC12CTL0 |= ENC;                         // Enable conversions

  while (1)
  {
    ADC12CTL0 |= ADC12SC;                   // Start conversion
    while ((ADC12IFG & BIT0) == 0)
           ;
    v_in = ADC12MEM0 * 2.5 / 4095.0;        // BREAKPOINT HERE
  }
}


По схеме: контроллер питается от 3,3В, внешнее опорное напряжение 2,5В, есть аналоговая земля, между входом и AVss подвешен конденсатор (пробовал и без него), пробовал три разных контроллера (два 149-ых и один 133-ий), схема в принципе тоже менялась...

Везде одно и то же - "подвисание" показаний в середине диапазона. Чувствую, что ерунда какая-то, но в чём дело - не могу разобраться. Нужен свежий взгляд.

В чём может быть дело?
rezident
Аналоговая и цифровая (AVss и DVss) земли имеют соединение?
Измерение при подсоединенном вольтметре производите? А если померять вольтметром, отсоединить его и затем только оцифровать напряжение АЦП, результат оцифровки такой же получается?
Shread
Тоже есть пара вопросов, по теме, а именно: 1) какой номинал перменника снаружи который, и внутренне сопротивление вольтметра(помнится у ADC12 не особенно большое входное сопротивление), вообще хотелось бы увидеть схему соединения REF и процессора, ну и потенциометр там же.
//Nikson
Отключил вольтметр, отключил JTAG (думал, может он влияет, подавая напряжение на схему), напряжение контролировал по ЖК-индикатору - та же картина. Вот например одна из нерабочих схем:


Цветом выделены элементы, которые добавлялись-убирались (хотя, в принципе, после добавления почти каждого элемента перепроверял работу). Запутался окончательно. sad.gif

rezident
Я бы лучше кондер не на вход АЦП, а на выход опоры поставил. Причем тантал.
А дроссель в питании зачем? Питание 3.3В импульсное что ли? И почему на AVcc кроме керамики (0,1uF) нет тантала впараллель?
ig_z
Цитата(//Nikson @ Sep 29 2006, 01:20) *
Отключил вольтметр, отключил JTAG (думал, может он влияет, подавая напряжение на схему), напряжение контролировал по ЖК-индикатору - та же картина. Вот например одна из нерабочих схем:


Цветом выделены элементы, которые добавлялись-убирались (хотя, в принципе, после добавления почти каждого элемента перепроверял работу). Запутался окончательно. sad.gif



Внимательно читаем раздел ацп в slau049e.pdf, либо здесь
http://www.gaw.ru/html.cgi/txt/doc/micros/msp430/arh/17.htm

Внутреннее сопротивление RI (около 2 кОм) мультиплексированного входа последовательно с конденсатором СI (максимум 40 пФ) представляется источником. Конденсатор СI должен быть заряжен напряжением VC в пределах ? младшего бита источника напряжения VS для получения точного 12-разрядного преобразования
...
Сопротивление источника RS и RI влияет на tsample. Следующее выражение может быть использовано для вычисления минимального времени выборки tsample при 12-разрядном преобразовании:

tsample > (RS+RI)*ln(213)*CI

При подстановке значений RI и СI, указанных выше, уравнение приобретает следующий вид: tsample > (RS+2кОм)*9.011*40pF

К примеру, если RS равно 10 кОм, tsample должно быть больше 4,33 мкС


Если предположить, что на выходе опорника проблем нет (а отсутствие емкости - источник потенциальных проблем), то среднее положение переменника - 11 ком последоватального сопротивления, либо 111 ком с красным резистором. В данной ситуации лучший выход - буферный усилитель прямо на вход ацп
rezident
Цитата(ig_z @ Sep 29 2006, 16:40) *
Если предположить, что на выходе опорника проблем нет (а отсутствие емкости - источник потенциальных проблем), то среднее положение переменника - 11 ком последоватального сопротивления, либо 111 ком с красным резистором. В данной ситуации лучший выход - буферный усилитель прямо на вход ацп

Да не нужен там буферный усилитель! Утечка по аналоговым входам такая же как и по всем остальным - не более 50нА. Смотрите любой даташит на это семейство. А вот правильно рассчитать время выборки это действительно необходимо.
P.S. ig_z, Вы ADC12 и SD16 часом не путаете? Проблемы с низким входным сопротивлением у второго вообще-то.
ig_z
Цитата(rezident @ Sep 29 2006, 15:47) *
Да не нужен там буферный усилитель! Утечка по аналоговым входам такая же как и по всем остальным - не более 50нА. Смотрите любой даташит на это семейство. А вот правильно рассчитать время выборки это действительно необходимо.
P.S. ig_z, Вы ADC12 и SD16 часом не путаете? Проблемы с низким входным сопротивлением у второго вообще-то.

Утечка действительно у всех выводов одинаковая. Но речь идет о том, что в среднем положении переменника результаты ацпирования приобретают подозрительные значения. Это, как вы правильно заметили, *может* быть результатом недостаточного времени выборки для зарядки емкости в ацп. Кардинально решается буферным усилителем. В условиях правильной разводки платы и корректных значений выборки времени преобразования - эта мера излишняя.
rezident
Буферный усилитель все равно выше головы не даст прыгнуть. "Проходное" сопротивление муксера (2кОм) никуда не денется. А вот доп. ОУ даст соответственно доп. потребление по питанию.
Dog Pawlowa
Чудеса...
Поэтому очень интересно понять причину.
Хорошо бы прикрутить какой-нибудь ЦАП и завести на вход АЦП.

Но есть конкретные мысли:
1) При подключении прибора в параллель возможно внесение искажений - например, появление наводок, которые детектируются на защитных диодах и искусственно притягивают сигнал к средней точке (2,5/2=1,25).
Подключите конденсатор большой емкости параллельно точкам, куда подключаете прибор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.