Я часто использую свой Ultra96 для проектов Hackster, блогов и прототипирования клиентов, если они нацелены на Xilinx MPSoC. Поэтому я был очень рад увидеть недавний выпуск Click Mezzanine, который подключается к низкоскоростному разъему Ultra96 и предоставляет два сайта MikroBUS.

Если вы не знакомы с MikroElectronica MikroBus, он состоит из пары разъемов 1×8 (гнездо на сокете), которые поддерживают ряд часто используемых встроенных системных интерфейсов. Сюда входят SPI, I2C, UART, аналоговый вход, выход PWM, прерывание и поддержка работы как 3v3, так и 5v.

К каждому сайту MikroBUS мы можем подключить любую из 657 различных плат кликов, которые варьируются от простого UART до SD-карты, беспроводной сети и управления двигателем. Существует широкий выбор на выбор — для начала я выбрал Click Mezzanine Starter Kit, который включает в себя следующее:

  • Инерциальное измерение 6 степеней свободы (LSM6DSL)
  • ЖК-дисплей 2x16 символов
  • USB-UART

В оставшейся части этого блога мы рассмотрим, как мы можем настроить USB на UART Click и запустить его. Это важный щелчок, поскольку он предоставляет нам функциональность UART, если у нас нет модуля USB to JTAG/UART. (Хотя по моим изображениям видно, что у меня есть переходник USB-JTAG/USB.)

Первое, что нам нужно сделать, это создать новый проект Vivado, ориентированный на Ultra96.

После того, как проект создан, мы должны рассмотреть конфигурацию UART Ultra96. Конфигурация UART Ultra96 интересна тем, что в конструкции используются оба UART процессорной системы. PS UART0 подключен к комбинированному WiFI-BlueTooth, а PS UART 1 подключен для использования с модулем USB to JTAG/UART.

Это оставляет нам два варианта при работе с Click USB I2C Click:

  • Перенаправьте контакты PS UART One на EMIO и направьте на низкоскоростной разъем — это очень просто сделать, просто выберите EMIO в назначении контактов PS UART1 в диалоговом окне повторной настройки MPSoC.
  • Реализуйте AXI UART Lite в программируемой логике.

Выбор между двумя вариантами действительно зависит от ваших требований к дизайну. В этом примере мы собираемся добавить AXI UART Lite, так как это более сложный из двух подходов.

На блок-схеме добавьте систему обработки MPSoC и запустите автоматизацию блока, чтобы убедиться, что система обработки (PS) правильно настроена для Ultra96.

После этого следующим шагом будет добавление IP-ядра AXI Uartlite.

Чтобы подключить AXI UartLite к MPSoC, мы можем запустить мастер автоматизации подключения. Это подключит AXI UartLite к архитектуре памяти MPSoC, а также подключит необходимые часы и сбросы.

Поскольку мы хотим иметь возможность направить контакты AXI UartLite Tx и Rx на низкоскоростной разъем. Когда мы запускаем мастер автоматизации, мы подключаем как интерфейс AXI, так и внешние контакты UART.

Завершенная блок-схема для этого эталонного проекта выглядит так, как показано ниже.

Последним элементом является установка внешних контактов для контактов TX и RX, в этом примере мы хотим использовать контакты 13 (RX) и 11 (TX) на низкоскоростном разъеме. Поскольку для ввода-вывода MPSoC установлено значение 1v8 LVCMOS, мезонин Click обеспечивает преобразование между 1v8 ввода-вывода MPSoC и 3v3, требуемым платами Click.

Для ясности вывод RX является входом в MPSoC, а вывод TX — выходом в MPSoC.

Как только битовый поток сгенерирован, мы можем экспортировать HDF (с битовым потоком) в SDK и создать новый проект приложения. Убедитесь, что этот новый проект также настроен на создание нового пакета поддержки платы (BSP).

Для этого приложения мы можем использовать пример Hello_World, предоставленный SDK.

Чтобы иметь возможность легко использовать AXI UART в нашем проекте, нам нужно переконфигурировать BSP для использования AXI UartLite для связи STDIN/STDOUT.

После того, как это было настроено, мы можем пересобрать приложение и загрузить его на Ultra96, используя либо USB-JTAG POD, либо создав загрузчик первой стадии и запустив его с SD-карты.

Как видите, настроить и запустить Click USB I2C/UART довольно просто, и он обеспечивает функциональность UART для Ultra96. Обратите внимание, что если вы не измените скорость передачи данных в Vivado, по умолчанию она будет равна 9600.

В целом, я впечатлен Click Mezzanine, так как он предоставляет ряд модулей, которые мы можем легко взаимодействовать с Ultra96. Поскольку он использует интерфейсы SPI, I2C, UART, мы можем легко взаимодействовать с ними, используя как «голое железо», так и приложения Linux.

Я буду изучать и использовать больше досок Click в будущих блогах и проектах Hackster.

Посмотрите мои проекты FPGA/SoC:Адам Тейлор на Hackster.io

Получите код:ATaylorCEngFIET (Адам Тейлор)

Доступ к архивам MicroZed Chronicles с более чем 290 статьями о Zynq / Zynq MpSoC, которые еженедельно обновляются на MicroZed Chronicles.