Files
BL616-firmware/CHANGELOG.md
T
Gromov_IA 8bc1583805 Прошивка моста BL616 для Tang Primer 25K и программатор TangProgrammer
- src/: прошивка встроенного отладчика BL616 — составное USB-устройство
  1209:C0CA: DirtyJTAG v3 (WinUSB через MS OS 2.0) + CDC-ACM UART к FPGA
  B3/C3; UART до 20 Мбод на DMA, JTAG до 30 МГц через аппаратный SPI;
- bin/: загрузчик Sipeed (0x0) и штатная прошивка 2025030317 для отката;
- gui/: TangProgrammer.exe (C# WinForms, .NET Framework 4) — загрузка FPGA
  в SRAM и во флеш-память, копия и стирание флеш-памяти FPGA, прошивка
  моста; светлая и тёмная тема;
- scripts/: setup, build, flash, build_gui, make_portable, а также
  make_release и publish_release для релизов Gitea;
- fpga_test/, tests/: тестовые проекты Gowin (loopback, stream) и тесты
  UART на Python;
- tools/openFPGALoader/: openFPGALoader 1.1.1 для Windows x64.
2026-10-02 14:59:10 +03:00

2.6 KiB

Изменения

v1.0.0 — 2026-10-01

Первый выпуск.

Прошивка моста BL616 (tang25k_debugger_bl616.bin, версия 1.0.0)

  • Составное USB-устройство 1209:C0CA: DirtyJTAG v3 (WinUSB ставится сам, без Zadig) + CDC-ACM UART к пинам FPGA B3/C3; работают одновременно.
  • UART от 300 бод до 20 Мбод, 5–8 бит, чётность none/odd/even, 1/1.5/2 стоп-бита. Проверено 9600 … 12 Мбод в обе стороны без потерь, поток FPGA → ПК 10 Мбод непрерывно 30 с без ошибок.
  • JTAG до 30 МГц, длинные сдвиги через аппаратный SPI. Загрузка GW5A-25 в SRAM ≈ 2 с при 6 МГц, запись во флеш-память FPGA с проверкой ≈ 8 с.
  • Обход особенностей BL616: зависание приёмника UART при смене скорости посреди байта, запись usbser.sys без завершающего ZLP, потеря ZLP на IN.
  • Переход в загрузчик без перемычки: открыть COM-порт моста на 1234 бод или держать S3 при подключении USB.

Пишется вместе с загрузчиком Sipeed: bl616_bootloader_0x20000_nano20k_signed.bin по адресу 0x0, прошивка моста по адресу 0x20000. Откат — bl616_fpga_partner_25kDock.bin (штатная Sipeed 2025030317) по адресу 0x0.

Программатор TangProgrammer (Windows 10/11 x64, .NET Framework 4)

  • FPGA: загрузка .fs в SRAM и во флеш-память, автозагрузка при пересборке в Gowin IDE, перезапуск из флеш-памяти.
  • Флеш-память FPGA: определение микросхемы, резервная копия с двойным чтением, запись .bin/.fs, стирание.
  • Прошивка моста BL616 и возврат штатной прошивки Sipeed.
  • Светлая и тёмная тема.

Тестовые битстримы для GW5A-25: loopback.fs (петля UART) и stream.fs (поток 10 Мбод) — к tests\uart_loopback_test.py и tests\uart_stream_test.py.

Ограничения: Gowin Programmer с этой прошивкой не работает (только openFPGALoader); --unprotect-flash с флеш-памятью XTX на плате не использовать.