Управление SPI-интерфейсом микроконтроллера для обеспечения доступа к нестандартному SPI-интерфейсу АЦП

Многие современные прецизионные АЦП имеют последовательный интерфейс (SPI) для связи с микроконтроллерами, микропроцессорами, сигнальными процес­сорами, в том числе на основе ПЛИС FPGA. Благодаря этому АЦП легко подключить к контроллеру со стандартным SPI-интерфей­сом. Особенности такого подключения рас­смотрены в этой статье.

С.Кси

Вопрос:

Можно ли подключить АЦП с нестандартным последовательным интерфейсом к микроконтрол­леру со стандартным SPI-интерфейсом?

Ответ:

Да, можно, но при определенной доработке та­кого интерфейса.

Некоторые новые АЦП имеют стандартные SPI- интерфейсы, наряду с ними выпускаются АЦП, использующие нестандартный 3-проводной или 4-проводной SPI-интерфейс для обеспечения бо­лее высокой пропускной способности. Например, семейство AD7616, AD7606 и AD7606B имеет две или четыре линии (шины) для передачи данных с це­лью обеспечения более высокой пропускной спо­собности в последовательном режиме обмена дан­ными. Семейства AD7768, AD7779 и AD7134 имеют несколько линий передачи данных и работают в режиме ведущего устройства. Пользователи, как пра­вило, сталкиваются с трудностями при сопряжении микроконтроллера с такими преобразователями.

Рис. 1. АЦП AD7768 в режиме ведущего устройства с двумя последовательными шинами данных

SPI-интерфейс – это синхронный полнодуплекс­ный интерфейс, работающий в режиме master/slave (ведущего/ведомого устройства). Данные от веду­щего устройства (master) или ведомого устройства (slave) синхронизируются по фронту или спаду так­тового импульса. Как ведущие, так и ведомые устройства могут передавать данные по интерфей­су одновременно. На рис. 2 показано типовое 4­проводное соединение АЦП с микроконтроллером по SPI-интерфейсу.

Чтобы начать считывание данных по стандартно­му SPI-интерфейсу, контроллер должен по тактово­му импульсу выбрать АЦП (сигнал CS, низкий уро­вень которого обычно является активным). По­скольку SPI-интерфейс является полнодуплексным интерфейсом, контроллер и АЦП могут одновре­менно выводить данные по шинам MOSI/DIN и MISO/DOUT соответственно.

Рис. 2. Соединение АЦП и микроконтроллера по стандартному SPI-интерфейсу

SPI-интерфейс контроллера предоставляет пользователю гибкость в выборе фронта или спада тактового импульса для выборки и/или сдвига дан­ных. Для надежной связи между ведущим и ведо­мым устройствами, пользователи должны следо­вать спецификациям по синхронизации цифрового интерфейса микроконтроллера и АЦП, которые приведены в технической документации (data sheet) на применяемые микросхемы.

Если SPI-интерфейс микроконтроллера и после­довательный интерфейс АЦП имеют стандартный режим синхронизации, у пользователей не возни­кает проблем при проектировании печатной платы устройства в целом и  разработке встроенного про­граммного обеспечения для поддержки работы та­кого интерфейса. Но некоторые новые АЦП содер­жат нестандартные последовательные интерфейсы, которые не отвечают общепринятым требованиям к синхронизации работы SPI-интерфейса. На первый взгляд кажется невозможным, чтобы микроконтрол­лер или сигнальный процессор считывал данные че­рез нестандартный последовательный порт АЦП AD7768, как показано на рис. 3.

Для преодоления такого неудобства, вызванно­го различиями в схемах последовательных интер­фейсов АЦП и микроконтроллера (сигнального про­цессора) автором статьи предлагаются следующие подходы для организации связи таких устройств:

  1. Решение 1: Микроконтроллер (MCU) высту пает в качестве ведомого устройства и взаимодей­ствует по одной шине DOUT с АЦП, который являет­ся ведущим устройством
  2. Решение 2: Микроконтроллер (MCU) высту­пает в качестве ведомого устройства и взаимодей­ствует по двум шинам DOUTс АЦП, который являет­ся ведущим устройством
  3. Решение 3: Микроконтроллер (MCU) высту­пает в качестве ведомого устройства и взаимодей­ствует через DMA-порт с АЦП, который является ве­дущим устройством
  4. Решение 4: Микроконтроллер (MCU) высту­пает в качестве ведущего и ведомого устройства для считывания данных по двум шинам DOUT.

В качестве примера рассмотрим считывание данных АЦП AD7768 по SPI-интерфейсу (шина DOUT) микроконтроллером STM32F429. Как видно из рис. 3, по каналу 0 – 7 данные считываются из АЦП только по шине DOUT, причем АЦП AD7768/AD7768-4 работает как ведущее устрой­ство и передает данные, тактовые и служебные сиг­налы DCLK и DRDY в микроконтроллер, как в ведо­мое устройство. Отметим, что семейство микро­контроллеров STM32Fxxx широко используется во многих приложениях. Эти микроконтроллеры имеют несколько портов SPI, которые могут быть запрограммированы как ведущие или ведомые с стандартными режимами синхронизации. Пред­ставленные ниже рекомендации могут, кроме того, применяться в других микроконтроллерах с 8-бит­ным, 16-битным или 32-битным размерами кадра.

Рис. 3. Временные диаграммы сигналов считывания данных по DOUT0-шине АЦП AD7768

Преобразователи AD7768 / AD7768-4 – это 8- и 4-канальные сигма-дельта АЦП с модулятором и цифровым фильтром на канал, что позволяет син­хронизировать выборку сигналов на входах АЦП. Они имеют динамический диапазон входного сигна­ла до 108 дБ при максимальной входной полосе пропускания 110.8 кГц, интегральную нелинейность не хуже ±2 ppm, погрешность смещения нуля не бо­лее ±50 мкВ и погрешностью усиления не более ± 30 ppm. Пользователь AD7768 / AD7768-4 может зада вать ширину полосы пропускания входного сигнала, скорость передачи выходных данных и один из трех режимов питания, чтобы оптимизировать его исхо­дя из допустимых шумов и энергопотребления. Гиб­кость АЦП AD7768/AD7768-4 позволяет им стать ба­зовыми устройствами для измерения сигналов низ­кого уровня. К сожалению, последовательный ин­терфейс AD7768 является нестандартным, поэтому АЦП AD7768 работает как ведущее устройстве при связи с микроконтроллером. Как правило, разра­ботчики при сопряжении такого АЦП с микроконт­роллером должны использовать дополнительный промежуточный контроллер, выполненный на ПЛИС типа FPGA/CPLD. Пример такой реализации приве­ден на рис. 4, где АЦП AD7768 и дополнительный контроллер на ПЛИС типа 32F429IDISCOVERY рас­положены на общей оценочной плате, причем дан­ные, снимаемые с 8-канального АЦП, выводятся на одну шину DOUT0.

Рис. 4. Пример вывода данных АЦП AD7768 на микроконтроллер STM32F429 по шине данных DOUT0

Проблемы, которые необходимо учесть при ор­ганизации такой связи, состоят в следующем:

  1. АЦП AD7768 работает как ведущее устройство, поэтому микроконтроллер STM32F429Iдолжен быть запрограммирован как ведомое устройство
  2. высокий уровень сигнала DRDY- это один пе­риод длительности тактового сигнала DCLK, кото­рый не является типичным сигналом CS.

Рис. 5. Считывание данных с выхода АЦП AD7768 по нестандартному последовательному интерфейсу

  • по сигналу DCLKданные непрерывно выводят­ся из АЦП, а сигнал DRDYимеет низкий уровень, ко­гда завершен вывод всех разрядов последователь­ных данных, рис. 5.

Решение 1: Микроконтроллер используется в ка­честве ведомого устройства, а АЦП – в качестве ве­дущего с одной шиной данных DOUT:

  1. Необходимо настроить микроконтроллер STM32F429, его SPI-порт, например, SPI4, в каче­стве ведомого устройства для считывания данных.
  2. Необходимо подключить вывод сигнала DRDYАЦП AD7768 к входному выводу внешнего прерыва­ния микроконтроллера STM32F429 (EXTI0 и NSSSPICS). Фронт сигнала DRDYзапустит обработчик EXTI0 для разрешения начала приема данных мик­роконтроллером через SPI-порт по первому спаду сигнала DCLKс момента, когда уровень сигнала DRDYперейдет в низкое состояние.
  3. После приема всех данных от каналов 0 – 7 SPI-порт следует отключить, чтобы запретить чте­ние иных дополнительных данных.

