OpenSource программатор ПЛИС на FT2232H

Небольшая заметка об opensource-программаторе на распространённой FT2232H, который можно использовать для прошивки и отладки ПЛИС производства как Intel, так и Xilinx.

Примечание: да-да, плата с глупой ошибкой в направлении согласователей уровней, пришлось исправлять проволочками и забить на красоту. :/ В репозитории уже исправленный вариант.

Схемотехника

В целом, схема программатора кардинально не отличается от оригинальной Digilent JTAG-HS2, внесены небольшие изменения:

  • добавлена защита USB-линий на USBLC6-2P6;
  • возможность запаять USB-A или USB Type C разъём;
  • применен другой тип EEPROM — 93LC56BT;
  • применены другие согласователи уровней на всех линиях — SN74LVC2T45DCUR;
  • добавлена ошибка в подключении согласователей уровней (fixed);
  • применен малогабаритный LDO — TPS73701DRBR;
  • добавлена возможность управления линией сброса (но, правда, для этого надо будет самостоятельно писать скрипт для управления ей, иначе эта возможность просто не используется);
  • выведен UART второго (B) канала для использования в качестве COM порта.

Итоговая схема (кликабельно):

В PDF лежит на гите.

Разводка

Стилистически всё аналогично проекту J-Link OpenSource Hardware v9.x, но в плане размещения компонентов и разводки всё получилось проще:

Если не запаивать FFC-разъёмы, то монтаж вообще полностью односторонний получается.

3D-рендер:

Собранная плата

Особо тут ничего интересного, разве что сразу правим косяки:

И в сравнении с J-Link:

Прошивка

Ничего примечательного, всё основные пункты уже описаны на форуме в теме Digilent JTAG-HS2 , поэтому вкратце опишу последовательность:

Скачиваем FT_Prog, открываем темплейт из папки Flash в репозитории и прошиваем им программатор (в котором, помимо PID, VID и описания устройства, порт A настроен на 245 FIFO для прямого доступа и порт B настроен как UART):

Далее запускаем FTDI_User_Area_Writer.exe из папки Flash для прошивки User Area, без которой Vivado не признаёт программатор:

На этом этапе можно отключить и заново подключить программатор, он должен определиться корректно, и теперь можно пробовать работать с ПЛИС через него.

Пробуем на Xilinx Artix-7!

Подключаем к плате с Xilinx ПЛИСой, в моём случае это простая отладка на Artix-7:

Запускаем Vivado, переходим в Hardware Manager и пробуем обновить доступные подключения:

Программатор обнаружился, и он, в свою очередь, обнаружил подключенную к нему ПЛИС. Отлично! Можно поиграться с XADC или заливать beatstream:

Примечание: аналогично можно работать и с ПЛИС от Intel, с помощью библиотеки mbftdi, которая эмулирует работу USB ByteBlaster через FT2232H, но работает-таки медленнее даже клонов, а попытка залить прошивку NIOS у меня вообще завершалась неудачей, причину которой я так и не нашёл.

Ссылки

  • FT2232H JTAG UART — репозиторий проекта;
  • FT_Prog — утилита для конфигурации EEPROM по USB;
  • mbftdi — плагин для Intel Quartus Prime, позволяющий использовать FT2232H в качестве программатора;
  • Digilent JTAG-HS2 — тема на Electronix, посвящённая превращению платы с FT2232H в Digilent JTAG-HS2.

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

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s