Яндекс.Метрика


Система Orphus

BlackCat – Программатор SPI и JTAG.

Началась эта история почти год  назад (в 2010-м). Тогда задался я целью собрать или купить интерфейс JTAG для низкоуровневой прошивки беспроводных маршрутизаторов. Электрически спаять интерфейс сопряжения JTAG с компом (например через LPT-порт) вроде как проще простого. Вопрос в программном обеспечении, JTAG – это очень широкое понятие, включающее в себя много всего разного, т.е. интерфейс очень универсальный и многофункциональный. В конкретных устройствах (процессорах, контроллерах и др.) он реализован, разумеется, не в полном объеме всей спецификации, а предназначен для решения порой очень узкого круга задач. Так, например, режим тестирования доступен далеко не всегда, а использование шины JTAG лишь для программирования «последовательных» флэшек – это очень мизерная часть от всего, для чего изначально предназначен JTAG. Мне в конкретном случае много и не требовалось, но даже для того чтобы подключившись к процессору устройства через JTAG иметь возможность прошить прицепленную к процу флэшку, необходимо выполнить низкоуровневый алгоритм ее программирования (а это уже дело софта). Софт же для простых «распаек» на LPT-порт также очень прост (чаще чисто консольные приложения), и для программирования флэшек роутеров не подходит (они там достаточно емкие). Так вот – среди того что можно было купить за разумные деньги и с требуемым мне функционалом, тогда на мой взгляд оказался интерфейс BlackCat (с подключением на USB). Заказал я его в штатах за 34 бакса (только что появившуюся версию PCB 1.7), ехал он долго – но путешествие моего "Черного кошака" закончилось благополучно.

 

Объектом для первого исследования планировалось сделать точку доступа DWL-2100AP – на которой были распаяны соответствующие JTAG штыри (разумеется, проверена цоколевка разъема). Но меня ждал большой облом. Программа управления BlackCat (версия 2.50) в упор не хотела работать – после запуска и определения факта наличия подключенного программатора она бесследно вываливалась (попросту закрывалась) – с более ранними версиями тоже самое. Если программатор не подключать – то все нормально, видим сообщение об отсутствии подключения. Также программа успешно отрабатывала процесс обновления прошивки в самом программаторе (при переводе его в режим DFU - контроллер ATMEL 90USB162-16AU). Но дальше этого дело не уходило – в режиме программатора SPI – таже фигня.  Поначалу я грешил на драйвера, на операционку,.. на комп – в конце концов! Но перепробовав все перечисленные компоненты в различных вариациях оставалось сделать вывод, что виновата именно софтина «кошака». И после глубокого вздоха разочарования он был заброшен.

Вспомнил про BlackCat еще раз, с практической точки зрения, совсем недавно (почти год спустя после его покупки). Мне требовалось прошить BIOS в одном из ноутбуков, а там была SPI-флэшка “W25X16” (winbond). А ввиду того что подобным действом (на чисто железячном уровне – с выпаиванием восьминогой микросхемы) занимаюсь в первый раз, - стал вспоминать: чем из имеющегося у меня можно прошить флэшку SPI. Вспомнился и BiDi Pro – и даже нашлась нужная библиотечка и комп со стандартным интегрированным LPT портом … но это другая (невеселая) история. Вспомнил я и про BlackCat (про неудачу и мучения с ним) – учитывая прошедшее время стал искать новый софт к нему. Была скачана новая версия – 2.75 – и о чудо! – она не вылетает! На радостях я быстренько сооружаю распайку и цепляю к нему флэшку в режиме SPI. BlackCat ее автоматически детектирует! Класс!.. но вот прошить ее не удалось, видимо все-таки неспроста (и не чисто программно) слетел BIOS у ноутбука. Что поделаешь – заказал с ебэя новую флэшку (в Москве таких не купить даже по завышенным ценам, а в Сингапуре за 12 баксов аж 5 штук). После месяца ожидания, получив флэшку – я беспроблемно прошил ее кошаком – УРА …

  

Режим JTAG в реализации BlackCat планирую также протестировать ...

Также "приоткрытым" остается вопрос о создании клона сего программатора ... можно найти ряд миниатюрных демо-платок с идентичным контроллером (AT90USB162), зашить в них соответствующий код (есть в пакете) и распаять соответствующие ноги (нужно смотреть какие) - правда целесообразность подобного мероприятия не совсем ясна - едва ли возможно купить демо-плату с идентичным контроллером дешевле, чем кошака.

Несмотря на наличие документации в комплекте с софтом - пару строк о джамперах и кнопках черкану тут:

  1. Двухсекционный переключатель: секция 1 - программная опция (в режиме SPI не используется); секция 2 - OFF - режим DFU (обновления firmware), ON - режим выполнения firmware ("основной" режим).
  2. Кнопка осуществляет сброс контроллера, чтобы не дергать кабель при переходе из режима в режим.
  3. Джампер позволяет выбрать напряжение питания на выходном разъеме.
  4. Красный светодиод - питание; синий - информационный, управляется софтом.

Функционал "основного" режима определяется залитой firmware - это или ISP, или JTAG. Обновлять firmware можно как средствами штатной софтины кошака, так и например атмеловской утилитой Flip.

Распиновка разъема для каждого из режимов следующая:

SPI

JTAG

PS. У янков-законодателей опять кризис с мозгами ... сайт www.theoryshare.com, где я брал сей программатор прикрыли (с тупейшей мотивацией) - типа "хакать модемы с целью получения халявы от опсосов - уголовно наказуемо ..." - поэтому программаторы больше продавать нельзя! Остается предложить этим дебилам изъять из продажи все ножи, а до кучи и напитки в стеклянных бутылках! Редирект ... новый сайт ребят-разработчиков "черного кошака" больше программаторами не торгует. Купить "черного кошака", к счастию, до сих пор можно на ебэе - ревизия 1.7 (как у меня).

MiGeRA (ноябрь 2011)

Продолжение.

До тестирования JTAG так руки пока и не дошли, а вот тут пришла мысль о совместимости "кошака" с другим софтом ("дудкой", например) ... И по ходу дела обнаружил еще некоторые интересные нюансы, которыми и решил дополнить статью написанную несколько лет назад.

По ссылке выше на ебэе торгуется уже кошак с версией PCB 1.8 - а это уже совсем другая штука получается, и она не совместима с BlackCat! Да, собственно, особенно ругаться тут и не приходится: просто внимательнее нужно быть (продавцам с ебэя в том числе). Девайсина с новой версией PCB носит уже название FlashCat и построена она на контроллере 32u2, соответственно firmware и управляющая софтина для нее свои. И хоть морда "новой" софтины весьма похожа на прежнюю блэк-кэтовскую, совместимостью она не обладает. Также не имеет смысла заливать firmware для FlashCat в устройство BlackCat PCB 1.7. Вот и получается, что кошака старого тихо отодвинули в сторону. Новый пользователь, покупающий флэш-кэта, равным счетом ничего не теряет, а напротив имеет обновляемый (пока что) софт, который можно взять тут, - последнее обновление аж от 2015 года. Получается, что вопрос клона китайцы решили и успешно его эксплуатируют. Обладателям же, по сегодняшним уже меркам "бородатого", оригинального "Черного кошака" - остается пользоваться последней версией софта (304.RC15 - от 2012 года, свежее не нашел) под firmware (ISP 1.09) для контроллера 90USB162 ...

С другой стороны, кошак (любой) штука узкоспецифичная - "дудка" (avrdude) про нее не знает и не собирается видимо, да и зачем? BlackCat - это не более чем интерфейс (совокупность firmware и управляющей софтины под него) для банальной прошивки микросхем памяти с интерфейсом SPI - и не более! Но актуальность такого программатора в последнее время заметно выросла вместе с переходом предпочтения производителей матерей (в частности) к использованию в качестве BIOS микросхем SPI-флэш.

MiGeRA (март 2015)



Заглавная » Радиоэлектроника » BlackCat – Программатор SPI и JTAG