- •1.4. Типовые периферийные модули микроконтроллеров
- •1.4.1. Модули параллельных портов ввода-вывода
- •1.4.2. Модули таймеров/счетчиков и процессоров событий
- •1.4.3. Модули последовательного обмена
- •1.4.4. Модуль аналого-цифрового преобразователя
- •1.4.5. Модуль цифроаналогового преобразователя
- •1.4.6. Модуль аналогового компаратора
- •1.5. Система команд микроконтроллера
- •1.5.1. Формат команд
- •1.5.2. Система команд
- •1.5.2. Методы адресации
- •1.6. Разработка прикладных программ
1.4.4. Модуль аналого-цифрового преобразователя
Практически во всех семействах современных микроконтроллеров имеются модели, включающие в состав функциональных модулей аналого-цифровые преобразователи (ADC – Analog to Digital Converter) различной разрядности. Модуль АЦП применяется для ввода в МК аналоговых сигналов, поступающих от различных датчиков физических величин, и их преобразования в цифровой код для дальнейшей программной обработки. МК с интегрированными АЦП являются удобным решением для создания гибких систем сбора и анализа данных, производящих обработку не только цифровой, но и аналоговой информации.
В состав МК обычно включают 8…16-разрядные многоканальные преобразователи, построенные на принципе последовательного приближения. В общем случае структура типового модуля АЦП может быть представлена в виде, показанном на рис. 1.22.
|
|
|
Рис. 1.22. Модуль аналого-цифрового преобразователя |
Кратко работа АЦП может быть описана следующим образом. После запуска АЦП преобразуемый аналоговый сигнал с одного из входов PA1…PAN поступает через выбранный с помощью мультиплексора канал на измерительный вход U и фиксируется на весь период преобразования во входящем в состав АЦП устройстве выборки-хранения. Затем начинается непосредственно сама процедура последовательного приближения, длительность которой занимает для типовых модулей от единиц до десятков микросекунд. По завершении цикла преобразования в выходные регистры АЦП ADCL и ADCH заносится соответственно младшая и старшая части цифрового кода, соответствующего величине преобразуемого аналогового сигнала. Полученный код может быть считан из этих регистров и использован в ходе выполнения прикладной программы.
Модули преобразователей в различных семействах МК имеют большой набор встроенных блоков, функций и свойств, которые конфигурируются с использованием регистров специальных функций АЦП и могут быть легко изменены в процессе работы программы. Рассмотрим процедуры конфигурации более подробно с описанием битов регистров специальных функций, с помощью которых они реализуются.
Входные аналоговые сигналы подаются на АЦП с внешних выводов микроконтроллера PA1…PAN через многоканальный аналоговый мультиплексор MUX, который служит для подключения одного из N источников аналоговых сигналов к измерительному входу U АЦП. Выбор источника сигнала для измерения осуществляется посредством записи номера канала мультиплексора в разряды Выбор канала регистра специальных функций АЦП.
Выходной код преобразователя, соответствующий величине входного аналогового сигнала, заносится в выходные регистры АЦП ADCL (младшая часть) и ADCH (старшая часть), откуда он может быть считан через шину данных для дальнейшей обработки. Для обеспечения достоверности считываемых данных часто применяется специальная логика защиты. При ее использовании первым всегда должен быть считан младший байт из регистра ADCL, после чего обращение к выходным регистрам АЦП блокируется до момента считывания старшего байта из регистра ADCH. После считывания кода из регистра ADCH блокировка снимается, и занесение данных в выходные регистры возобновляется.
Величина опорного напряжения Vref определяет как диапазон измеряемых значений напряжения на аналоговых входах МК, так и разрешающую способность АЦП, равную Vref/2n, где n – разрядность АЦП. В качестве источника опорного напряжения, подключаемого к входу VREF АЦП, в некоторых моделях МК можно использовать либо встроенный источник опорного напряжения (ИОН), либо внешний прецизионный ИОН, подключенный к выводу PVR микроконтроллера. Выбор одного из этих вариантов задается битом Выбор ИОН. В некоторых МК напряжение встроенного ИОН может задаваться программно. Для достижения максимальной точности измерений следует выбирать максимально возможное значение опорного напряжения.
Источником синхронизирующих импульсов, поступающих на вход модуля АЦП SINC, может служить либо специальный встроенный генератор синхроимпульсов, либо тактовый генератор. Выбор одного из этих вариантов обеспечивается битом Источник синхронизации. В случае использования тактового генератора требуемая частота синхронизации может быть задана с помощью делителя, коэффициент деления которого задается битами Задание коэффициента деления.
Запуск АЦП производится через вход START и в большинстве МК может производиться как программно, так и внешним сигналом на выводе PST микроконтроллера. Выбор программного или внешнего запуска осуществляется соответствующей установкой бита Управление запуском, при выборе программного запуска он может быть выполнен установкой бита Программный запуск.
АЦП может работать в двух режимах – в циклическом режиме и режиме однократного преобразования. В циклическом режиме АЦП осуществляет циклы преобразования непрерывно, а в режиме однократного преобразования делается лишь одно преобразование. Задание одного из этих режимов задается через вход O/M битом Запуск однократный/циклический.
При завершении каждого цикла преобразования АЦП срабатывает триггер готовности данных AF, устанавливающий бит Флаг прерывания AF в регистре специальных функций и формирующий запрос на прерывание от АЦП. Обработка прерывания от АЦП может быть программно запрещена или разрешена с помощью бита Разрешение прерывания от АЦП.
В регистрах специальных функций АЦП в некоторых семействах МК имеется бит Выключение АЦП, установка которого приводит к снятию питания с АЦП. Это позволяет снизить энергопотребление в том случае, когда АЦП не используется.

