Работа платы Марсоход2RPI с Raspberry Pi4

raspberry pi4 with FPGA Cyclone IV board marsohod2rpi

Раздобыли плату Raspberry Pi4 и попробовали подключать к ней нашу FPGA плату Марсоход2RPI. В принципе все работает, но JTAG сервер пришлось слегка модифицировать. Все из-за того, что базовый адрес периферии в Raspberry Pi4 изменился.

Поэтому вот, новая версия сетевого программатора-загрузчика JTAG:

Этот набор из двух файлов:

  • nw_jtag_srv, версия 1.2
  • jtag_hw_net_blaster64.dll, версия 1.8b

Первый исполняемый файл nw_jtag_srv запускается на Raspberry и выполняет роль JTAG сервера. По идее поддерживаются все версии одноплатников: Pi-Zero, Pi2, Pi3 и теперь уже Pi4. Сервер nw_jtag_srv слушает по сети входящие соединения от Quartus Prime Programmer и исполняет JTAG команды. Запускать сервер нужно через sudo.

В новой версии 1.2 сервера nw_jtag_srv предусмотрено использование конфигурационного файла jconfig.txt. Он может выглядеть вот так:

PERI_BASE=0xFE000000
TMS_RPI_PIN=0
TDI_RPI_PIN=11
TCK_RPI_PIN=7
TDO_RPI_PIN=1

Этот конфигурационный файл позволяет назначить новые параметры для сервера, альтернативные номера пинов для сигналов JTAG и альтернативный базовый адрес периферии в плате Raspberry. Я столкнулся с тем, что не вполне понимаю, как распознать платы. Написано про это много в интернете, но четкого описания нет. Так, что если по каким-то причинам nw_jtag_srv неправильно определяет тип платы вы сможете переназначить базовый адрес периферии в конфигурационном файле.

Типичные значения базового адреса для платы Pi-Zero: 0x0x20000000. Для Pi3 - это 0x3F000000. Ну и для Pi4 0xFE000000.

Со стороны Quartus Prime все довольно просто: копируйте jtag_hw_net_blaster64.dll в папку c:\intelFPGA_lite\18.1\quartus\bin64 или соответсвующую ей на вашем компьютере. После этого программатор должен появиться в диалоговом окне Quartus Prime Programmer.

Я проверил имеющиеся у нас проекты к плате Марсоход2RPI - все они успешно загружаются по сети в FPGA Cyclone IV платы.

 


Добавить комментарий