Работа с АЦП

Расширенные команды работы с АЦП – ЦАП.

ЦАП

АЦП и ЦАП.

В данном микроконтроллере используется 12 разрядное АЦП последовательного приближения. Максимальная скорость обработки информации составляет до 200 тыс. выборок в секунду и может варьироваться за счет изменения коэффициента тактирования АЦП.

Вход АЦП подключен к мультиплексору, 8 входов мультиплексора подключены к 8 аналоговым входам микроконтроллера, 9-й вход мультиплексора подключен к интегрированному датчику температуры.

В микроконтроллер встроен программно аппаратный комплекс для авто калибровки АЦП. При необходимости, в зависимости от конкретных решений, можно самостоятельно калибровать АЦП.

Интегральная нелинейность: максимальная ±1,5 ширины кванта, средняя ±0,5 ширины кванта при частотах обработки до 100 кГц. Средняя ±1,5 ширины кванта при частотах обработки 200 кГц.

Дифференциальная нелинейность: средняя ±1 при частоте обработке 100 кГц.

Входная емкость 20 пФ.

В состав микроконтроллера входят 2 12-ти разрядный цифро-аналоговых преобразователя.

Характеристики:

Разрядность 12 бит.

Относительная точность ±3 ширины кванта.

Дифференциальная нелинейность ±1 ширины кванта.

Ошибка смещения: максимальная 50 мВ, средняя 25 мВ.

Ошибка шкалы: максимальная 25 мВ, средняя 10 мВ.

Время установления выходного напряжения 8мкс.

Величина резистивной нагрузки 10 кОм.

Величина емкостной нагрузки 100 пФ.

Входной импеданс 0,5 Ом.

Нагрузка по току 50 мкА.

Вся работа с АЦП осуществляется через специальное прерывание ADCI – прерывание возникающие после окончания преобразования входного сигнала. Вектор прерывания АЦП – 33h. Данные с АЦП передаются через регистры ADCDATAH, ADCDATAL. Управление АЦП осуществляется через регистры ADCCON1, ADCCON2, ADCCON3.

Работа ЦАП осуществляется посредством регистров DACCON – управляющий регистр и DAC0H, DAC0L, DAC1H, DAC1L – регистры данных для ЦАП.

Режимами работы АЦП управляют 3 регистра ADCCON1, ADCCON2 и ADCCON3.

Регистр ADCCON1:

Расположение бит Мнемокод Описание
ADCCON1.7 ADCCON1.6 MD1 MD0 Выбирает режим работы АЦП. MD1 MD0 Режим АЦП 0 0 Дежурный 0 1 Нормальный 1 0 Дежурный, если не выполняется цикл преобразования 1 1 Холостой, если не выполняется цикл преобразования
ADCCON1.5 ADCCON1.4 CK1 CK0 Биты деления тактовой частоты работы АЦП, выбирает коэффициент деления частота основной тактовой частоты микроконтроллера. Цикл преобразования занимает 16 тактов, в дополнение тактов переключения. CK1 CK0 Деление частоты 0 0 1 0 1 2 1 0 4 1 1 8
ADCCON1.3 ADCCON1.2 AQ1 AQ0 Биты задержки переключения, выбирают время, необходимое для перезарядки УВХ при переключении мультиплексора. AQ1 AQ0 Число тактов задержки 0 0 1 0 1 2 1 0 3 1 1 4 При импедансе источника входных сигналов менее 8 кОМ выбирают 1 такт в противном случае 2-4 такта.
ADCCON1.1 T2C Бит разрешения запуска преобразования от таймера 2. Если бит установлен то сигнал переполнения таймера 2 используется для запуска преобразования.
ADCCON1.0 EXC Бит разрешения внешнего запуска. Если установлен то контакт CONVST/ используется как сигнал запуска.

Регистр ADCCON2:

Расположение бит Мнемокод Описание
ADCCON2.7 ADCI Бит прерывания АЦП, устанавливается при завершении преобразования при одиночном преобразовании, либо по окончании передачи блока данных в режиме прямого доступа к памяти.
ADCCON2.6 DMA Бит разрешения прямого доступа к памяти. Устанавливается пользователем при активации режима.
ADCCON2.5 CCONV Бит циклического преобразования, устанавливается при активации режима непрерывного преобразования. АЦП начинает непрерывное преобразование в соответствии с другими регистрами.
ADCCON2.4 SCONV Бит одиночного преобразования устанавливаться пользователем при начале однократного преобразования. Сбрасывается аппаратно при окончании преобразования.
ADCCON2.3 ADCCON2.2 ADCCON2.1 ADCCON2.0 CS3 CS2 CS1 CS0 Биты выбора каналов. CS3 CS2 CS1 CS0 0 n2 n1 n0 выбор канала. 1 0 0 0 канал температурного сенсора 1 x x x не документированные комбинации 1 1 1 1 останов режима прямого доступа к памяти

Регистр ADCCON3:

Расположение бит Мнемокод Описание
ADCCON3.7 BUSY Только для чтения. Устанавливается аппаратно в момент начала преобразования, сбрасывается после окончания преобразования.
ADCCON3.6 - ADCCON3.0 RSVD Зарезервированы, всегда должны быть 0.

Для обработки результатов должен быть задан обработчик прерывания от АЦП, вектор прерывания 033h. Затем необходимо активировать режим преобразования. Существует 3 режима преобразования: одиночное преобразование, непрерывное преобразование и преобразованием с прямым доступом к памяти.

Для одиночного преобразования нужно установить бит SCONV, после окончания преобразования будет сгенерировано прерывание от АЦП. Для непрерывного преобразования устанавливается бит CCONV и после очередного прерывания генерируется прерывание от АЦП.

Если с преобразованными данными предстоит длительная обработка, а потеря даже одного преобразования недопустима используется режим прямого доступа к памяти. Данные передаются во внешнюю память. Для активации данного режима нужно предварительно разметить память для приема данных от АЦП. Байты должны чередоваться. Старшие 4 бита первого байта указывают на номер канала. Младшие 4 бита предназначены для 4 старших бита предназначены для 4 старших битов данных АЦП. Следующий байт предназначен 8 младших бит данных АЦП. Затем адрес начала размеченной области передается через регистры DMAP, DMAH, DMAL. Режим прямого доступа к памяти прекращается в случае если в качестве следующего канала установлен 1111. После завершения режима генерируется прерывание. В режиме прямого доступа к памяти микроконтроллер свободен для выполнения любого кода, ограничения касаются лишь использования параллельных портов 2 и 3 через которые идет передача данных.

Данные преобразования помещаются в регистры ADCDATAL и ADCDATAH. В ADCDATAH верхние 4 бита содержат номер канала результат преобразования которого помещен в ADCDATAL и младшие 4 бита ADCDATAH.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: