Jump to content

    
Sign in to follow this  
alexadmin

Xilinx JTAG на базе FTDI

Recommended Posts

Современные киты от Xilinx и Digilent имеют встроенный USB JTAG на базе микросхемы FTDI FT*32H. Хочется в своей плате сделать такое же решение. Идея понятна, повторить схему, скопировать настройки FTDI. Больше вроде ничего не надо. Но есть ряд непонятных моментов:

1) FTDI чипы в этих платах имеют стандартный VID/PID. Как Vivado опознает, что это именно программатор, по полю Manufacturer Description?2) На схемах трех китов, что я смотрел, подключение сигналов JTAG (TCK, TDI, TDO, TMS + доп. управление) к шине данных FTDI везде разное. Как драйвер или кто там разбирает где что?3) Я вообще плохо понимаю, как они эмулируют работу JTAG в режиме FT245 FIFO (выбран в настройках FTDI), но это уже вопрос теоретический.

Может быть кто-то уже делал подобное?

Share this post


Link to post
Share on other sites

самому любопытно как это работает,

детально не разбирался, но у trenz-electronic в описании аналогичного продукта есть строчки:

user EEPROM content stored Xilinx JTAG license

Without this license the on-board JTAG will not be accessible any more with any Xilinx tools

 

 

Share this post


Link to post
Share on other sites
А вы пробовали читать конфигурационную EEPROM чипа FTDI от от Xilinx и Digilent? Mprog.exe может это сделать?

 

Да. Читает (FT_Prog). Собственнно оттуда я и выяснил, что VID/PID оригинальные, а отличаются. Manuf.Desc. Но ответа на второй вопрос это не дает. У Digilent хотя бы используется универсальный модуль (SMT2) и там все неизменно. Но вот с платами Xilinx... Правда есть предположение, что первые цифры серийного номера могут определять аппаратную конфигурацию. Было бы интересно считать EEPROM у VCU1525, ZCU104. Ни у кого в столе не валяются? :)

 

самому любопытно как это работает,

детально не разбирался, но у trenz-electronic в описании аналогичного продукта есть строчки:

 

Очень интересно. Нашел еще https://forums.xilinx.com/t5/Configuration/...ado/td-p/817466

M_PROG writes only VISIBLE part of EEPROM and ERASES the user EEPROM without warning .. so if you use M_PROG on anything with Digilent Serial included, then it would render that device useless.

В FT_Prog в самом интерфейсе ничего кроме серийного номера не вижу, но в дампе, который так же любезно предоставляется просматривается еще текст...

 

Share this post


Link to post
Share on other sites
В FT_Prog в самом интерфейсе ничего кроме серийного номера не вижу, но в дампе, который так же любезно предоставляется просматривается еще текст...

 

Покурив доки обнаружил что область User area в eeprom, можно читать/писать функциями d2xx драйвера. Похоже так вивада и делает. Ну либо можно работать с бинарным дампом, полностью копируя образ eeprom без участия ft_prog.

 

 

Share this post


Link to post
Share on other sites
Современные киты от Xilinx и Digilent имеют встроенный USB JTAG на базе микросхемы FTDI FT*32H. Хочется в своей плате сделать такое же решение. Идея понятна, повторить схему, скопировать настройки FTDI. Больше вроде ничего не надо. Но есть ряд непонятных моментов:

1) FTDI чипы в этих платах имеют стандартный VID/PID. Как Vivado опознает, что это именно программатор, по полю Manufacturer Description?2) На схемах трех китов, что я смотрел, подключение сигналов JTAG (TCK, TDI, TDO, TMS + доп. управление) к шине данных FTDI везде разное. Как драйвер или кто там разбирает где что?3) Я вообще плохо понимаю, как они эмулируют работу JTAG в режиме FT245 FIFO (выбран в настройках FTDI), но это уже вопрос теоретический.

Может быть кто-то уже делал подобное?

Вставлю свои пять копеек.

Есть модули с микросхемами FT. Паяешь на свою плату разводишь jtag и программируешь плис прямо из вивадо. Как то по ошибке на таком модуле стер пзу (FT_PROG). Опечалился. Потом взял новый такой же модуль слил с него прошивку, и залил ее в стертый модуль. НО восстановленный модуль работать так и не стал!

Share this post


Link to post
Share on other sites
Вставлю свои пять копеек.

Есть модули с микросхемами FT. Паяешь на свою плату разводишь jtag и программируешь плис прямо из вивадо. Как то по ошибке на таком модуле стер пзу (FT_PROG). Опечалился. Потом взял новый такой же модуль слил с него прошивку, и залил ее в стертый модуль. НО восстановленный модуль работать так и не стал!

Чем шили? User area через FT_prog не шьётся, нужны дополнительные танцы с бубном. Посмотрите те две темы на которые я дал ссылки, там вся информация уже есть.

Share this post


Link to post
Share on other sites

Здравствуйте. Пытаюсь решить такую же пробему как и у TC (т.е. на кастомную плату поставить FT2232H, чтобы сделать мост USB-JTAG для программирования Zynq-7000. Почитав эту и другие темы, так и не понял, каково же решение.

Может кто подсказать, какого набора достаточно/необходимо, чтобы можно было из Vivado/ISE программировать/дебажить FPGA через FTDI. Мои предположения:

1) Только FTDI FT*32H (у которой JTAG подсоединен к FPGA). Никаких драйверов, доп софта, всё подхватывается Vivado/ISE?

2) FTDI FT*32 и какие-то стандартные/самодельные драйвера, доп софт, танцы с бубном?

3) FTDI FT*32 к которой подсоединена какая-то EEPROM с "Xilinx JTAG license". Если этот вариант, то не совсем понимаю, как конфигурировать EEPROM? Она ставится на плату уже с готовой предпрошитой лицензией, или подразумевается, что разработчик сам должен её прошить каким-то лицензионным файлом? Где все эти лицензии искать (у Xilinx, или Digilent, или FTDI, или...)?

 

P.S. к сожалению предложенные ссылки не работают (видно слетели после обновления сайта?)

В 13.07.2018 в 12:19, Dimidrol сказал:

 

Share this post


Link to post
Share on other sites
1 hour ago, Vengin said:

P.S. к сожалению предложенные ссылки не работают (видно слетели после обновления сайта?)

одна из тем в соседнем разделе "Работаем с ПЛИС", закрепил её в шапке как "пользующуюся спросом":

 

вот вторая:

 

Share this post


Link to post
Share on other sites

Правильно 3 :     FTDI FT2232H к которой подсоединена какая-то EEPROM 

EEPROM проще зашить отдельно. Вот содержимое:

https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=103248

Но можно и :

 FT_Prog-om конфигурируется ft2232h   xml файл https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=103249

 Затем запускается FTDI_User_Area_Writer.exe , он переписывает 14 байт.

Подробности в темах по ссылкам из предыдущего поста.

Share this post


Link to post
Share on other sites
10 часов назад, gk2 сказал:

Правильно 3 :     FTDI FT2232H к которой подсоединена какая-то EEPROM 

EEPROM проще зашить отдельно. Вот содержимое:

https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=103248

Но можно и :

 FT_Prog-om конфигурируется ft2232h   xml файл https://electronix.ru/forum/applications/core/interface/file/attachment.php?id=103249

 Затем запускается FTDI_User_Area_Writer.exe , он переписывает 14 байт.

Подробности в темах по ссылкам из предыдущего поста.

Спасибо! Надо понимать, что содержимое зашиваемое в EEPROM это "пиратчина". Но если нужно сделать всё официально нужно искать лицензиею? Может кому приходилось идти официальным путём - насколько это сложно/дорого/геморно?

Share this post


Link to post
Share on other sites
1 час назад, Vengin сказал:

Спасибо! Надо понимать, что содержимое зашиваемое в EEPROM это "пиратчина". Но если нужно сделать всё официально нужно искать лицензиею? Может кому приходилось идти официальным путём - насколько это сложно/дорого/геморно?

Присоединяюсь к вопросу. Насколько мне известно, все желающие должны были устанавливать себе на плату готовый модуль от Digilent.

Однако, например, на плате VCU1525 такого модуля нет. Не знаю, какое там решение. Прошивка EEPROM от Digilent или уже нет?

Share this post


Link to post
Share on other sites
11 hours ago, Vengin said:

Спасибо! Надо понимать, что содержимое зашиваемое в EEPROM это "пиратчина". Но если нужно сделать всё официально нужно искать лицензиею? Может кому приходилось идти официальным путём - насколько это сложно/дорого/геморно?

Впервые вижу такое утверждение. Что значит "пиратчина"? Кто из потребителей готового продукта (если таковы имеются вообще) будет спрашивать как вы залили данные в EEPROM? Может вы на заводе или субподрядчика сразу заказали с подготовленной прошивкой и потом просто впаяли? Где параметр "честности" прошивки? Понимаю ПО, если у вас на конторе только пиратские лицензии на неподдерживаемые чипы или что-то подобное.

Share this post


Link to post
Share on other sites

Ну, если изделие планируется пускать в серию, и официально продаваться в тех же штатах, то вопросов не избежать. Мне как инженеру гораздо проще просто использовать "честно стыренное", но обычно у буржуинов всё сложнее. И критерием "честности" будет являться собственно покупка лицензии у дистрибьютера. А этот переговорный процесс не так-то прост.

 

Вдогонку про честность, на форуме xilinx:

" if you clone the Digilent EEPROM (which lets the FT2232 identify as a Digilent product, and is necessary to make it talk to the Xilinx tools) and the USB PID/VID then you're almost certainly committing copyright infringement - with all the usual penalties. "

Edited by Vengin

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this