Аналогово-цифровой преобразователь (АЦП)

Материал из MIK32 микроконтроллер

Введение.

Аналого–цифровой преобразователь (АЦП) предназначен для формирования 12-битного цифрового кода, пропорционального аналоговому входному напряжению.

Состав и принцип работы

Модуль представляет собой АЦП последовательного приближения и входного мультиплексора 8 в 1 с дешифратором 3 в 8. Структурная схема представлена на рисунке

Схема АЦП

АЦП последовательного приближения состоит из резистивного ЦАП, модуля SAR14, SAH (УВХ), компаратора, модуля тестирования выхода ЦАП, а также модулей дерева clock и цифровой управляющей логики.

Аналоговое входное напряжение хранится в блоке УВХ (SAH). Исполнение алгоритма последовательного приближения обеспечивает блок SAR. Выходы ЦАП выставляются согласно значению из регистра SAR. Компаратор выполняет сравнение значений напряжений из УВХ и ЦАП и результат сравнения подается на вход SAR.

Резистивный ЦАП  состоит из двух каскадов, каждый из которых обеспечивает разрешение 6 бит. Каждый единичный элемент каскада состоит из одного резистора. Топологически эти элементы расположены симметрично относительно центра (common centroid) для уменьшения разброса параметров. Выходы первого каскада не буферизируются, поэтому для уменьшения систематической ошибки единичные элементы второго каскада имеют большее сопротивление (300 Ом по сравнению с  75 Ом).

Выходной буфер представляет собой неинвертирущий ОУ с коэффициентом усиления один. Формирователь внутреннего опорного напряжения от источника аналогового напряжения 1,8 В обеспечивает напряжение 1,2 В при Uист = 1,8 В.Типичный ток потребления ОУ составляет 250 мкА (не учитывая выходной ток). В выключенном состоянии типичный ток потребления ОУ составляет 30 нА.

Аналоговое входное напряжение, Vin, хранится в устройстве выборки/хранения  SAH/УВХ. Данные записываются по сигналу Start передним фронтом clock половинной частоты и хранятся с течение цикла преобразования на конденсаторе.

Входная частота делится на 28 и на 2, с формированием дополнительного синхросигнала с фазой, сдвинутой на 90 градусов (блок CLK_div). По сигналу Start в соответствии с прямым и смещенным синхросигналами формируются сигналы сброса установки SAR.

Входной мультиплексор данных включает в себя регистр выбора адреса входных данных, дешифратор 3 в 8 и проходные ключи. Адрес записывается в регистр по сигналу CK, формируемому в блоке SAR и сохраняется до следующего CK, что позволяет закончить цикл преобразования данных с текущего входа, даже если адрес сменился. До появления первого сигнала CK по сигналу сброса по умолчанию устанавливается вход данных DIN<0>.

Управление АЦП

В начале каждого цикла преобразования SAR по сигналу Start и переднему фронту сигнала CLK N-разрядный регистр в составе SAR сначала сбрасывается в 0, а затем устанавливается в значение, равное половине шкалы преобразования, N’b100…00, где MSB - лог. «1». При этом выход ЦАП устанавливается в ½ опорного напряжения (VRF). После этого компаратор сравнивает Vin(выход УВХ) и VDAC . Если   Vin больше, чем VDAC , выход компаратора устанавливается в лог. «1», при этом MSB  N-разрядного регистра остается в «1»; Если   Vin меньше, чем VDAC , выход компаратора устанавливается в лог. «0», при этом  MSB сбрасывается в «0». Следующий по старшинству разряд устанавливается в «1» и процесс сравнения повторяется. Последовательность повторяется для всех разрядов, вплоть до LSB. В конце цикла преобразования вырабатывается сигнал EOC, преобразование завершается, данные из регистра SAR могут быть считаны внешней логикой. Временная диаграмма цикла преобразования  приведена на рисунке 70. Вместе со сбросом/установкой и циклом записи данных в УВХ преобразование занимает 40 тактов сигнала CLK (12 тактов записи данных в УВХ и 28 тактов собственно преобразование). Поэтому для обеспечения частоты сэмплирования 0.8МГц требуется входной тактовый сигнал частотой не менее 32МГц. Для корректной работы входного мультиплексора данные дешифратора выбора соответствующего входа данных записываются во внутренний регистр адреса по завершении двух из 28 внутренних тактов преобразования. Таким образом,  в SAH данные по новому входу записываются в начале следующего цикла преобразования, позволяя завершить текущий. Сигнал Start должен подаваться на АЦП и защёлкиваться по переднему фронту CLK. При этом его длительность должна быть не менее 12 тактов CLK при заданных параметрах входа данных.

Считывание цифровых данных осуществляется по заднему фронту CLK в такте C1_27 или  по переднему фронту CLK в такте C0_0 следующего цикла конвертации при активной «1» на выходе EOC.

В общем случае сигнал EOC формируется по переднему фронту CLK с задержкой порядка 8ns и имеет длительность порядка 2/Fclk. Активный уровень сигнала EOC на выходе блока всегда заканчивается позже переднего фронта сигнала CLK, при этом данное соотношение не гарантируется вне блока.

Вменная диаграмма цикла преобразования

Для управления АЦП используются регистры блока управления аналоговой подсистемой. Состав регистров управления АЦП представлен  в таблице 146.

Регистры

Список регистров

Регистры управления АЦП
Обозначение Смещение Начальное значение Назначение Доступ
ADC_CONFIG 0x3C 0x0 Регистр настроек RW
ADC_CONTINUOUS 0x40 0x0 Управление непрерывным измерением RW
ADC_SINGLE 0x44 0x0 Управление однократным измерением WO
ADC_VALID 0x48 0x0 Регистр статуса
ADC_VALUE 0x4C 0x0 Регистр данных
REF_CLB 0x38 0x01 Управление калибруемыми источниками тока и напряжения RW

Описание регистров

ADC_CONFIG

Смещение: 0x3C - регистр настроек. Значение после подачи сброса: 0x00000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
зарезервировано
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарезервировано Sel Ext_Clb ExtRef Rn EN
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Биты 6:4 Sel - Выбор канала АЦП

Бит 3 Ext_Clb - Выбор источника внешнего опорного напряжения:

  • 1 - внешний вывод;
  • 0 - настраиваемый ОИН.

Бит 2 ExtRef - Выбор источника опорного напряжения:

  • 1 - внешний;
  • 0 - встроенный

Бит 1 Rn - Бит сброса АЦП, активный уровень «0»

Бит 0 EN - Управление питанием АЦП:

  • 0 - выключен;
  • 1 - включен
ADC_ CONTINUOUS

Смещение: 0x40 - регистр управления непрерывным измерением. Значение после подачи сброса: 0x00000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарезервировано Continuous
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Бит 0 Continuous - Запуск / остановка непрерывного измерения

  • 1 - запуск непрерывного преобразования
  • 0 - остановка непрерывного преобразования
ADC_ SINGLE

Смещение: 0x44 - регистр управления непрерывным измерением. Значение после подачи сброса: 0x00000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарезервировано Single
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw

Бит 0 Single - Запуск однократного измерения

  • 1 - запуск однократного преобразования
  • 0 - остановка однократного преобразования
ADC_ VALID

Смещение: 0x48 - регистр управления непрерывным измерением. Значение после подачи сброса: 0x00000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарезервировано Valid
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw ro

Бит 0 Valid - Признак наличия актуальных данных

  • 1 - данные готовы
  • 0 - преобразование не завершено
ADC_ VALUE

Смещение: 0x4С - регистр данных. Значение после подачи сброса: 0x00000000;

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Зарезервировано
ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарезервировано Data
ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro ro

Биты 11:0 Data - 12-битный результат преобразования