Прошивка DMA-карты через CH347
Как записать .bin-образ на карту 75T или 100T через CH347FpgaDownloadTool: структура папки, правильная модель FPGA, нужный порт и проверка после прошивки.
Коротко
Положите .bin в папку CH347FPGATool. Подключите кабель к JTAG-порту карты и запустите CH347FpgaDownloadTool.exe. Выберите xc7a75t или xc7a100t — под свою плату. Перед записью переключите формат файла на BIN. После успешной прошивки выключите и снова включите игровой ПК, переставьте кабель в порт данных и запустите тест подключения.
На странице11
Что именно записывается при прошивке
CH347 на вашей карте — это USB-мост от WCH, который даёт доступ к JTAG через USB. Программа прошивки по этому JTAG-каналу записывает образ в микросхему SPI flash рядом с FPGA. В саму FPGA ничего не записывается так, чтобы пережить отключение питания: при каждом включении FPGA читает flash и конфигурирует себя тем, что там найдёт. Вот и весь механизм. Именно поэтому после неудачного образа карта просто перестаёт определяться, а не выходит из строя.
Пути, программы и имена файлов
Имена приведены дословно: одна опечатка здесь стоит целого вечера. Берите файлы из комплекта заказа или из раздела Downloads, а не со случайного зеркала.
C:\CH347FPGATool\
C:\CH347FPGATool\CH347FpgaDownloadTool.exe
C:\CH347FPGATool\your-order-image.bin
FPGA part selector: xc7a75t (75T boards)
FPGA part selector: xc7a100t (100T boards)
File format selector: BIN (not BIT)Перед запуском программы
Шесть пунктов. Каждый из них — тикет, который можно было не открывать.
- Вы точно знаете, 75T у вас или 100T: смотрите маркировку на FPGA, а не описание в объявлении
- Образ, который вы собираетесь прошить, собран под эту плату и этот DNA ID
- На втором ПК установлен драйвер CH347 или WCH
- USB-кабель с передачей данных (не только для зарядки) подключён к JTAG-порту карты и к заднему USB-порту
- На карту подано питание — на большинстве плат это значит, что она стоит в игровом ПК и тот включён
- USB-устройство на втором ПК больше ничем не занято: ридер (софт чтения памяти) и MemProcFS закрыты
Прошивка по порядку
Порядок не меняйте. Модель FPGA и формат файла нужно выставить правильно до выбора файла, потому что некоторые сборки программы сбрасывают путь к файлу при изменении любого из этих параметров.
- Скопируйте папку CH347FPGATool туда, где путь короткий, и положите в неё свой .bin-образ
- Переставьте USB-кабель в JTAG-порт карты, подключив его к заднему USB-порту второго ПК
- Запустите CH347FpgaDownloadTool.exe — от имени администратора, если программа пишет, что не может открыть устройство
- В поле FPGA выберите модель, соответствующую вашему чипу: xc7a75t или xc7a100t
- Переключите формат файла с BIT на BIN
- Нажмите кнопку выбора файла и укажите свой .bin-образ
- Запустите запись и не трогайте компьютер — заложите несколько минут
- Дождитесь, пока сама программа сообщит об успехе, и только потом что-либо трогайте
Внимание
Неправильно выбранная модель FPGA
Выбор модели сообщает программе, какое JTAG-устройство она должна найти. Если выбрать 100T при чипе 75T, программа обычно не может открыть цепочку и отказывается записывать, потому что JTAG IDCODE не совпадает. Не рассчитывайте на это как на страховку. Считайте, что ошибка с моделью — это сразу восстановление карты. Проверьте маркировку FPGA на плате до того, как что-либо выбирать, а если прочитать её не получается, спросите поддержку, а не гадайте между двумя вариантами.
Внимание
Не прерывайте запущенную прошивку
Пока программа пишет, во flash-памяти нет ни старого образа, ни нового. Выдернуть в этот момент кабель, отправить второй ПК в сон или обесточить игровой ПК — единственное действие во всём гайде, после которого карта почти наверняка перестанет определяться. Если второй ПК любит быстро засыпать, заранее отключите спящий режим.
Как выглядит успешная прошивка
Здесь верить нужно программе, а не светодиодам на карте. Светодиоды на DMA-плате обычно показывают питание и активность и загорятся даже с повреждённым образом во flash.
- Длительность
- Несколько минут для полного образа. Если прошивка закончилась за секунды, ничего не записалось
- Вывод программы
- Явная строка о завершении или успехе, без строк с ошибками выше неё
- Прогресс
- Индикатор прогресса дошёл до конца, а не застрял на середине
- Не доказательство
- Светодиоды на карте. Они означают, что питание есть, а не что карта сконфигурирована
- Следующее действие
- Полное выключение игрового ПК, а не перезагрузка. Слот должен полностью обесточиться
Проверка после прошивки
Прошивка не считается проверенной, пока карта снова не появится как PCIe-устройство и ридер не сможет с ней связаться. Шесть шагов, строго в этом порядке.
- Полностью выключите игровой ПК, подождите десять секунд и включите его снова
- Переставьте USB-кабель из JTAG-порта в порт данных (DATA) на карте
- На втором ПК убедитесь, что в диспетчере устройств появилось устройство FTDI для передачи данных и рядом с ним нет жёлтого треугольника
- Запустите тест подключения из комплекта заказа и убедитесь, что он видит карту
- Считайте DNA ID и проверьте, что он совпадает с ID, под который собран образ
- Только после этого запускайте то, что реально читает память
Если прошивка не удалась
Идите по списку сверху вниз. Исправление в каждой строке обходится дешевле, чем в следующей, так что не начинайте с мысли, что карта мертва.
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Программа не может открыть устройство или вообще не видит устройств | Кабель в порту данных, не установлен драйвер CH347 или устройство занято другим процессом | Переставьте кабель в JTAG-порт, установите драйвер CH347 или WCH, закройте ридер и MemProcFS, затем запустите программу от имени администратора |
| JTAG-цепочка открывается, но модель не совпадает | На плате 75T выбран xc7a100t, или наоборот | Прочитайте маркировку FPGA на плате и выберите соответствующую модель. Не начинайте запись, пока цепочка не покажет ожидаемое устройство |
| Запись начинается и обрывается с ошибкой на середине | Нестабильное USB-соединение, хаб или разъём передней панели между картой и ПК, либо второй ПК уснул во время записи | Подключитесь напрямую к заднему USB-порту коротким кабелем с передачей данных, отключите спящий режим и повторите прошивку с самого начала |
| Программа сообщает об успехе, но карта всё равно не определяется | Образ собран под другую плату или другой DNA ID, либо игровой ПК только перезагрузили | Сначала сделайте холодный старт игрового ПК с полным отключением питания. Если карта всё равно не появилась, сверьте имя файла образа с заказом, прежде чем прошивать заново |
| Карта определяется, но ридер не может подключиться | Кабель всё ещё в JTAG-порту или не установлен FTDI-драйвер для передачи данных | Переставьте кабель в порт данных и установите на втором ПК драйвер FTDI D3XX. Это проблема драйвера, а не прошивки |
| После прерванной записи — вообще никаких признаков жизни | Во flash лежит неполный образ, поэтому конфигурация FPGA так и не завершается | Прошейте правильный образ заново через тот же JTAG-порт. JTAG не зависит от содержимого flash, поэтому такое обычно восстанавливается |
Вопросы по прошивке
Можно прошивать с игрового ПК, а не со второго?
Нет. Программа общается с картой по USB через JTAG-порт, и этот кабель подключается ко второму ПК. Задача игрового ПК — только подавать питание на слот.
Что выбирать: BIT или BIN?
BIN. Режим BIT конфигурирует FPGA напрямую, и эта конфигурация пропадает при выключении питания. Прошивки для DMA-карт записываются в SPI flash, а это как раз режим BIN.
Сколько должна длиться прошивка?
Несколько минут для полного образа. Если программа сообщает о завершении через пару секунд, она почти наверняка ничего не записала — проверьте выбор формата и путь к файлу.
Нужно ли сначала стирать flash?
Нет. Программа сама стирает flash в процессе записи. Ручное стирание из универсальных туториалов по FPGA здесь не нужно и лишь добавляет промежуток, когда на карте вообще нет образа.
Можно прошить один и тот же образ дважды?
Да, и это безвредно. Повторная прошивка — разумный первый шаг, если карта ведёт себя странно после прерванной записи: так вы убираете любые сомнения насчёт того, что лежит во flash.
Источники
Структура папки, порядок шагов и таблица ошибок — наши. Они основаны на опыте прошивки этих карт и на тикетах.
- 01AMD/Xilinx UG910, Vivado Design Suite User Guide: Getting Started
порядок программирования устройства: конфигурация, записанная прямо в FPGA, пропадает при отключении питания, а образ во flash-памяти сохраняется
docs.amd.com
- 02AMD/Xilinx DS180, 7 Series FPGAs Data Sheet: Overview
что xc7a75t и xc7a100t — разные микросхемы Artix-7, поэтому выбранная в программе модель должна совпадать с чипом на плате
docs.amd.com
Читать дальше
Не получилось? Откройте тикет в Discord
Все гайды