[an error occurred while processing this directive]
И ещё вотэто почитать надо
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Доктор ТуамОсес 10 июня 2006 г. 00:26
В ответ на: Большой - 2.3..2.7В. А еще шумит и дрейфит изрядно отправлено =AVR= 10 июня 2006 г. 00:08

АЦП в AVR странно функционирует.
Пытаюсь работать с внутренним АЦП ATmega8535 (10 бит).
Работает как-то странно.
Использую внутренний ИОН (2.56 В), AREF свободен.
Теоретически, чувствительность 2.56/1024 = 2.5 мВ.
До 5-6 мВ вообще не чувствует (нули). Начальный участок ужасный по точности. А дальше - приемлемо.
Работаю в режиме одиночных преобразований с оптимальной частотой (минимальную тоже пробовал - то же самое). Экземпляры менял.
Эначит ли это, что лучшего результата от встроенного АЦП добиться вобще не возможно? Или я что-то не так делаю?
Не оставляй в воздухе AREF. Вроде бы его нужно через конденсатор посадить на землю, если используются внутренние 2,56В. Ну а к чему Вам в воздухе AREF, подцепите его на питание +5В.
Насчет конденсатора то в руководстве есть схемка, правда питание на AVCC, через LC фильтр
10mH and 100nF
на моей страничке www.enigma2004.nm.ru я выложил пару примеров для работы с АЦП, промоделированных в Proteus, код на codevision посмотрите, может как то поможет.
Да еще в руководстве написано, что есть напряжение, ниже которого лучше не подовать на AREF (толи 2 толи 2.7 В)


О точности АЦП в AVR
Меня тут совсем запутали доброжелатели (или недоброжелатели) с этим АЦП.
Я привык считать, что LSB - это один квант, т.е. приращение входного напряжения, которое вызывает изменение младшего разряда.
Поэтому при заявленной погрешности 2LSB, на 1000 отсчетах я могу гарантировано получить результат от 998 до 1002.
Они же доказывают, что Атмел под LSB имеет в виду 2 младших значащих разряда и, используя такую путаницу в терминологии,
выдает свой 8-разрядный АЦП за 10-разрядный. Если это действительно так, то тогда понятно почему у них источник
якобы ОПОРНОГО напряжения "гуляет" в пределах от 2,4 до 2,7 вольт, при заявленном значении 2,56В. Такую ОПОРУ можно
соорудить на дешевых резисторах без подбора и не морочить голову с барьерными эффектами. На резисторах и термостабильность будет
достаточная.
Так что же все таки означает LSB в данном случае? Проверял ли кто-нибудь (и как) сколько разрядов можно в действительности получить от АЦП в AVR?

RE[1]: О точности АЦП в AVR
Путаница двух понятий.
Конечно, Atmel имел в виду LSB, как его понимают. Т.е единица мл. разряда, а не бит. И нормируется интегральная и дифф. погрешность, смещение, которые от измерения к измерению не меняются. Т.е. уж если получишь 998 вместо 1000, то так и будешь получать 998, а не 998-1002. Все эти погрешности можно убрать программно. АЦП реально по параметрам 10-разрядный, проверено.
То, что АЦП скорее 8-разрядный, объясняется шумом. Ну шумит он. И Atmel этого не скрывает. Реально действительно шумят 2 мл. бита. Если нужны мгновенные значения преобразования, то от него никуда не деться. Можно только снижать по возможности. Большое значение имеет правильно разведенная плата, питание, применение
режима sleep при преобразовании. Если большая скорость не нужна - усредняй результат и шум уберется, получишь свои 10 разрядов, даже больше можно.
Что касается внутренней опоры, то это для меня загадка. До сих пор не применял, сейчас как раз буду, результаты на серии из 100 изделий смогу проверить.
Вообще, даташите идет речь об абсолютном значении REF, а не о его случайных изменениях. Видимо, между источником на запрещенной зоне и выходом опоры есть каскад, параметры которого не настраиваются. Но в стабильности источника, имхо, можно не сомневаться. Иначе нафига бы он был нужен?
То же касается и встроенного усилителя на x20 при измерении в дифф. режиме. 20 раз - условная величина. Может и 18, а может и 22 (кстати, цифр не видел, но о приблизительности данной величины Atmel честно предупреждает). Но она стабильна для каждого экземпляра.
А вообще, в применении АЦП много тумана в даташитах... Ну ничего, скоро кое-что на практике прояснится.

