Страница 1 из 1

неверная разрядность АЦП у ATmega8535 в корпусе TQFP

Добавлено: Пн окт 20, 2008 00:34:38
GrigaN
Добрый день! Есть мк ATmega8535. В даташите написано, что если стоит коэффициент усиления 10, то разрядность АЦП уже не 10, а 8. Делаю выравнивание по левому краю, читаю только старший регист ADCH. результат неверный (сравнивал напряжение с обычным вольтметром). Если же считываю виртуальный регистр ADCW (в CV, выравнивание уже стандартное - по правому краю), то результат преобразования устраивает, но на фоне измерений пробегают шумы, причем фиг бы с ними, смушает только то что мелькают числа 1023, 1022, а значит разрядность АЦП при применение встроенного операционного усилителя с коэффициентом на 10х все таки также 10 бит, а не 8.. кто нибудь сталкивался с подобной проблемой?

Re: неверная разрядность АЦП у ATmega8535 в корпусе TQFP

Добавлено: Пн окт 20, 2008 10:54:23
SergeBS
GrigaN писал(а):Добрый день! Есть мк ATmega8535. В даташите написано, что если стоит коэффициент усиления 10, то разрядность АЦП уже не 10, а 8.
Проблема - с английским. 8-bit resolution - это 8-битное РАЗРЕШЕНИЕ, а не разрядность. Показывать будет цифирку - как обычно, но в 10 или 200 раз больше (от выбранного Ку зависит), чем при Ку=1, и 2 младших разряда из 10 будут плясать как хотят. Т.е. разрядность - 10 бит, а разрешение - 8 бит.

Добавлено: Пн окт 20, 2008 11:04:27
ARV
и второе: при выравнивании влево считывать все рано надо оба регистра, причем в правильном порядке: сначала ADCL, потом ADCH. значение ADCL можно игнорировать, если хватает 8-бит.

Добавлено: Пн окт 20, 2008 13:10:28
GrigaN
ARV писал(а):и второе: при выравнивании влево считывать все рано надо оба регистра, причем в правильном порядке: сначала ADCL, потом ADCH. значение ADCL можно игнорировать, если хватает 8-бит.
Блокировка младшего регистра происходит до того момента пока не будет считан старший.. нету смысла читать младший регист если требуется всего 8 бит. Просто читаю старший. я тоже поначалу так думал, но когда прошил двумя способами, рузультат тот же.

Добавлено: Пн окт 20, 2008 13:20:52
SergeBS
стр.208: 2 и начало 3 абз.:
The ADC generates a 10-bit result which is presented in the ADC Data Registers, ADCH and ADCL. By default, the result is presented right adjusted, but can optionally be presented left adjusted by setting the ADLAR bit in ADMUX.
If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH.

Добавлено: Пн окт 20, 2008 13:43:48
tych
SergeBS писал(а): it is sufficient to read ADCH.
AVR, даташит надо ЧТИТЬ !

Добавлено: Пн окт 20, 2008 13:52:57
GrigaN
SergeBS писал(а):стр.208: 2 и начало 3 абз.:
The ADC generates a 10-bit result which is presented in the ADC Data Registers, ADCH and ADCL. By default, the result is presented right adjusted, but can optionally be presented left adjusted by setting the ADLAR bit in ADMUX.
If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH.
Согласен, читал. Там и написано что погрешность 2 младших разряда.

Добавлено: Пн окт 20, 2008 13:57:00
GrigaN
tych писал(а):
SergeBS писал(а): it is sufficient to read ADCH.
AVR, даташит надо ЧТИТЬ !
заливал прошивку, где считываю только старший регистр ADCH, в гипертерминале получаю число единиц АЦП меньшее.. например: напряжение на термопаре 40мВ, читаю виртуальный регистр ADCW, получаю 80, умножаю на 0,5(вывод Vinпо даташиту для диф входа) получаю нужные 40мв.. а если считываю только регистр ADCH, получаю вместо 80 единиц АЦП, всего 20 единиц

Добавлено: Пн окт 20, 2008 14:03:41
GrigaN
ADC=512(Vпол-Vнег)K/Vоп

отсюда если Vнег=0:

Vпол=Vвх=ADC*Vоп/K*512 кстати кто знает почему 512 а не 256?

тогда Vвх(мв)=ADC*2560/10*512=0,5ADC

значит одна единица АЦП - это 0,5 мв..

Re: неверная разрядность АЦП у ATmega8535 в корпусе TQFP

Добавлено: Пн окт 20, 2008 14:12:37
GrigaN
SergeBS писал(а): Проблема - с английским. 8-bit resolution - это 8-битное РАЗРЕШЕНИЕ, а не разрядность. Показывать будет цифирку - как обычно, но в 10 или 200 раз больше (от выбранного Ку зависит), чем при Ку=1, и 2 младших разряда из 10 будут плясать как хотят. Т.е. разрядность - 10 бит, а разрешение - 8 бит.
Все, спасибо, до меня дошло! Просто если читать только 8 бит, то дискретность измерений будет низкая, всего 2мв