![]() ![]() ![]() ![]() |
|
|
![]() |
Аналого-цифровой преобразователь микроконтроллера семейства MCS-51/52 (например, типа SAB 80515 фирмы Siemens или 80C51GB) обеспечивает 8 битное преобразование и имеет восемь мультиплексных каналов аналогового входного сигнала "на чипе". Кроме того, аналого-цифровой преобразователь имеет схему выборки-хранения и возможность программирования опорных напряжений, что позволяет увеличивать точность преобразования, сужая пределы измерения. Преобразование осуществляется методом последовательного приближения с использованием конденсаторной цепи. Длительность цикла преобразования от 15 до 29 машинных циклов. На рисунке показана блок-схема аналого-цифрового преобразователя (блоки, закрашенные желтым, являются гиперссылками).
В нем имеются три доступных для пользователей специальных функциональных регистра:
(адрес - 0D8H, возможна побитовая адресация)
BD | CLK | - | BSY | ADM | MX2 | MX1 | MX0 | Бит |
0DFH | 0DEH | 0D0H | 0DCH | 0DBH | 0DAH | 0D9H | 0D8H | Адрес |
Регистр ADCON используется, чтобы
Символ | Позиция | Функция | |||||||||||||||||||||||||||||||||||||||||||||
MX0 | ADCON.0 | Выбор канала аналогового входного сигнала, см. таблицу.
| |||||||||||||||||||||||||||||||||||||||||||||
MX1 | ADCON.1 | ||||||||||||||||||||||||||||||||||||||||||||||
MX2 | ADCON.2 | ||||||||||||||||||||||||||||||||||||||||||||||
ADM | ADCON.3 | Режим аналого-цифрового преобразования. Если ADM = 1 - непрерывное преобразование. Если ADM = 0, преобразователь останавливается после одного преобразования. | |||||||||||||||||||||||||||||||||||||||||||||
BSY | ADCON.4 | Флаг занятости. Этот флаг указывает, происходит преобразование (BSY = 1) или нет (BSY = 0). | |||||||||||||||||||||||||||||||||||||||||||||
- | ADCON.5 | Зарезервирован (должен быть 0). | |||||||||||||||||||||||||||||||||||||||||||||
CLK | ADCON.6 | (Используется не для управления АЦП) Включение синхронизации системы. Если равно 1, синхросигнал с t /12 частотой генератора подается на вывод P1. 6/CLKOUT. CLK = 0 блокирует синхронизирующий вывод. | |||||||||||||||||||||||||||||||||||||||||||||
BD | ADCON.7 | (Используется не для управления АЦП) Включение режима передачи со скоростью в бодах. Если равно 1, то осуществляется прием в режиме 1 и 3 последовательного порта из внутреннего генератора скоростей в бодах. |
Специальный функциональный регистр ADDAT, фиксирует результат преобразования (8 бит). Данные сохраняются в ADDAT, пока результат не замещается данными следующего преобразования. Новое значение появляется в ADDAT на 15-ом машинном цикле после того, как преобразование было начато. ADDAT может читаться и записываться программным образом. Если АЦП не используется, регистр ADDAT может использоваться и как дополнительный универсальный регистр.
Регистр DAPR позволяет менять внутренние опорные напряжения IVAREF и IVAGND. Они могут программироваться с шагом в 1/16 относительно внешних опорных напряжений (VAREF-VAGND). Биты с 0 по 3 регистра DAPR определяют IVAGND, биты с 4 по 7 определяют IVAREF. Для нормальной работы АЦП требуется как минимум разность в 1 вольт между внутренними опорными напряжениями. Поэтому, внутреннее опорное напряжение IVAREF должны всегда программироваться на четыре шага выше, чем IVAGND (относительно внешнего образцового напряжения VAREF, которое равно 5В ± 5%).
Значения IVAGND и IVAREF определяются по формуле:
IVAGND = VAGND + DAPR (0 - 3) /16 (VAREF - VAGND)
причем DAPR (0 - 3) < 0 и DAPR (0 - 3) <13;
IVAREF = VAGND + DAPR (4 - 7) /16 (VAREF - VAGND)
причем DAPR (4 - 7) >3;
где DAPR (0 - 3) - содержание младшего полубайта, и DAPR (4 - 7) - содержание старшего полубайта DAPR, принимаемого как десятичное целое число без знака.
Если DAPR (0 - 3) или DAPR (4 - 7) = 0, внутренние опорные напряжения соответствуют внешним опорным напряжениям соответственно VAGND и VAREF .
Если VAINPUT > IVAREF, то результат преобразования будет равен 0FFH, если VAINPUT < IVAGN0, то результат преобразования - 00H (VAINPUT - напряжение аналогового входного сигнала).
Рисунок показывает, назначение разрядов регистра специальной функции DAPR.
Регистр программирования АЦП DAPR (0DAH)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Бит |
Цифровое Значение для IVAREF | Цифровое Значение для IVAGND |
Если используются внешние опорные напряжения VAGND = 0 V и VAREF = + 5V (относительно GND и VCC), то при помощи регистра DAPR могут быть установлены следующие значения внутренних опорных напряжений IVAGND и IVAREF, как показано в таблице.
Программирование внутренних опорных напряжений
Ступень | DAPR (0-3) | DAPR (4-7) | IVAGND (V) | IVAREF (V) |
0 | 0000 | 0000 | 0.0 | 5.0 |
1 | 0001 | 0001 | 0.3125 | - |
2 | 0010 | 0010 | 0.625 | - |
3 | 0011 | 0011 | 0.9375 | - |
4 | 0100 | 0100 | 1.25 | 1.25 |
5 | 0101 | 0101 | 1.5625 | 1.5625 |
6 | 0110 | 0110 | 1. 875 | 1. 875 |
7 | 0111 | 0111 | 2. 1875 | 2. 1875 |
8 | 1000 | 1000 | 2.5 | 2.5 |
9 | 1001 | 1001 | 2.8125 | 2.8125 |
10 | 1010 | 1010 | 3.125 | 3.125 |
11 | 1011 | 1011 | 3.4375 | 3.4375 |
12 | 1100 | 1100 | 3.75 | 3.75 |
13 | 1101 | 1101 | - | 4.0625 |
14 | 1110 | 1110 | - | 4.375 |
15 | 1111 | 1111 | - | 4.6875 |
Комбинации отмеченные '-' не допускаются поскольку IVAREF должен быть, по крайней мере, четыре ступени выше, чем IVAGND.
Преобразование начинается после записи стартового бита в регистр DAPR. Эта операция начнет новое преобразование, даже если текущее преобразование не завершено. Преобразование начинается со следующего машинного цикла. Флаг занятости будет устанавливаться в том же самом машинном цикле. Если значение, записанное в DAPR - 00H, это означает, что никакая корректировка внутренних опорных напряжений не желательна, и преобразование будет происходить в течение 15 машинных циклов, до полного окончания. Таким образом, время преобразования - 15 мкс при 12 МГц частоте тактового генератора. Для каждой корректировки внутренних опорных напряжений преобразование требуется дополнительно время 7 мкс. Таким образом, если должно программироваться только одно опорное напряжение, общее время преобразования будет занимать 22 машинных цикла, если же должны программироваться оба опорных напряжения, то время преобразования будет продолжаться 29 машинных циклов.
После того, как преобразование было запущено записью в соответствующий бит DAPR, аналоговое напряжение в выбранном входном канале выбирается в течение 5 машинных циклов (5 мкс при 12 МГц частоте генератора). Это напряжение будет оставаться неизменным на протяжении остальной части времени преобразования. Внешний аналоговый источник должен обеспечить ток достаточный, чтобы зарядить емкость выборки-хранения, равную 25pF, за 5 машинных циклов.
Преобразование выбираемого аналогового напряжения происходит между 6-ым и 15-ым машинным циклом после того, как была завершена операция выборки сигнала. В 15-ом машинном цикле преобразованный результат перемещается в ADDAT, флаг занятости (BSY) очищается, генерируется запрос на прерывание от АЦП и устанавливается флаг IADC (бит 0 в регистре управлении прерывания IRCON). Если установлено непрерывное преобразование, то следующее преобразование, автоматически начнется в следующем машинном цикле.
Программирование внутренних опорных напряжений позволяет регулировать внутренний диапазон напряжений по отношению к диапазону внешнего напряжения аналогового входного сигнала. Также это может применяться, чтобы увеличить разрешающую способность АЦП. Тогда следует использовать второй цикл преобразования, с уменьшенным диапазоном измерения напряжения. Это делается установкой внутренних опорных напряжений максимально близко к предварительно измеренному аналоговому значению. Рисунки иллюстрируют этот прием.
Подбор значений внутренних опорных напряжений в зависимости от диапазона измерения внешнего аналогового напряжения
Увеличение разрешающей способности АЦП при помощи второго преобразования