Листинг программы, поддерживающей работу связи АЦП с микроконтроллером в этом режиме, содержится в оригинале статьи

Решение 2: Микроконтроллер используется в ка­честве ведомого устройства, а АЦП – в качестве ве­дущего с двумя шинами данных DOUT:

В первом случае (решение 1) шина данных DOUT0 используется для вывода всех данных, сни­маемых с 8 входов АЦП. Таким образом, чтение дан­ных ограничено частотой 8 кГц. Как следует из рис. 1, выходы каналов 0…3 подключены к шине DOUT0 и выходы каналов 4…7 подключены к шине DOUT1, что позволяет увеличить частоту съема данных с выхода АЦП в два раза. Схема подключения АЦП к микроконтроллеру для этого случая приведена на рис. 6. При этом частота передачи данных увеличи­вается до 16 кГц. Листинг программы, поддержи вающей работу в таком режиме, содержится в ори­гинале статьи.

Рис. 6. Схема подключения АЦП AD7768 к микроконтроллеру STM32F429 с выводом данных по двум шинам DOUT0 и DOUT1

Решение 3: Микроконтроллер используется в ка­честве ведомого устройства, а АЦП – в качестве ве­дущего устройства и связан с микроконтроллером через DMA-порт:

Прямой доступ к памяти (DMA) используется для обеспечения высокоскоростной передачи данных между периферийными устройствами и памятью, а также между памятью и памятью двух цифровых устройств. Данные могут быть быстро записаны в память микроконтроллера через DMA-порт без об­ращения к микроконтроллеру. Листинг программы, поддерживающей работу с DMA-портом, содержит­ся в оригинале статьи.

Решение 4: Микроконтроллер используется как ведущее и ведомое устройство для считывания дан­ных с двух шин DOUT:

АЦП с высокой пропускной способностью под­держивает работу с внешними устройствами по двум, четырем и даже восьми линиям для ускорения считывания данных в последовательном режиме, рис. 7. Для микроконтроллеров с двумя или более SPI-портами предусмотрен режим быстрого чтения данных. В этом случае частота считывания данных может составить 800 кГц. Листинг программы, под­держивающей такой режим работы преобразовате­ля и микроконтроллера, содержится в оригинале статьи.

Рис. 7. Схема контроллера для считывания данных АЦП с шин DOUTA и DOUTB по нескольким SPI-портам

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

Рис. 8. Осциллограмма сигналов данных и служебных сигналов BUSY и SCLK при работе АЦП по последовательному SPI-интерфейсу

ВЫВОДЫ

В статье рассмотрены подходы и даны рекомен­дации к использованию SPI-интерфейса микро­контроллера для считывания данных высокоточных и высокопроизводительных АЦП с нестандартными последовательными интерфейсами. Эти подходы целесообразно использовать при работе с новыми сигма-дельта АЦП, например, семейства AD7616, AD7606 и семейства AD7768, AD7779 и AD7134 для повышения пропускной способности канала связи.

Останні новини

Надтонкі джерела живлення MEAN WELL серії XDR потужністю до 960 Вт
Brands

Надтонкі джерела живлення MEAN WELL серії XDR потужністю до 960 Вт

ПЛК MEAN WELL PLC-DPLC-32MT/ET для промислової автоматизації
Brands

ПЛК MEAN WELL PLC-DPLC-32MT/ET для промислової автоматизації

Двонаправлені перетворювачі MEAN WELL BIC-5K 5 кВт
Brands

Двонаправлені перетворювачі MEAN WELL BIC-5K 5 кВт

Інтелектуальні системи живлення 1–18 кВт на базі AC/DC-перетворювачів MEAN WELL серії RCP
Brands

Інтелектуальні системи живлення 1–18 кВт на базі AC/DC-перетворювачів MEAN WELL серії RCP

VD MAIS стає членом Global Electronics Association
VD MAIS

VD MAIS стає членом Global Electronics Association

Mean Well SHP — промислові джерела живлення великої потужності (10–30 кВт)
Brands

Mean Well SHP — промислові джерела живлення великої потужності (10–30 кВт)