Прошивка ST-Link в J-Link
Иногда полезен программатор J-Link, не буду вникать в тонкости и его плюсы\минусы, но если у Вас в наличии дешевый китайский ST-Link — то считайте, что у вас 2 версии программатора по необходимости! Интересно узнать, как это делать на китайских клонах? Читай дальше ;)
Внимание! Материал ниже представлен исключительно в ознакомительных целях, и если Вам необходим J-Link в коммерческих целях, то следует приобрести официальный программатор.
На просторах Ebay или AliExpress по ключевому слову «ST-Link v2» можно найти множество клонов. Практически все они собраны на STM32F103C8T6 , но, судя по всему, можно нарваться и на другой вариант с камнем STM32F101CBT6 как отписались в комментариях. Такой не подходит и лучше узнать у продавца, если хотите купить в закрытом корпусе или не уверены, что стоит на плате у продавца. (поправка! ВОТ ТУТ пишут, что прекрасно обновляются клоны и на этом камне, но USB в STM32F101CBT6 нет по документации, возможны баги\глюки). У меня же в наличии вот такой (также собирал свой собственный — описанный способ прошивки на нем тоже работает):
Есть различные варианты, они будут идентичны этому. Примерная схема этого варианта:
Ну что, приступим! Для работы нам понадобится:
- сам программатор, естественно (официальный сайт и драйвера, если понадобится);
- драйвера для J-LINK — взять тут (J-Link Software and Documentation Pack);
- пакет с утилитой обновления — STLinkReflash_161007.zip (а тут официальный сайт).
Изначально утилита от SEGGER не видит китайские клоны и поддерживает только официальные отладочные платы с этим программатором и сами официальные программаторы. Но на форуме esp8266.ru было найдено решение (спасибо pvvx!) — необходим небольшой патч оригинального STLinkReflash.exe и он будет без проблем обновлять и клоны! :)
Патч для STLinkReflash.exe (версия 161007) состоит из замены 3х байт. На всякий случай привожу его тут (адрес: оригинальное значение | новое значение):
- 00002568: 75 | 90
- 00002569: 66 | 90
- 000026AA: 74 | EB
В архиве выше есть как и оригинальный файл, так и патченный — STLinkReflashFixed.exe. Для обновления необходимо использовать его.
Подключаем наш ST-Link, убедитесь, что он корректно определился и на него установились драйвера. Запускаем STLinkReflashFixed.exe. Принимает соглашение от SEGGER:
Далее принимаем соглашение от STM:
И мы в главном меню:
- [0] Выход
- [1] Обновить до J-Link
- [2] Обновить прошивку J-Link
- [3] Восстановить ST-Link
Выбираем 1-й пункт и прошивка за считанные секунды должна пройти успешно:
Если необходимо восстановить обратно, то в меню выбираем 3-й пункт и спустя немного времени будет возвращена прошивка ST-Link:
Вот и всё! Удачного программирования! ;)
Примечание:
Рекомендации по изменению байт в утилите и схема ST-Link взяты отсюда.
UPDATE 2017.03.09:
На китайских свистках ST-Link реализованы 2 интерфейса — SWD и SWIM. Обычно нужен только первый, т.к. STM8 вещь довольно-таки в себе и проще уже применять STM32 (мало того, что возможностей больше, так и IDE выбор получше, имхо), поэтому интерфейс SWIM (для STM8) как-то и не нужен. Предлагается незначительная переделка платы, после которой SWIM_RST выход заменяется на TRST, что полезно иногда при залоченом STM32 (не нужно жать на кнопку сброса) или для RTL871x.
Переделка крайне проста и всё показывает одно фото (кликни для увеличения):
Тут отпаиваем R17, одной стороной (ламелькой) подпаиваем к правому паду (ведущему к гребенке, лучше прозвоните на своей плате при аналогичной переделке), а второй вывод (ламельку) одножильным проводом в лаке (можно взять с катушек или трансформаторов, 0,1-0,2мм диаметра) соединяем с выводом 18 (PB0). В гребенке штырь с SWIM_DATA можно выпаять — она уже без надобности, я дополнительно цапонлаком закрасил шелкографию на нижней стороне платы, что бы не путала.
Вот и вся переделка. :) Осталось добавить немного термоусадки и карманный J-Link готов:
UPDATE 2017.07.23:
Патч для STLinkReflash.exe (версия 170628) аналогичный и так же состоит из замены 3х байт. Архив для скачивания — STLinkReflash_170628.zip.
Для прошивки использовать STLinkReflashFixed.exe. Также в архиве сохранён оригинальный файл.
UPDATE 2018.08.13:
Патч для STLinkReflash_170807, присланный анонимным читателем (я не делал fixed версию и не проверял):
- 00002569: 75 | 90
- 0000256A: 70 | 90
- 000026B5: 74 | EB
UPDATE 2019.11.19:
Архив для скачивания STLinkReflashFixed.exe (версия 190812) — STLinkReflash_190812.zip.
Обратная связь
Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях
пишите мне на netdm@mail.ru
Добавить комментарий