Я часто использую свой 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.