RE[3]: Помогите откалибровать АЦП в мега16
Это хорошо, если АЦП имеет линейную х-ку.
Мне на 8535 пришлось сделать кусочно-линейную коррекцию, но потом обнаружил температурный и временный дрейф (+-8разрядов при t=+7...+40C). Короче АЦП д...


тиристорный эффект в AVR
Приходилось ли кому-нибудь встречаться с тиристорным эффектом в AVR-контроллерах? Например, в 2313 он проявляется так. В схеме реализован простейший АЦП, описанный документе avr400.pdf and avr400.asm. Что касается правильности подключения "земли" и других конструктивных особенностей, то можно быть уверенным - все в порядке. Однако, у контроллера имеется гальваническая связь с силовой "землей". В силовой части, кроме прочего, включается и выключается индуктивная нагрузка. Все меры по предотвращению выбросов и искрогашению приняты. Иногда при выключении индуктивной нагрузки контроллер зависает. Анализ показывает, что зависает именно из-за компаратора. При этом блокируется обработка прерываний от компаратора и таймера/счетчика. Сторожевой таймер делает сброс, но как только программа доходит до компаратора - она снова зависает. Внешний сброс (от кнопки) тоже не всегда помогает. Работа полностью восстанавливается только после выключения/включения питания. Монитор питания на сбросе стоит. EEPROM не используется. Если кто-то сталкивался с подобными явлениями, - поделитесь опытом, как с этим бороться. Спасибо за внимание.


RE[1]: Как быстро работает встроенный ADC ?
Я получал максимальную частоту АЦП на AVR 16000000/2/13~ 615КГц, по одному каналу или 16000000/2/25~320КГц по перебору. Эту частоту можна получить, только в том случае, если код отработчика прерывания ADC не более 13-ти или 25-ти циклов соответственно, не используешь CLI (если работа с АЦП по прерыванию) и писать только в ОЗУ (можно внешнее). Выводишь аппаратно можно с помощью SPI интерфейса на частоте не ниже 4MГц(25) или 8Мгц(13) . Иначе получишь частоту работы единичного цикла своей программы. Про точность не спрашивай, нужен был только ADC_h.
Удачи!

RE[1]: Как быстро работает встроенный ADC ?
В документации сказано, что время преобразования АЦП (в AVR) равно 25 тактов генератора АЦП, которое привязано к кварцу контроллера. Я проверял - частоту кварца делил до 250 кГЦ и время одного преобразования АЦП примерно 0,1 мсек. Рекомендуют делителем кварца выставлять частоту 50...200 кГц для точности ответа до 1 бита. Эта скорость выбрана между инерционостью компаратора и устройством выборки-хранение (УВХ). Можно поднять скорость АЦП, но пишут что погрешность увеличится.
Я ставит частоту АЦП 500 кГЦ при этом показания колебались в пределе не более 3 последних бит и время преобразования примерно 0,05 мсек. Можно ставить скорость больше, если точность последних бит не очень важна.

RE[2]: Как быстро работает встроенный ADC ?
В документации вроде сказано, что 25 ADC clock - это только первый раз, потом 13, но может я чего-то недопонял... Я пробовал делитель на 64/32/16/8/4/2 при частоте 8Мгц. Все равно мне не удалось подсчитывать импульсы при частоте более 12300-12500 Гц. (две выборки на импульс один канал) Т.е. какая бы скорость ADC clock не была - все равно частота с которой я мог выбрать данные с АЦП не превышала 25 000 Гц. Я готов пожертвовать точностью в обмен на производительность, но все равно больше 25 000 раз в сек. не получаеться... У кого нибудь получилось замерять застоту с четырех каналов по 10 000 Гц. ? Или внутренний АЦП на это не рассчитан ?


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru