Altera USB-Blaster – клон на CH552G. «Вдыхание жизни …»

Решил купить эту фигушку не столько по необходимости, сколько «до-кучи» - т.к. «бластеров» разных есть по крайней мере два вида, а один даже в двух экземплярах. Понятно, что все они клоны разной степени схожести с оригинальной конструкцией (кто-нибудь видел потроха оригинала?). Как и сейчас, так и десяток лет назад, когда мое знакомство с FPGA было еще на стадии понимания что и в каком количестве мне нужно, покупка оригинального инструмента ценой порядка сотни баксов не симпатизировала совсем. А вот его клон, ценой порядка 20 баксов – совсем другое дело! И первым бластером (программатор для заливки конфигов в FPGA) в моем арсенале стало изделие от китайского бренда, производителя в т.ч. разнообразных демо-плат собственной разработки, с одной из которых он и был приобретен. Внешне он имел очень сильный закос под оригинал от Альтеры: не только идентичным корпусом как в части геометрии и очень схожим содержанием информации на наклейке на лицевой стороне, но и своей функциональной составляющей (с точки зрения идентификации драйвера и фирменным софтом) – т.е. словно оригинал, без претензий совсем. Разве что наклейка ZRtech на днище выдавала «не чистокровное» его происхождение – или можно было предположить что это «контрактный» вариант. Всем этот бластер был (и остается) хорош, вот только огромный его размер не удобен был в эксплуатации за ограниченным местом стола перед компом – для рук места совсем не оставалось.

Поэтому задача покупки второго бластера была именно в минимизации размеров корпуса. И вот с этим было туго в те далекие годы. В продаже было много разных клонов, которые в отличие от моей редакции нисколько этого не скрывали (имели черный цвет корпуса, а иногда и форму, совсем иной дизайн этикетки и т.д.) – но смущало не это, а то что все они были практически такими же большими! И вот при поиске наткнулся я на продукцию другого китайского бренда, Alinx. Они предлагали свою вариацию бластера в корпусе форм-фактора микрочиповского PicKit-3. Взял такой себе, а тем более с учетом того, что он был явно не дороже первого варианта. По большому счету остался и им вполне доволен. Даже более чем, т.к. меня не остановила покупка второго такого в комплекте с очередной демо-платой этого же бренда (не помню точно, но вероятно в комплекте с  платой бластер шел фактически в подарок). Потом уже я время от времени натыкался в сети на различные статьи, повествующие дескать, о всяких нестабильных и глючных клонах бластера и способах их исправления. Но все это прошло словно мимо меня, хотя в неоригинальной схемотехнике, по крайней мере второго, бластера сомнений не оставалось (с учетом материала и фоток в интернете, а также прозрачного корпуса бластера от Alinx), в отличие от самого первого (который можно было предположить является полной копией оригинала). Помнится я когда-то даже открывал этот алинксовский бластер и наверняка фоткал, может даже обновлял прошивку (поддерживаемую энтузиастами), но ради проформы, а не по нужде.

Героя же данной статьи приобрел уже наверное более полугода назад. И валялся он все это время фактически за ненадобностью ...  А тут вспомнил про него на творческой волне. А вспомнил как потому, что куплен был этот «малыш» на распродаже всего за 2 бакса! Так и в тему возможных рекомендаций с моей стороны, когда я призадумался: какой бы клон Альтера-бластера я бы порекомендовал для разовой заливки конфига собирающему тот или иной проект человечку …

И знакомство мое с этим ультра-компактным и дешевым новоделом началось вовсе не радужно … Распаковываю, внешне он неплохо спаян и даже почти промыт. Подключаю к компу, теперь уже исключительно под «десяткой». Дрова автоматически ставятся внедренные ранее в систему и взятые из пакета инсталляции Квартуса (встроенных в винду нет) – вроде все как бы Ок. Запускаем среду разработки, обращаемся к этому «программатору» … и через пару секунд после внезапной паузы и раздумий системы – улетаем на синий экран! Однако! Ладно, бывает, но странно – т.к. десятку «вышибить» явно сложнее предыдущих версий винды. Ребутаемся. Заходим уже в диспетчер устройств, посмотреть как дела с дровами на этот бластер. Вызываем открытие окошка устройства … снова тормоза и пару секунд спустя – опять синий экран. Попытка номер три … Вобщем выходит что не зависимо от версии драйвера любое обращение к этому усбишному донглу ведет к вышибанию системы! Причем если в секунды предшествующего зависанию торможения успеть отключить этот горе-бластер – то система выживает. Но в любом случае – работать с ним невозможно. Но, с другой стороны, мы ставим и используем драйвер без WHQL-подписи, типа под свою ответственность и без гарантий. Но и вместе с этим Альтере (а ныне Интелу) должно быть минимум стыдно за такие кривые дрова, которые до сих пор настолько бажны, что способны отправить маздай в бсод!!!

