Управление 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 для повышения пропускной способности канала связи.

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

Одно- і трифазні накопичувальні Інвертори потужністю 6 кВт і 12 кВт серія ES-HSI
Brands

Одно- і трифазні накопичувальні Інвертори потужністю 6 кВт і 12 кВт серія ES-HSI

MEAN WELL представила DC/DC-перетворювачі з надшироким діапазоном вхідної напруги 8:1
Brands

MEAN WELL представила DC/DC-перетворювачі з надшироким діапазоном вхідної напруги 8:1

Надтонкі джерела живлення 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