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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Нелинейность в АЦП., используется внутреннее АЦП контроллера ЛПЦ2468
k_crimson
сообщение Jun 5 2009, 12:42
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 1-06-09
Пользователь №: 49 784



Схема подключения состоит из резисторного делителя 5В -> 3.3В (5.1кОм/10кОм). Большая нелинейность наблюдается в нижнем диапазоне - менее 1В, дальше нелинейность поменьше. Что посоветуете, как от нее избавиться?
Заранее спасибо.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 5 2009, 13:11
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Либо калибровать по нескольким точкам, либо ставить операционник. Ну или накрайняк резисторы побольше раз в стоsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
k_crimson
сообщение Jun 5 2009, 13:36
Сообщение #3





Группа: Новичок
Сообщений: 11
Регистрация: 1-06-09
Пользователь №: 49 784



Цитата(AHTOXA @ Jun 5 2009, 17:11) *
Либо калибровать по нескольким точкам, либо ставить операционник. Ну или накрайняк резисторы побольше раз в стоsmile.gif

Сейчас как раз пытаюсь калибровать, но думаю это не лучший выход.
Операционник - это интересно... а не знаете где можно найти схему его подключения для АЦП?
На счет резисторов не понял. В даташите на этот проц написано, что максимальное входное сопротивление для АЦП - 40кОм. Если увеличить резисторы, не знаю что и получится smile.gif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 5 2009, 14:08
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(k_crimson @ Jun 5 2009, 19:36) *
Сейчас как раз пытаюсь калибровать, но думаю это не лучший выход.
Операционник - это интересно... а не знаете где можно найти схему его подключения для АЦП?


Я думаю, сгодится банальный повторитель. Это когда сигнал подаётся на неинвертирующий вход, а инвертирующий вход соединяется с выходом. Коэффициент усиления получается единица. Перед повторителем ставите свои резисторы.

Цитата
На счет резисторов не понял. В даташите на этот проц написано, что максимальное входное сопротивление для АЦП - 40кОм. Если увеличить резисторы, не знаю что и получится smile.gif


Я перепутал, надо резисторы поменьше. Суть в том, что входное сопротивление АЦП должно быть много больше выходного сопротивления сигнала. Как-то такsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jun 5 2009, 18:13
Сообщение #5


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата
Я перепутал, надо резисторы поменьше. Суть в том, что входное сопротивление АЦП должно быть много больше выходного сопротивления сигнала. Как-то так


Резисторы таких размеров вполне приемлимые, главное acquisition time достаточным задать.

Смотрите даташиты. Емкость sampling capacitor там дана, сопротивление вашего делителя, входное сопротивление считаете необходимое время.

АЦП вообще весьма линейные устройства.
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Jun 8 2009, 04:16
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Цитата(ar__systems @ Jun 5 2009, 22:13) *
Резисторы таких размеров вполне приемлимые, главное acquisition time достаточным задать.

Смотрите даташиты. Емкость sampling capacitor там дана, сопротивление вашего делителя, входное сопротивление считаете необходимое время.

АЦП вообще весьма линейные устройства.


Я ставлю 150к на 33к + кондер на 0.1 мкФ и все линейно работает. REF без опорника просто от питания.

Сообщение отредактировал Step_ARM - Jun 8 2009, 04:17
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jun 8 2009, 06:50
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(AHTOXA @ Jun 5 2009, 20:08) *
Я думаю, сгодится банальный повторитель. Это когда сигнал подаётся на неинвертирующий вход, а инвертирующий вход соединяется с выходом. Коэффициент усиления получается единица. Перед повторителем ставите свои резисторы.

Слишком сложно такое и дорого. Надо rail-to-rail операционник, вдобавок такой который нормально себя ведет при Ку=1, иначе про измерение малых напряжений можно забыть.
Go to the top of the page
 
+Quote Post
k_crimson
сообщение Jun 9 2009, 06:44
Сообщение #8





Группа: Новичок
Сообщений: 11
Регистрация: 1-06-09
Пользователь №: 49 784



Проверил без делителя - напряжение идет напрямую на ногу контроллера. Та же картина. Приведу код, а то не знаю что еще делать...

инициализация:
// ADC0
PinBlockFuncSelect(PORT0, PIN23, PIN_ALT_FIRST); // настроить как аналоговый вход
PinBlockModeSet(PORT0, PIN23, PIN_NOT_PULL); // выключить подтяжку
pADC->pReg = &AD0DR0;
pADC->Channel = 1;
// ADC1
. . .
// ADC7

PCONP |= 1<<12; // turn on ADC
AD0CR |= 1<<21; // set PDN
AD0INTEN = 0; // disable interrupts
AD0CR |= 0xFF;
AD0CR |= (SYS_GetFpclk(ADC_PCLK_OFFSET)/4500000 - 1) << 8; // 4,5МГц
AD0CR |= ADCR_BURST; // Burst mode

чтение:
#if USE_BURST_MODE // Для Burst режима
while(!(*pADC->pReg & ADDR_DONE)); // Ждем бит DONE для считываемого канала
data = (*pADC->pReg >> 6) & 0x3FF;
AD0GDR;
#else
ADC->AD_CR &= 0xFFFFFF00;
ADC->AD_CR |= pADC->Channel); // change channel
while(Len--)
{
AD0CR |= 1<<24; // start conversion
while(!(AD0GDR & 0x80000000));
data[Len] = (AD0GDR >> 6) & 0x3FF;
}
AD0CR &= 0xF8FFFFFF; // stop ADC now
#endif

