Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Кроме того, 16-разрядные счетчики имеют возможность осуществлять "захват" (capture) внешних одиночных импульсов на специальном выводе. При этом может вызываться прерывание, а содержимое счетчика помещается в некий регистр. Сам счетчик при этом может обнуляться и начинать счет заново или просто продолжать счет. Такой режим удобен для измерения периода внешнего сигнала или для подсчета неких нерегулярных событий (вроде прохождения частиц в счетчике Гейгера).
Немаловажно, что источником та^ ких событий может быть также встроенный аналоговый компаратор. Все счетчики-таймеры допускают работу в т. н. режимах PWM, т. е. в качестве 8-, 9-, 10- или 16-битовых широтно-импульсных модуляторов (ШИМ), причем независимо друг от друга, что позволяет осуществлять многоканальный ШИМ. В технической документации этим режимам, в силу их сложности, многовариантности и громоздкости, посвящено много страниц. Простейший вариант использования этих режимов для воспроизведения звука мы кратко рассмотрим в главе 8 в связи с голосовой сигнализацией. Отметим, что синтез звука— не единственное и даже не самое приоритетное назначение режимов PWM, с их помощью также можно регулировать мощность или ток (например, при зарядке аккумуляторов), управлять двигателями, выпрямлять сигналы переменного тока, осуществлять цифроаналоговое преобразование. Подробнее о программировании счетчиков-таймеров мы поговорим в главе 8.

Кроме таймеров-счетчиков, во всех без исключения AVR-контроллёрах есть сторожевой (Watchdog) таймер. Он предназначен в основном для вывода МК из режима энергосбережения через определенный интервал времени, но может служить и для аварийного перезапуска МК— например, если работа программы зависит от прихода внешних сигналов, то при их потере (к примеру, из-за обрыва на линии) МК может "повиснуть", а Wathcdog-таймер выведет его из этого состояния. Подробнее о Watchdog-таймере см. главу 14.

Аналогово-цифровой преобразователь
АЦП входит во многие современные модели МК AVR, и в том числе может использоваться для замены функций более простого в обращении, но менее функционального аналогового компаратора. АЦП в AVR— многоканальный. Обычно число каналов равно 8, но в разных моделях оно может варьировать от 4 каналов в младших моделях семейства Tiny и 6 в ATmega8 до 16 каналов в ATmega2560. Многоканальность означает, что на входе единственного модуля АЦП установлен аналоговый мультиплексор, который может подключать этот вход к различным выводам МК для осуществления измерений нескольких независимых аналоговых величин с разнесением по времени. Входы мультиплексора могут работать по отдельности (в несимметричном режиме для измерения напряжения относительно "земли") или (в некоторых моделях) объединяться в пары для измерения дифференциальных сигналов. Иногда АЦП дополнительно снабжается усилителем напряжения с фиксированными значениями коэффициента усиления 10 и 200.
Сам АЦП представляет собой преобразователь последовательного приближения с устройством выборки-хранения и фиксированным числом тактов преобразования, равным 13 (или 14 для дифференциального входа; первое преобразование после включения потребует 25 тактов для инициализации АЦП). Тактовая частота формируется аналогично тому, как это делается для таймеров— с помощью специального предделителя тактовой частоты МК, который может иметь коэффициенты деления от 1 до 128. Но в отличие от таймеров, выбор тактовой частоты АЦП не совсем произволен, т. к. быстродействие аналоговых компонентов ограничено. Поэтому коэффициент деления следует выбирать таким, чтобы при заданном "кварце" тактовая частота АЦП укладывалась в рекомендованный диапазон 50-200 кГц (т. е. максимум около 15 тыс. измерений в секунду). Увеличение частоты выборки допустимо, если не требуется достижение наивысшей точности преобразования.

Заметки на полях
Следящие преобразователи такого типа, как в МК AVR, работают по следующей схеме. Берется ЦАП нужной разрядности. На его цифровые входы подается с некоего регистра код по определенному правилу, о котором далее. Выход ЦАП соединяется с одним из входов компаратора, на другой вход которого подается преобразуемое напряжение.
Результат сравнения подается на схему управления, которая связана с этим самым регистром — формирователем кодов. Для того чтобы получить фиксированную длительность преобразования, правило формирования кодов следующее: сначала все разряды кода равны нулю. В первом такте самый старший разряд устанавливается в единицу. Если выход ЦАП при этом превысил входное напряжение, т. е. компаратор перебросился в противоположное состояние, то разряд возвращается в состояние лог. 0, в противном же случае он остается в состоянии лог. 1. В следующем так-, те процедуру повторяют для следующего по старшинству разряда. Такой метод позволяет за число тактов, равное числу разрядов, сформировать в регистре код, соответствующий входному напряжению. Алгоритм имеет существенный недостаток — если за время преобразования входное напряжение меняется, то схема может ошибаться, поэтому здесь обязательно наличие устройства выборки-хранения, которое дополнительно замедляет процесс и вносит свою погрешность в конечный результат.

Разрешающая способность АЦП в МК AVR— 10 двоичных разрядов, чего для большинства типовых применений достаточно (около 0,1% шкалы). Абсолютная погрешность преобразования зависит от ряда факторов и в идеальном случае не превышает ±2 младших разрядов, что соответствует общей точности измерения примерно 8 двоичных разрядов (погрешность 0,25% шкалы измерения). Для достижения этого результата необходимо принимать специальные меры: не только "вгонять" тактовую частоту в рекомендованный диапазон, но и снижать по максимуму интенсивность цифровых шумов. Для этого рекомендуется, как минимум, не использовать оставшиеся выводы того же порта, к которому подключен АЦП, для обработки цифровых сигналов, правильно разводить платы, а как максимум — дополнительно к тому еще и включать специальный режим ADC Noise Reduction (что, впрочем не всегда удобно, см. главу 10).
Отметим также, что АЦП может работать в двух режимах: одиночного и непрерывного преобразования. Второй режим целесообразен лишь при максимальной частоте выборок. В остальных случаях его следует избегать, т. к. обойти в этом случае необходимость параллельной обработки цифровых сигналов, как правило, невозможно, а это означает снижение точности преобразования.



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru