Работа платы Марсоход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 платы.

 


Комментарии  
+1 #5 Dan 07.08.2021 14:28
Hello nckm,

This project is really impressive!
I want to use it over linux Quartus. Can you share your source fir the dll and the server?
And how do you create .dll for quartus programmer for costum hardware? I see you did it also for the mbftdi, but how do you know what API quartus expects of the .dll?

Please contact me by mail if you can. Thank you very much! (If English is a problem, I'll use google translate and hopefully we'll be OK ;-) )
+1 #4 nckm 29.03.2020 13:58
Цитирую ROOT:
Нужен! Могу помочь в сборке / отладке - опыт имеется (kernelspace & userspace) почта в профиле

Готово
+2 #3 ROOT 17.03.2020 07:54
Нужен! Могу помочь в сборке / отладке - опыт имеется (kernelspace & userspace) почта в профиле
0 #2 nckm 16.03.2020 16:33
Цитирую ROOT:
А "jtag_hw_net_blaster64.so" для Quartus под Linux (как на MBFTDI) есть? Или планируется? Если что могу помочь в сборке / отладке

Пока нет, к сожалению.. А нужен?
+1 #1 ROOT 16.03.2020 11:15
А "jtag_hw_net_bl aster64.so" для Quartus под Linux (как на MBFTDI) есть? Или планируется? Если что могу помочь в сборке / отладке
Добавить комментарий