Может в коде что не так?
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jun 9 2009, 08:11
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



На отальные ноги АЦП не приходит случает напряжение более чем Vref?
Go to the top of the page
 
+Quote Post
k_crimson
сообщение Jun 9 2009, 09:27
Сообщение #10





Группа: Новичок
Сообщений: 11
Регистрация: 1-06-09
Пользователь №: 49 784



Цитата(Alechek @ Jun 9 2009, 12:11) *
На отальные ноги АЦП не приходит случает напряжение более чем Vref?

Нет, не приходит. Тоже вот в еррате прочитал такое замечание:
When the input voltage is Vi ≥ Vdd I/O + 0.5 v on each of the following port pins P0.23, P0.24. P0.25, P0.26, P1.30, P1.31, P0.12, and P0.13 configured as general purpose input pin (s)), current must be limited to less than 4 mA by using a series limiting resistor.
Пообрезал все каналы, где была вероятность превышения Vdd(=Vref) - пригоги все те же sad.gif
Go to the top of the page
 
+Quote Post
Altemir
сообщение Jun 9 2009, 13:56
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



k_crimson
А, может, это не нелинейность, а помехи/шум на эту ногу приходят? Какая длина линии до входа АЦП? Уменьшите до минимума частоту дискретизации АЦП (допустим, 50-100000 выборок/с)
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jun 9 2009, 18:26
Сообщение #12


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Скажите пожалуйста, а что может быть принято за эталонное напряжение? Где его берут?
Делители на сопротивлениях - ерунда, т.к. у резисторов номинал редко выдерживается точнее 1%, а любой АЦП на порядок точнее. А если меня 20-ти и более разрядный АЦП, то как определить на сколько он врет при измерении?
Даже источники опорного напряжения тут не годятся, т.к. несмотря на то, что напряжение они держат неплохо, но сама величина этого напряжения варьируется в пределах 0.1 вольта даже в одной партии.
Измерителные приборы? А за них кто поручится? Ведь даже самый точный вольтметр не потянет на одну миллионную часть шкалы. А вот 20-разрядный АЦП как раз имеет примерно такую величину дискреты.
ЦАПы? Но они и по разрядности уступают АЦПам, и наверняка сами имеют собственные погрешности, превосходящие АЦП, поскольку приготовить высокоточное напряжение технологически сложнее, чем его измерить.
Ситуация оказывается плачевной - АЦП имеют "класс точности" выше, что то напряжение, которые мы можем подать на их вход.

P.S. Такие вопросы возникают у меня из-за того, что все измерительные приборы положено "поверять". Таково формальное требование закона. Вот и любопытно мне, как можно АЦП "поверить", если подойти к делу честно.

Сообщение отредактировал Xenia - Jun 9 2009, 18:31
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 9 2009, 22:15
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Так там ещё паять "правильным" припоем надо, и разность нагрева мест пайки и температура деталей учитываетются. Надо поискать в аппнотах у фирм выпускающих многоразрядные АЦП и ЦАП. У бурр брауна была, читал, название непомню.
Go to the top of the page
 
+Quote Post
etoja
сообщение Jun 10 2009, 07:50
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



У АЦП нелинейность не больше двух младших разрядов.
Вот документация:

Убедитесь в правильности тактовой частоты на АЦП и дожидайтесь окончания преобразования.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
k_crimson
сообщение Jun 10 2009, 12:02
Сообщение #15





Группа: Новичок
Сообщений: 11
Регистрация: 1-06-09
Пользователь №: 49 784



Цитата(Xenia @ Jun 9 2009, 22:26) *
Скажите пожалуйста, а что может быть принято за эталонное напряжение? Где его берут?
Делители на сопротивлениях - ерунда, т.к. у резисторов номинал редко выдерживается точнее 1%, а любой АЦП на порядок точнее. А если меня 20-ти и более разрядный АЦП, то как определить на сколько он врет при измерении?

В качестве источника используется mastech hy3010 (30В, 10А) и проверяется еще тестером MY65 той же фирмы. К ним у меня больше доверия, чем к процессорному ацп smile.gif

Цитата(Altemir @ Jun 9 2009, 17:56) *
k_crimson
А, может, это не нелинейность, а помехи/шум на эту ногу приходят? Какая длина линии до входа АЦП? Уменьшите до минимума частоту дискретизации АЦП (допустим, 50-100000 выборок/с)

длина у каждого ~100mm, уменьшал частоту - не помогает.

Еще заметил, что при частоте проца 72МГц напряжение после делителя падает сильнее, чем при 48МГц.

Цитата(etoja @ Jun 10 2009, 11:50) *
У АЦП нелинейность не больше двух младших разрядов.
Вот документация:

Убедитесь в правильности тактовой частоты на АЦП и дожидайтесь окончания преобразования.

Читал я документацию. Окончания преобразования тоже дожидаюсь, в коде, который я выложил, это вроде видно.
Go to the top of the page
 
+Quote Post

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

 


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


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