Гуглим. И не столько к удивлению, сколько к радости, обнаруживаю что я не первый напарываюсь на такой трабл. Хербыспарой басксов, но получается, что на алишнике продают устройство заведомо не рабочее само по себе, или как минимум не соответствующее описанию. Т.к. если позиционировать его как «демо-плату» с контроллером CH552G – то всё не так уж и плохо. А попытка, и неудачная ее реализация, создания на базе этого современного новодельного и сверхдешёвого контроллера функционального аналога Alter USB-Blaster`а не столь уж и нова. Причем проблема силами энтузиастов решена и доступна в открытом доступе уже давно, но китаезам это почему то не открыло глаза и не дало возможности, а скорее желания и стремления, сделать продукт законченным и работоспособным. А сделать это проще простого!

Контроллер CH552G (производства WinChip, компании более известной как автора моста-конвертера USB-UART CH340, оказывается выпускающей и другую, более «интеллектуальную» мелочь) - являет собой реинкарнацию «яиц мамонта» (архитектура Интел-51) с рюшечками и фишечками добавляющим им актуальность в наши дни в совокупности с ценой. Более того, контроллер имеет встроенный загрузчик-программатор: так что для записи в него скомпилированной прошивки не потребуется дополнительного специфичного железа – прошить его можно как через встроенный USB-, так и через COM- порты.

Несмотря на определенную универсальность демо-платы – героя данной статьи, я не стал отвлекаться от темы и решил остановиться на придании этой миниатюрной фигушке лишь анонсируемого функционала: реализация интерфейса «Altera USB-Blaster». На самом деле всё уже сделано за нас, нужно просто этим воспользоваться, а поэтому приведу ссылки:

https://github.com/dsm/USB-Blaster_CH552 - собственно самая новая версия, вобравшая в себя труды и наработки других авторов (проект «третьего уровня», впитавший в себя мудрость проектов предыдущих уровней, а также прошедший несколько собственных версий). Берем бинарник, прошиваем, юзаем.

На этом можно и закончить, но приведу и другие ссылки с комментариями для понимания что и откуда:

https://github.com/dougg3/CH55x-USB-Blaster - аналогичный указанному выше, но «второго уровня». Более того автор это проекта написал немаленькую статью с подробным описанием своего творческого пути https://www.downtowndougbrown.com/2024/06/fixing-a-knockoff-altera-usb-blaster-that-never-worked/ (статья замечательная, очень интересно и с юмором написанная, к прочтению рекомендую однозначно).

https://github.com/VladimirDuan/CH55x-USB-Blaster - а с этого проекта, собственно, все и начиналось более пяти лет назад …

Также нельзя не отметить еще один, причем русскоязычный материал на данную тему https://ua3reo.ru/proshivka-kitajskogo-usb-blaster-na-osnove-ch552g/ - там автор неплохо, хотя даже избыточно подробно и со скриншотами описывает сам процесс прошивки, но к сожалению прикладывает линк на прошивку которая также не работает и вешает систему как и стоковая от китайских сборщиков. Так что ценность этой статьи чисто описательная, а за прошивкой обращаемся по первому линку, в то время как саму софтину-прошивальщик WCHISPTool – можно взять с официального сайта (последней версии).

Кстати, донгл приобретенный мной (на фотке в начале статьи) выгодно отличается от прочих ему подобных и программно-совместимых с точки зрения прошивки не только сверхмалым размером (за которым я собственно и гонялся) но и наличием аппаратных «драйверов»-преобразователей уровней сигналов (в отличие от применения ограничивающих ток резисторов в других вариантах). Ну и справочно: оборотная сторона платы (фотку выгладывать не стал) не только не имеет к.л. компонентов, но и сточки зрения трассировки содержит за мелкими исключениями лишь зону экрана. На плате отдельно разведены пины RX\TX под взаимодействие с загрузчиком наверняка – но зачем? Если можно сделать проще и обойтись лишь USB-подключением.

В двух словах последовательность шагов для прошивки следующая:

  1. Устанавливаем и запускаем софтину. Выбираем в ней нужный нам контроллер и файл, который мы хотим в него записать;
  2. Перед втыканием донгла в комп замыкаем пару ног: последнюю по нумерации (крайнюю с слева-сверху) и пятую от этого же края. Т.е. выход 3.3V со встроенного в контроллер стабилизатора и одну из линий дифференциальной пары USB-порта – «D+». Отпускаем буквально спустя секунду после подключения в комп. В софтине определяется факт подключения устройства (в диспетчере устройств встает комплектный виндовый драйвер, наших действий не требуется). По фэншую их конечно не накоротко замыкают, а резистором – но да мороки оно не стоит, все и так живы и здоровы остаются;
  3. Жамкаем старт (с этим лучше не мешкать, по неактивности контроллер ребутается в обычный режим), наблюдаем процесс и успешное его завершение. Перетыкаем донгл;
  4. Если в процессе прошивки имели место быть сообщения об ошибках – повторяем алгоритм по п.п. 2 и 3.
  5. PS. Получаем в итоге вполне функциональный инструмент, не уступающий ни в чем другим клонам с более навороченной древней схемотехникой и работающих под этим же драйвером: «Altera USB-Blaster» (VID_09FB&PID_6001).

PPS. Покупал здесь, как ни странно, но по итогам проведенного небольшого изыскания и собранного материала – к покупке могу рекомендовать ;-)

MiGeRA (февраль 2025)

Заглавная » Радиоэлектроника » Altera USB-Blaster – клон на CH552G