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

 
 
 
«Для меня долгое время было загадкой, как что-то очень дорогое и технологичное может быть столь бесполезным. И вскоре я осознал, что компьютер — это глупая машина, обладающая способностями выполнять невероятно умные вещи, тогда как программисты — это умные люди, у которых талант делать невероятные глупости. Короче, они нашли друг друга.»
Bill Bryson
Русский | Українська


Микропроцессоры и микроконтроллеры :: Микроконтроллерные вычислители :: 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-й части пособия «Микроконтроллерные системы: структуры и практическое применение».