Поиск по сайту: |
|
По базе: |
|
Главная страница > Применение > Микроконтроллеров > AVR |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AVR400Простой аналогово-цифровой преобразовательОтличительные особенности:
Введение Данные рекомендации распространяются на приложения, критичные к стоимости и габаритам, в которых есть необходимость в простом аналогово-цифровом преобразовании. Ниже описано, как выполнить простой АЦП с использованием двух внешних компонентов: резистора и конденсатора. Данная разработка позволит получить компактное и недорогое устройство. Принцип действия: Практически все AVR-микроконтроллеры содержат аналоговый компаратор, который позволяет реализовать простой интегрирующий АЦП. Измеряемый сигнал подключается к инвертирующему входу, а опорный – к неинвертирующему. Опорный сигнал формируется на конденсаторе, который заряжается через резистор. Во время заряда конденсатора напряжение на нем будет изменяться по экспоненциальной зависимости. Если предположить, что диапазон изменения измеряемого сигнала ограничен пределом 0…2/5*VCC, то экспонента в указанных пределах прекрасно аппроксимируется прямой линией. Напряжение входного сигнала UIN определяется как время, которое требуется на зарядку конденсатора до напряжения, равного приложенному напряжению. За счет использования одного вывода порта В для управления зарядкой/разрядкой конденсатора требуется задействовать всего три вывода микроконтроллера (см. рисунок 1).
Постоянная времени RC-цепи должно быть выбрана исходя из соотношения: Параметры элементы для распространенных тактовых частот приведены в таблице 1. Если результирующая постоянная времени будет отличаться от расчетной, то это отобразиться на результате преобразования. Поэтому, требуется применение прецизионных элементов RC-цепи. Кривая изменения напряжения на конденсаторе вместе с аппроксимирующей прямой показаны на рисунке 2. Поскольку, напряжение питания в данном случае выступает как источник опорного напряжения, то оно не должно быть стабильным во время преобразования.
Таблица 1 – Значений компонентов RC-цепи
Для надежной работы АЦП необходимо, что конденсатор разряжался не более чем за 200 мкс между преобразованиями. Если конденсатор не разрядить полностью, то не будет возможности измерить малые величины напряжения. Если входное напряжение выше 2/5 VCC, то должен выдать максимальное значение кода. Это достигается за счет записи кода смещения в регистр таймера-счетчика 0 перед началом преобразования. После 512 циклов (64*8) таймер переполнится и сформируется запрос на соответствующее прерывание. Длительность данного процесса есть время заряда конденсатора до напряжения 2/5 VCC. Если напряжение находиться в пределах рабочего диапазона, то прерывание будет инициировать аналоговый компаратор. При этом, код смещения необходимо вычесть от вычисленного значения. Реализация АЦП использует прерывания таймера-счетчика 0 и аналогового компаратора. Это позволяет разгрузить микроконтроллер в процессе преобразования. Подпрограмма инициализации АЦП “convert_init” Данная процедура вызывается для инициализации АЦП перед его использованием. В результате вызова процедуры разрешаются прерывания по таймеру и компаратору, а управляющий вывод настраивается на выход. После выполнения инструкции. Команда “SEI”, которая разрешает работы всей системы прерываний, может использоваться для разрешения работы АЦП. Аналогично команда “CLI” выключает АЦП.
Таблица 2 – Характеристики процедуры “convert_init”
Таблица 3 – Использование регистров
Подпрограмма запуска преобразования “AD_convert” Данная процедура используется для запуска преобразования. Она перезагружает счетчик значением 256 – 64 и разрешает счет с частотой XTAL/8. Далее очищается флаг завершения преобразования (T-флаг регистра статуса) и включается заряд конденсатора.
Таблица 4 – Параметры процедуры “AD_convert”
Таблица 5 – Используемые регистры процедурой “AD_convert”
Процедура обработки прерывания аналогового компаратора “ANA_COMP” Данная процедура вызывается по завершении преобразования. Она выполняет загрузку значения таймера-счетчика 0, останавливает таймер и устанавливает флаг завершения преобразования (T-флаг в регистре статуса SREG). После этого из значения таймера вычитается код смещения. Код смещения при вычитании необходимо увеличить на 1, т.к. обработка прерывания требует минимум 7 циклов.
Tаблица 6 – Характеристики процедуры “ANA_COMP”
Таблица 7 – Использование регистров в процедуре “ANA_COMP”
Пример программы Предлагаемый пример использует данный принцип построения АЦП, используя описанные выше процедуры. Результат преобразования представляется в двоичном виде на выводах порта B.
Таблица 8 – Сводные характеристики программных средств для реализации АЦП
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|