реклама на сайте
подробности

 
 
> Проблема с АЦП, получаю неверные показания в диапазоне
//Nikson
сообщение Sep 27 2006, 19:37
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 26-01-06
Из: Минск, Беларусь
Пользователь №: 13 651



Помогите пожалуйста разобраться с непонятной проблемой в работе АЦП.
Глюк был обнаружен в "большой" схеме и программе. Для эксперимента выкинул всё из схемы, а тестовую программу взял из 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-ий), схема в принципе тоже менялась...

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

В чём может быть дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
//Nikson
сообщение Sep 28 2006, 22:20
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 26-01-06
Из: Минск, Беларусь
Пользователь №: 13 651



Отключил вольтметр, отключил JTAG (думал, может он влияет, подавая напряжение на схему), напряжение контролировал по ЖК-индикатору - та же картина. Вот например одна из нерабочих схем:


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

Go to the top of the page
 
+Quote Post
ig_z
сообщение Sep 29 2006, 10:40
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(//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 ком с красным резистором. В данной ситуации лучший выход - буферный усилитель прямо на вход ацп
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 23:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01644 секунд с 7
ELECTRONIX ©2004-2016