неверная разрядность АЦП у ATmega8535 в корпусе TQFP
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
Добрый день! Есть мк ATmega8535. В даташите написано, что если стоит коэффициент усиления 10, то разрядность АЦП уже не 10, а 8. Делаю выравнивание по левому краю, читаю только старший регист ADCH. результат неверный (сравнивал напряжение с обычным вольтметром). Если же считываю виртуальный регистр ADCW (в CV, выравнивание уже стандартное - по правому краю), то результат преобразования устраивает, но на фоне измерений пробегают шумы, причем фиг бы с ними, смушает только то что мелькают числа 1023, 1022, а значит разрядность АЦП при применение встроенного операционного усилителя с коэффициентом на 10х все таки также 10 бит, а не 8.. кто нибудь сталкивался с подобной проблемой?
- Реклама
Проблема - с английским. 8-bit resolution - это 8-битное РАЗРЕШЕНИЕ, а не разрядность. Показывать будет цифирку - как обычно, но в 10 или 200 раз больше (от выбранного Ку зависит), чем при Ку=1, и 2 младших разряда из 10 будут плясать как хотят. Т.е. разрядность - 10 бит, а разрешение - 8 бит.GrigaN писал(а):Добрый день! Есть мк ATmega8535. В даташите написано, что если стоит коэффициент усиления 10, то разрядность АЦП уже не 10, а 8.
и второе: при выравнивании влево считывать все рано надо оба регистра, причем в правильном порядке: сначала ADCL, потом ADCH. значение ADCL можно игнорировать, если хватает 8-бит.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
Блокировка младшего регистра происходит до того момента пока не будет считан старший.. нету смысла читать младший регист если требуется всего 8 бит. Просто читаю старший. я тоже поначалу так думал, но когда прошил двумя способами, рузультат тот же.ARV писал(а):и второе: при выравнивании влево считывать все рано надо оба регистра, причем в правильном порядке: сначала ADCL, потом ADCH. значение ADCL можно игнорировать, если хватает 8-бит.
стр.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.
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.
- Реклама
AVR, даташит надо ЧТИТЬ !SergeBS писал(а): it is sufficient to read ADCH.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
Согласен, читал. Там и написано что погрешность 2 младших разряда.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.
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
заливал прошивку, где считываю только старший регистр ADCH, в гипертерминале получаю число единиц АЦП меньшее.. например: напряжение на термопаре 40мВ, читаю виртуальный регистр ADCW, получаю 80, умножаю на 0,5(вывод Vinпо даташиту для диф входа) получаю нужные 40мв.. а если считываю только регистр ADCH, получаю вместо 80 единиц АЦП, всего 20 единицtych писал(а):AVR, даташит надо ЧТИТЬ !SergeBS писал(а): it is sufficient to read ADCH.
Последний раз редактировалось GrigaN Пн окт 20, 2008 14:04:57, всего редактировалось 1 раз.
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
- Сообщения: 8
- Зарегистрирован: Ср авг 27, 2008 14:29:31
Все, спасибо, до меня дошло! Просто если читать только 8 бит, то дискретность измерений будет низкая, всего 2мвSergeBS писал(а): Проблема - с английским. 8-bit resolution - это 8-битное РАЗРЕШЕНИЕ, а не разрядность. Показывать будет цифирку - как обычно, но в 10 или 200 раз больше (от выбранного Ку зависит), чем при Ку=1, и 2 младших разряда из 10 будут плясать как хотят. Т.е. разрядность - 10 бит, а разрешение - 8 бит.


