Главная » Статьи » Разное » Интерфейсы

SPI :: Часть 1:: Общие сведения

Здравствуйте друзья. C вами проект FPGA-systems.ru.

Один из подписчиков попросил нас рассказать о разработке интерфейса SPI на ПЛИС. Ну что ж, не оставим его просьбу без ответа.

SPI  - Serial Peripheral Interface - это последовательный интерфейс обмена данными между несколькими устройствами. Одно из этих устройств является  ведущим / master, а другое или другие устройства ведомым / slave.

 

Интерфейс SPI содержит 4 сигнала

  • Сигнал SCLK  Serial Clock – представляет собой ни что иное как тактовый сигнал, поэтому SPI интерфейс является синхронным
  • Сигнал MOSI - Master Output Slave Input – это линия данных, передаваемых от ведущего к ведомому
  • Сигнал MISO - Master Input Slave Output – это линия данных, передаваемых от ведомого к ведущему
  • Сигнал SS – Slave Select – сигнал выбора ведомого устройства для проведения сеанса обмена данными

Следует отметить, что названия сигналов и их наличие могут отличаться в зависимости от производителя микросхемы, но их функциональное назначение сохраняется. Так например, в документации на АЦП AD7895 мы видим отсутствие сигналов MOSI, а выход ведомого устройства называется SDATA, вместо MISO.

К мастеру с интерфейсом SPI может быть подключено одновременно несколько ведомых устройств. При этом все сигналы, за исключением сигнала Slave Select, являются общими для всех устройств.

Установка сигнала Slave Select в активное состояние позволяет выбрать соответствующее ведомое устройство, к которому обращается мастер.

Интерфейс SPI имеет несколько конфигураций, каждая из которых определяется полярностью и фазой тактового сигнала относительно линий данных. Такой подход даёт производителям микросхем определённую гибкость, и они вольны в выборе того, каким образом данные будут обработаны или переданы. Для примера, в одном случае данные могут появляться на линии данных по возрастающему фронту тактового сигнала SCK, а в другом по нисходящему фронту тактового сигнала. Могут также присутствовать и служебные, пустые данные.

О том, как устроен обмен информацией по SPI для конкретной микросхемы, следует смотреть в документации на нее.

Для того, чтобы немного попрактиковаться в имплементации интерфейса SPI на FPGA мы предлагаем Вам следующий проект, который затронет не только написание кода для FPGA, но и создание своего собственного небольшого и недорого модуля формата PMOD для подключения к платке Arty.

Итак, что мы предлагаем:

  1. Мы возьмем простенький и недорогой аналогово цифровой преобразователь с интерфейсом SPI. Допустим это будет MCP3201.
  2. Разработаем на VHDL и Verilog код для считывания данных с АЦП и проведём отладку кода с помощью моделирования.
  3. В соответствии с рекомендуемой схемой включения из документации на выбранный АЦП, мы разработаем плату, которую подключим к PMOD порту платы Arty.
  4. Сгенерируем файл для прошивки ПЛИС
  5. Используя аудиовыход компьютера или ноутбука, сгенерируем синусоиду и подадим ее на вход нашего АЦП
  6. Считанные с помощью нашего написанного HDL модуля данные с АЦП мы отобразим на экране с помощью интегрированного логического анализатора ILA

Разумеется, проект не претендует на оригинальность, но наш взгляд он достаточно прост и показателен, поскольку мы не ограничимся моделированием написанного модуля, а проверим его работоспособность на практике.

 

Скачать файлы презентации и статью в формате PDF 

Скачать файлы презентации и статью в формате PDF

Категория: Интерфейсы | Добавил: KeisN13 (03.10.2019)
Просмотров: 126 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar