Функционирование модуля АЦП
Регистры, используемые для управления модулем АЦП, приведены в Табл.7.1. Таблица7.1. Регистры управления модулем АЦП
Формат регистров ADCSRA и ADMUX приведен на Рис. 7.2 и Рис.7.3, а краткое описание функций их разрядов приведено в Табл. 7.2 и Табл. 7.3 соответственно.
Рис. 7.2 Формат регистра ADCSRA
Таблица 7.2 Разряды регистра ADCSRA
Рис.7.3. Формат регистра ADMUX Таблица7.3. Разряды регистра ADMUX Формат регистра SFIOR приведен на Рис. 7.4 (не используемые в данном случае разряды регистра SFIOR указаны на рисунке как «X»). $ Рис. 7.4 Регистр SFIOR Режим работы АЦП определяется состоянием разряда ADFR. Если он установлен в «1», АЦП работает в режиме непрерывного преобразования. В этом режиме запуск каждого следующего преобразования осуществляется автоматически после окончания текущего. Если же разряд ADFR сброшен в «0», АЦП работает в режиме одиночного преобразования и запуск каждого преобразования осуществляется по команде пользователя. В режимах одиночного и непрерывного преобразований цикл преобразования начинается по первому нарастающему фронту тактового сигнала после установки разряда ADSC. Если используется запуск по прерыванию, то цикл преобразования начинается по первому нараста- ющему фронту тактового сигнала после установки флага выбранного прерывания. Причем при установке этого флага осуществляется сброс предделителя модуля АЦП. Длительность цикла составляет 13 либо 14 тактов; выборка и запоминание входного сигнала осуществляется в течение первых тактов соответственно. Через 13 (14) тактов преобразование завершается, разряд ADSC аппаратно сбрасывается в «0» (в режиме одиночного преобразования) и результат преобразования сохраняется в регистре данных АЦП. Одновременно устанавливается флаг прерывания ADIF и генерируется запрос на прерывание. Как и флаги остальных прерываний, флаг ADIF сбрасывается аппаратно при запуске подпрограммы обработки прерывания от АЦП или программно, записью в него лог. 1. Разрешение прерывания осуществляется установкой в «1» разряда ADIE при установленном флаге I регистра SREG. Если АЦП работает в режиме непрерывного преобразования, новый цикл начнется сразу же после записи результата. В режиме одиночного преобразования новое преобразование может быть запущено сразу же после сброса разряда ADSC (до сохранения результата текущего преобразования). Однако реально цикл преобразования начнется не ранее чем через один такт после окончания текущего преобразования. Временные диаграмма,иллюстрирующие сказанное, приведены на Рис.7 8. Для формирования тактовой частоты модуля АЦП в нем имеется отдельный предделитель. Коэффициент деления предделителя и соответственно длительность преобразования опреде- ляется состоянием разрядов ADPS2…ADPS0 регистра ADCSR (см.Табл. 7.4) Наибольшая точность преобразования достигается, если тактовая частота модуля АЦП находится в диапазоне 50…200 кГц. Соответственно коэффициент деления предделителя рекомендуется выбирать таким, чтобы тактовая частота модуля АЦП находилась в указанном диапазоне. Если же точности преобразования меньше 10 разрядов достаточно, можно использовать более высокую частоту, увеличивая тем самым частоту выборки. В ATmega128x для этой цели предназначен разряд ADCHM регистра SFIOR. При установке этого разряда в «1» скорость преобразования АЦП увеличивается. Однако при этом увеличивается и потребление микроконтроллера
Рис.7.4. Временные диаграммы работы АЦП в режиме одиночного преобразования (а), в режиме запуска по прерыванию (б) и в режиме непрерывного преобразования (в)
Таблица7.4. Задание коэффициента деления предделителя АЦП Выводы микроконтроллера, подключенные к входу АЦП, определяются состоянием разрядов MUX4…MUX0 регистра ADMUX (см.Табл 7.5). Для каналов с дифференциальным входом указанные разряды определяют также коэффициент предварительного усиления входного сигнала. Таблица7.5. Управление входным мультиплексором в моделях ATmega128x
Как уже было отмечено, модуль АЦП может использовать различные источники опорного напряжения (ИОН). Выбор конкретного источника опорного напряжения осуществляется с помощью разрядов REFS1:REFS0 регистра ADMUX (Табл. 7.6)
Таблица 7.6. Выбор источника опорного напряжения
|