Оглавление:

Дизайн I2C Master на VHDL: 5 шагов
Дизайн I2C Master на VHDL: 5 шагов

Видео: Дизайн I2C Master на VHDL: 5 шагов

Видео: Дизайн I2C Master на VHDL: 5 шагов
Видео: 3. SPI-интерфейс (Master) на VHDL 2024, Ноябрь
Anonim
Дизайн I2C Master на VHDL
Дизайн I2C Master на VHDL

В этом руководстве обсуждается создание простого мастера I2C на VHDL.

ПРИМЕЧАНИЕ: щелкните каждое изображение, чтобы увидеть полное изображение

Шаг 1. Обзор шины I2C

• Стенды для Inter Integrated Circuit.

• Синхронный, полудуплексный.

• Двухпроводный интерфейс - SDA и SCL.

• SDA - Последовательная линия данных, управляемая ведущим и ведомым

• SCL - последовательные часы, генерируемые мастером

• Протокол с несколькими ведущими и ведомыми устройствами.

• Два режима - 100 кбит / с и 400 кбит / с: медленный и быстрый.

Шаг 2: Дизайн RTL на VHDL

Технические характеристики нашего мастера I2C

  • 8-битный фрейм данных.
  • Только однонаправленное управление SCL.
  • 7-битный адрес ведомого устройства.
  • Поддерживает как медленный, так и быстрый режимы.
  • Один мастер, несколько подчиненных.
  • Соответствует оригинальным спецификациям I2C от Philips.

Используется чистый код RTL. Таким образом, IP легко переносится на все FPGA. Компактная конструкция на основе конечных автоматов с внутренне генерируемыми часами обеспечивает оптимальную площадь и производительность.

Шаг 3: моделирование и тестирование

Тестовая среда

  • Функциональное моделирование и тестирование с использованием стороннего I2C Slave IP.
  • Синтезирован с использованием набора инструментов Xilinx Vivado.
  • Реализовано и протестировано на плате ПЛИС Artix-7.
  • По таймингу проверенная конструкция на 100 МГц.
  • Проверенные формы сигналов на DSO / CRO.
  • Успешно протестирована связь с Arduino UNO в качестве ведомого устройства I2C.

Шаг 4: важные примечания

  • При тестировании ведущего устройства с использованием IP-адреса ведомого устройства I2C настройте код ведомого устройства в соответствии с вашими требованиями. Вы можете изменить тактовую частоту по умолчанию и адрес ведомого устройства. Тактовая частота также должна быть настроена в Мастер-коде.
  • При тестировании на плате не забывайте подтягивающие резисторы, так как линия SDA является общим стоком !!! Поищите в Google рекомендуемые подтягивающие резисторы для различных скоростей i2c. Я использовал 2.2K для 100 кГц.
  • Если вы не используете испытательный стенд и моделируете Мастер независимо, тщательно моделируйте сигнал SDA, так как это двунаправленный сигнал (входящий) сигнал. Он имеет два драйвера, ведущую и ведомую. Вы должны знать, когда «принуждать», а когда «отменять».
  • SCL - однонаправленная линия. Нет необходимости подтягиваться.
  • Пожалуйста, внимательно ознакомьтесь с IP-документацией.

Шаг 5: прикрепленные файлы

  • Все коды RTL I2C Master.
  • Тестовый стенд, а также коды I2C Slave для тестирования.
  • Документация по ИС.

По любым вопросам обращайтесь ко мне:

Миту Радж

следуй за мной:

По вопросам обращайтесь: [email protected]

Рекомендуемые: