Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADC ATmega128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Инж
Доброе утро всем знатокам.
На 128 меге сижу уже второй год и вот появилась задача по измерению аналоговых сигналов.
Решил использовать внутренний АЦП.
Столкнулся с тем что если я в режиме Free Running опрашиваю один канал то впринципе все работает, но как только начинаю мультиплексировать каналы то начинается пляска данных.
Даташит затер до дыр перепробовал всякие варианты и по прерыванию и без. Идеи вобщем кончились.
Подскажите где собака зарыта.
singlskv
Цитата(Инж @ Apr 5 2007, 09:01) *
Доброе утро всем знатокам.
На 128 меге сижу уже второй год и вот появилась задача по измерению аналоговых сигналов.
Решил использовать внутренний АЦП.
Столкнулся с тем что если я в режиме Free Running опрашиваю один канал то впринципе все работает, но как только начинаю мультиплексировать каналы то начинается пляска данных.
Даташит затер до дыр перепробовал всякие варианты и по прерыванию и без. Идеи вобщем кончились.
Подскажите где собака зарыта.

В какой момент переключаете каналы ?
Покажите код, экстрасенсить дело утомительное smile.gif
_artem_
Если это не глюк связанный с моментом переключения то:
Есть у атмела инфа на даташите которая показывает псевдо схему устройства выборки и хранения . Конденсатор показан чтото в районе 10 пик если не ошибаюсь а сопротивления для заряда - 10к -100к . так что максимальная постоянная заряда получается в микросекунду или подольше . Поэтому после переключения мультиплексора подождите микросекунду или больше а затем начинайте преобразование. Иначе остаточный заряд УВХ от старого канала будет влиять на следующее измерение.
ZAO
Когда читается регистр данных АЦП, сначала читается ADCL а потом ADCH. В доке про это написано. Если делать наоборот - в одноканальном режиме все будет работать нормально, а в многоканальном начинаются проблемы.
rat
Цитата(Инж @ Apr 5 2007, 12:01) *
Доброе утро всем знатокам.
На 128 меге сижу уже второй год и вот появилась задача по измерению аналоговых сигналов.
Решил использовать внутренний АЦП.
Столкнулся с тем что если я в режиме Free Running опрашиваю один канал то впринципе все работает, но как только начинаю мультиплексировать каналы то начинается пляска данных.
Даташит затер до дыр перепробовал всякие варианты и по прерыванию и без. Идеи вобщем кончились.
Подскажите где собака зарыта.


После переключения канала перед снятием информации необходимо выждать интервал времени, превышающий время 1 преобразования. Интервал одного преобразования зависит от частоты преобразования АЦП, но минимальный, вроде, 13.5 мкС, посмотрите по даташиту и пересчитайте к вашей частоте
IgorKossak
Если первое измерение после переключения проигнорировать, а использовать второе и далее, то ошибок не будет.
В документации к ранним МК об этом писали.
djmixi(Димка)
С мегой 128 с мультиплексе работал все ок было - единственное после переключения нужно ждать несколько мкс.
Kovrov
я не понимаю - зачем ждать?
или пропускать одну конверсию
тем самым усложнять алгоритм?
если сделать подругому:
1) ADEN=0
2) UPDATE MUX
3) ADEN=1
4) start conversion
;---
теперь очередная конверсия уже с новым каналом ацп будет сопровождаться с одним дополнительным циклом преобразования...
Инж
Огромное всем спасибо за то что обсудили тему
Предполагаю что все мои проблемы связаны с последовательностью чтения регистров данных.
Как только проверю это то сообщу
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.