Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

Глава 3. Периферийные устройства и пр ерывания 49 лях) объединяться в пары для измерения дифференциальных сигналов. Иногда АЦП дополнительно снабжается усилителем напряжения с фиксированными зна­ чениями коэффициента усиления 1 О и 200. Сам АЦП в базовой конфигурации представляет собой преобразователь последова­ тельного приближения с устройством выборки-хранения и фиксированным числом тактов преобразования, равным 1 3 (или 1 4 для дифференциального входа); первое преобразование после включения потребует 25 тактов для инициализации АЦП. Тактовая частота формируется аналогично тому, как это делается для таймеров, - с помощью специального предделителя тактовой частоты МК, который может иметь коэффициенты деления от 1 до 1 28 . Но, в отличие от таймеров, выбор такто­ вой частоты АЦП не совсем произволен, т. к. быстродействие аналоговых ко·мпо­ нентов ограничено. Поэтому коэффициент деления следует выбирать таким, чтобы при заданном «кварце» тактовая частота АЦП укладывалась в рекомендованный диапазон 50-200 кГц (т. е. максимум около 1 5 тыс . измерений в секунду). Увеличе­ ние частоты выборки допустимо, если не требуется достижение наивысшей точно­ сти преобразования . ПОДРОБНОСТИ Следящие преобразователи такого типа , как включенные в состав МК AVR, работают по следующей схеме. Берется цифроаналоговый преобразователь (ЦАП) нужной раз­ рядности . На его цифровые входы подается с некоего регистра код по определенному правилу, о котором далее. Выход ЦАП соединяется с одним из входов компаратора , на другой вход которого подается преобразуемое напряжение. Результат сравнения подается на схему управления, которая связана с этим самым регистром - формиро­ вателем кодов. Для того чтобы получить фиксированную длительность преобразова­ ния , правило формирования кодов следующее: сначала все разряды кода равны ну­ лю. В первом такте самый старший разряд устанавливается в единицу. Если выход ЦАП при этом превысил входное напряжение, т. е. компаратор перебросился в проти­ воположное состояние, то разряд возвращается в состояние логического О, в против­ ном же случае он остается в состоянии логической 1 . В следующем такте процедуру повторяют для следующего по старшинству разряда . Такой метод позволяет за число тактов, равное числу разрядов, сформировать в регистре код, соответствующий вход­ ному напряжению. Алгоритм имеет существенный недостаток: если за время преобра­ зования входное напряжение меняется , то схема может ошибаться , поэтому здесь обязательно наличие устройства выборки-хранения входной величины, которое до­ полнительно замедляет процесс и вносит свою погрешность в конечный результат. Разрешающая способность базовой конфигурации АЦП в МК АVR- 1 О двоичных разрядов, чего для большинства типовых применений достаточно (около О, 1 % от шкалы измерения) . В некоторых модификациях АVR- например, в моделях с ин­ дексом НУ А, предназначенных для контроля напряжения аккумуляторных батарей (таких, как АTmega 1 6HVА или ATmega8НVА), - разрядность АЦП повышена до 1 2, хотя принцип работы остался тем же . Абсолютная погрешность преобразо­ вания зависит от ряда факторов и в идеальном случае не превышает ±2 младших разрядов, что соответствует общей точности измерения примерно в 8 двоичных разрядов (погрешность 0,4% от шкалы измерения) . Для достижения этого результа­ т ту а необходимо принимать специальные меры: не только «вгонять» тактовую часто­ в рекомендованный диапазон, но и снизить по максимуму интенсивность цифро-

RkJQdWJsaXNoZXIy MTExODQxMg==