АНАЛОГОВЫЙ КОМПАРАТОР
Аналоговый компаратор сравнивает входные напряжение на положительном входе PD6 (AIN0) и отрицательном входе PD7(AIN1). Когда напряжение на положительном входе больше напряжения на отрицательном, устанавливается бит ACO (Analog Comparator Output). Выход аналогового компаратора можно установить на работу с функцией захвата Таймера/Счетчика1. Кроме того, компаратор может вызывать свое прерывание. Пользова-
тель может установить установить срабатывание прерывания по нарастающему или спадающему фронту, или по переключению.
РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ АНАЛОГОВОГО КОМПАРАТОРА (ACSR).
ACSR
08h(28h) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ACD | AINBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | |
R\W | R | R | R\W | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Бит 7 - ACD - Запрещение аналогового компаратора. Когда этот бит установлен, питание от аналогового компаратора отключается. Для отключения компаратора этот бит можно установить в любое время. Обычно это свойство используется если критично потребление процессора в холостом режиме и восстановление работы процессора от аналогового компаратора не требуется. При изменении бита ACD прерывания от аналогового компаратора должны быть запрещены сбросом ACIE в регистре ACSR. В противном случае прерывание может произойти во время изменения бита.
Бит 6 - AINBG - Выбор напряжения сравнения аналогового компаратора. Когда этот бит установлен, вывод AIN0 подключается к напряжению 1.22 + 0.05В. Когда бит сброшен возобновляется нормальная работа вывода AIN0.
Бит 5 - ACO - Выход аналогового компаратора. Бит ACO непосредственно подключен к выходу аналогового компаратора.
Бит 4 - ACI - Флаг прерывания от аналогового компаратора. Этот бит устанавливается когда переключение выхода компаратора совпадает с режимом прерывания установленным битами ACIS1 и ACIS0. Программа обработки прерывания от аналогового компаратора выполняется если установлен бит ACIE (1) и установлен бит I в регистре состояния. ACI сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Другой способ очистить ACI - записать во флаг логическую единицу.
Бит 3 - ACIE - Разрешение прерывания от аналогового компаратора. Когда установлен этот бит и бит I регистра состояния, прерывания от аналогового компаратора отрабатываются. Если бит очищен (0), прерывания запрещены.
Бит 2 - ACIC - Захват по выходу аналогового компаратора. Если этот бит установлен, функция захвата таймера/счетчика1 управляется выходом аналогового компаратора. При этом выход компаратора подключается непосредственно к схеме обработки захвата, предоставляя удобные средства подавления шума и выбора фронта предусмотренные прерыванием захвата по входу. Когда бит очищен, схема захвата и компаратор разъединены. Чтобы компаратор мог управлять функцией захвата таймера/счетчика1, должен быть установлен бит TICIE1 в регистре TIMSK.
Биты 1,0 - ACIS1, ACIS0 - Выбор режима прерывания аналогового компаратора. Различные установки приведены ниже.
Таблица 19. Установки ACIS1/ACIS0
ACIS1 | ACIS0 | Описание |
0 | 0 | Прерывание от компаратора по переключению выхода |
0 | 1 | Зарезервировано |
1 | 0 | Прерывание от компаратора по спадающему фронту выхода |
1 | 1 | Прерывание от компаратора по нарастающему фронту выхода |
Примечание: При изменении битов ACIS1/ACIS0 прерывания от аналогового компаратора должны быть запрещены сбросом бита разрешения прерывания в регистре ACSR. Иначе прерывание может произойти при изменении битов.
АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ
Основные характеристики:
- разрешение 10 бит
- точность +- 1/2 младшего разряда
- время преобразования 65-260 uS
- 6 мультиплексирумых входов
- работа с полным размахом напряжения
- непрерывный режим или одиночные преобразования
- прерывание по завершению преобразования
- подавление шума в режиме Sleep
AT90S2333/4433 имеют 10-разрядный АЦП последовательного приближения. АЦП подключен к выходу шестивходового мультиплексора. Мультиплексор позволяет подключать на вход АЦП любой из входов порта C. В состав АЦП входит усилитель выборки-хранения, который позволяет сохранять на входе АЦП уровень напряжения постоянный за время преобразования.
АЦП имеет два отдельных вывода питания AVCC и AGND. ФПТВ должен подключаться к GND, напряжение на AVCC не должно отличаться от VCC более чем на +-0.3В. Внешнее опорное напряжение должно подаваться на вывод AREF. Это напряжение должно лежать в пределах AGND-AVCC.
РАБОТА АЦП
АЦП может работать в двух режимах - одиночного преобразования и непрерывном. В режиме одиночного преобразование каждое преобразование инициируется пользователем. В непрерывном режиме АЦП производит непрерывную обработку входного сигнала и обновляет регистр данных АЦП. Переключение режимов осуществляется битом ADFR в регистре ADCSR. Регистр ADMUX выбирает один из шести входов подключаемый ко входу АЦП. Кроме того в качестве входа можно использовать фиксированное опорное напряжение. Работа АЦП разрешается записью логической "1" в бит разрешения АЦП (ADEN в ADCSR). Перед первым преобразованием после разрешения АЦП выполняется одно "пустое" преобразование инициализирующее АЦП. Для пользователя единственное отличие первого преобразования от последующих заключается в том, что оно занимает 25 тактовых импульсов вместо обычных 13.
Преобразование запускается записью логической 1 в бит запуска АЦП - ADCS. Этот бит остается установленным пока идет преобразование и аппаратно сбрасывается, когда преобразование завершается. Если во время преобразования происходит переключение канала, пред переключением АЦП завершает текущее преобразование.
Операция выборки-хранения занимает один цикл после запуска преобразования. Это позволяет пользователю устанавливать номер входного канала одновременно с запуском преобразования Поскольку результат преобразования занимает 10 разрядов, для хранения результата используется два регистра ADCH и ADCL, которые должны быть прочитаны для получения результата. Для защиты данных, чтобы обеспечить чтение результата одного преобразования из обоих регистров используется специальная логика защиты данных.
Этот механизм работает так:
При чтении данных первым должен читаться регистр ADCL. Доступ АЦП к регистру данных блокируется. Это приводит к тому, что если прочитан байт ADCL и преобразование завершилось до того как прочитан регистр ADCH, регистр данных не изменяется и результат преобразования будет потерян. Доступ АЦП к регистру данных разрешается после чтения ADCH. АЦП имеет собственное прерывание, которое выполняется по завершению преобразования. Если доступ АЦП к регистру данных запрещен (между чтением ADCL и ADCH), прерывание вызывается даже если данные потеряны. Предварительный делитель АЦП работает с тактовыми частотами в диапазоне 50-200 kHz. Для полного преобразования АЦП необходимо 13 тактов, т.е. преобразование занимает от 65 до 260 uS. Корректное значение выхода АЦП гарантируется только для тактовых частот не выходящих из приведенного диапазона. Для генерации тактовой частоты АЦП из тактовой частоты процессора выше 100 кГц используются биты ADPS0-ADPS2. Предварительный делитель начинает счет в момент разрешения АЦП установкой бита ADEN в ADCSR. Предварительный делитель продолжает работать до тех пор, пока установлен бит ADEN и непрерывно сбрасывается если бит ADEN сброшен. Функция подавления шумов АЦП Одна из особенностей АЦП - функция подавления шумов, АЦП может осуществлять преобразования в режиме холостого хода, это позволят уменьшить шумы, наводимые ядром процессора. Чтобы воспользоваться этой возможностью, необходимо произвести следующую процедуру:
1. Удостоверьтесь, что АЦП разрешен и не занят преобразованием. Необходимо выбрать режим одиночного преобразования и разрешить прерывания по окончанию преобразования .
ADEN=1
ADSC=0
ADFR=0
ADIE=1
2. Перейти в режим холостого хода. АЦП начнет преобразование после того как остановится процессор.