Микропроцессоры и микроконтроллеры

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


Микропроцессоры и микроконтроллеры :: Микроконтроллерные вычислители :: 12.2 Последовательный интерфейс микросхемы АЦП ADS1210

12.2 Последовательный интерфейс микросхемы АЦП ADS1210

Последовательный интерфейс микросхемы АЦП ADS1210 может работать в двух основных режимах:

1) режим ведомого устройства;

2) режим ведущего устройства (в данной лекции не рассматривается

Режим ведомого устройства предполагает работу АЦП под управлением внешнего микроконтроллера или другого вычислительного устройства.

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

Режим ведомого устройства. Задается уровнем «0» на входе MODE.

Минимальный набор сигналов – линии SDIO и SCLK. Но в таком режиме очень сложный протокол обмена между АЦП и МК.

На практике используют полный набор сигналов для обмена данными и командами между МК и АЦП – используют линии SCLK, SDIO, SDOUT, . Пример схемы подключения АЦП к микроконтроллеру группы MCS-51 показан на рис. 4.3.

Рисунок 4.3 – Пример схемы использования АЦП ADS1210

Линии SDOUT и SDIN используют для передачи и приема данных.

Линия SCLK использована для синхронизации передачи.

Низкий уровень на линии  указывает на готовность данных в буфере АЦП.  Низким уровнем на линии  микроконтроллер может инициировать начало преобразования в АЦП.

Входной аналоговый сигнал подается на линии AINP и AINN в дифференциальном виде. При использовании однополярного входа вывод AINN  соединяют с аналоговой землей (выходной код формируется в формате «целое беззнаковое»)  или с выходом источника опорного напряжения 2.5В (выходной код формируется в формате «целое со знаком»).

При работе АЦП в режиме ведущего устройства используют стандартизированный протокол последовательной передачи данных SPI. Важно, что со стороны микроконтроллера этот протокол можно реализовать как аппаратно (при наличии соответствующего блока в составе МК), так и программно. МК настраивается на режим Master, CPOL=0, CPHA=1.

Программно-логический интерфейс АЦП реализован как набор из пяти регистров:

·  INSR (Instruction Register) — регистр инструкций (8 бит);

·  DOR (Data Output Register) — регистр выдачи данных (24 бита);

·  CMR (Command Register) — регистр команд (32 бита);

·  OCR (Offset Calibration Register) — регистр калибровки смещения (24 бита);

·  FCR (Full-Scale Calibration Register) — регистр общей калибровки (24 бита).

Эти регистры формируют массив байт с адресами: 0x00 — 0x0E.

Регистр инструкций INSR управляет чтением и записью данных через последовательный интерфейс. Запись байта в этот регистр инициирует процедуру чтения или записи нескольких (от одного до четырех) байтов информации по заданному адресу.

Регистр команд CMR настраивает АЦП. Запись определенных двоичных кодов в этот регистр позволяет управлять всеми функциями АЦП (источниками опорного и смещающего напряжений, форматами данных, порядком передачи битов, текущим режимом работы АЦП, коэффициентами усиления для PGA):

Регистр DOR содержит результат предыдущего преобразования.

Регистры OCF и FCR содержат коэффициенты, которые были получены в результате операций калибровки АЦП.

4.2 Принципы использования ЦАП с последовательным интерфейсом

4.2  Принципы использования ЦАП с последовательным интерфейсом

Применение ЦАП с последовательным интерфейсом позволяет уменьшить количество линий при подключении ЦАП к микроконтроллеру.

Кроме того, использование таких ЦАП позволяет разработчикам микросхемы разместить несколько преобразователей в одном корпусе без существенного  увеличения количества выводов микросхемы.

В качестве примера рассмотрим ЦАП фирмы Texas Instruments (Burr-Brown) DAC7512. Эта микросхема является 12-битовым последовательным ЦАП, построенным по схеме «цепь резисторов».

Структурная схема ЦАП показана на рис. 4.4. Цифровой код передается на ЦАП от микроконтроллера по протоколу SPI (выводы , SCLK, DIN). Выходное напряжение ЦАП снимается с выхода VOUT.

Вывод VDD одновременно является линией питания схемы и входом для опорного напряжения преобразователя.  Вывод GND подключается к «общему» проводу схемы.

Пример схемы совместного использования ЦАП DAC7512 с микроконтроллером MCS-51 показан на рис. 4.5.

Рисунок 4.4 – Структурная схема ЦАП DAC7512

Для передачи данных на ЦАП последовательный интерфейс SPI микроконтроллера нужно перевести в такой режим: Master, MSB, CPOL=0, CPHA=1.

Передача битов данных в интервале времени, когда присутствует низкий уровень сигнала разрешения . Каждый бит данных на линии DIN должен сопровождаться срезом очередного тактового импульса на линии синхронизации SCLK. Так передаются 16 битов данных, четыре старшие из которых – холостые.

Рисунок 4.5 — Схема использования ЦАП DAC7512 с МК MCS-51

Пример программы для микроконтроллера MCS-51 на языке Assembler, которая выполняет передачу цифрового кода на ЦАП, представлен ниже. Подпрограмма получает двухбайтовое число для передачи через пару регистров (R1:R0).

DAC_Out: ; Настройка канала SPIчерез регистр SPCR

mov  SPCR,#01010100b ; БитыSPE=1, MSTR=1, CPHA=1

movSPDR,R1  ; Запись старшего байта цифрового кода в ЦАП

mHjnbSPIF,mH  ; Ожидание завершения передачи по биту SPIF

clr  SPIF

movSPDR,R0  ; Запись младшего байта цифрового кода в ЦАП

mLjnbSPIF,mL  ; Ожидание завершения передачи по биту SPIF

clrSPIF

Использованные в примере регистры входят в состав МК MCS-51 серии AT89S: регистр SPCR обеспечивает настройку канала SPI, а регистр SPDR служит для передачи данных. Подробно об интерфейсе SPI можно прочитать в 1-й части пособия «Микроконтроллерные системы: структуры и практическое применение».