Всем привет! Решил я изучать понемногу FPGA, и столкнулся с проблемой: китайский USB Blaster отказывается работать в Windows 11. Драйвера ставятся, но при попытке прошить FPGA, Quartus зависает где-то на этапе общения с программатором. При отключении USB Blaster-а от ПК, Quartus отвисает. В конечном итоге, помогла перепрошивка USB Blaster-а, но обо всем по порядку…
После вскрытия корпуса, было обнаружено, что данная версия программатора собрана на микроконтроллере STM32F103C8:
Вообще, встречаются несколько китайский модификаций USB Blaster-а, которые по внешнему виду ни как не отличаются. В моем случае, мне повезло, так как добрые люди подготовили готовую прошивку для этой версии программатора. Пользователь с ником DX168B на habr.com в комментариях под одним из постов кинул ссылку на бинарник, за что ему !!! ОГРОМНОЕ СПАСИБО !!!
Ссылка на пост: https://habr.com/ru/articles/851928/comments/
Ссылка на исходный архив: https://disk.yandex.ru/d/SKeTeekGNHkXJA
Продублирую ссылку, вдруг ссылка на яндекс-диск протухнет: https://dimoon.ru/wp-content/uploads/2025/03/usb_blaster_cm3.zip
В архиве содержится файл USB_Blaster_CM3.hex, который нам надо прошить в проц нашего USB Blaster-а.
Разбираем программатор, на плате имеется вот такая группа контактов, это и есть пины SWD, через которые можно перепрошить МК:
Здесь показано, куда выведен SWD, а также пин BOOT0 микроконтроллера, который нам понадобится тоже.
Подключаем программатор:
Далее, последовательность действий следующая:
- Закорачиваем пин BOOT0 на +3.3V как показано на картинке, я делал это пинцетом;
- Подаем питание на USB Blaster через USB, при этом светодиод ACT не должен загореться, после этого пинцет можно убрать;
- Подключаем ST-Link к ПК через USB;
- В ST-Link Utility пытаемся подключиться к микроконтроллеру, при этом ST-Link Utility сообщит нам, что процессор залочен от чтения;
- Отключаем защиту от чтения в Option Byles:
- После этого прошиваем USB_Blaster_CM3.hex;
- Отключаем питание программатора и USB Blaster-а, отключаем ST-Link от Blaster-а;
- Подключаем USB Blaster к ПК, проверяем, загорелся ли светодиод ACT, и обнаружился ли бластер в диспетчере устройств.
Небольшой комментарий насчет BOOT0. Видимо, прошивка бластера отключает изнутри интерфейс SWD, поэтому, подключиться к контроллеру программатором не предстоит возможным, особенно без пина Reset. Если мы замкнем BOOT0 на +3.3V, то это активирует встроенный загрузчик МК, и, следовательно, основная прошивка не запустится и не отключит интерфейс SWD.
После проделанной операции проверяем, корректно ли Quartus работает с нашим свежеперешитым USB Blaster-ом. Раньше на этом этапе Quartus зависал:
В итоге, все работает! Всем спасибо за внимание, надеюсь, эта статья кому-нибудь будет полезной!