Прошивка ST-Link в J-Link

Иногда полезен программатор J-Link, не буду вникать в тонкости и его плюсы\минусы, но если у Вас в наличии дешевый китайский ST-Link — то считайте, что у вас 2 версии программатора по необходимости! Интересно узнать, как это делать на китайских клонах? Читай дальше ;)

Внимание! Материал ниже представлен исключительно в ознакомительных целях, и если Вам необходим J-Link в коммерческих целях, то следует приобрести официальный программатор.

На просторах Ebay или AliExpress по ключевому слову «ST-Link v2» можно найти множество клонов. Практически все они собраны на STM32F103C8T6 , но, судя по всему, можно нарваться и на другой вариант с камнем STM32F101CBT6 как отписались в комментариях. Такой не подходит и лучше узнать у продавца, если хотите купить в закрытом корпусе или не уверены, что стоит на плате у продавца. (поправка! ВОТ ТУТ пишут, что прекрасно обновляются клоны и на этом камне, но USB в STM32F101CBT6 нет по документации, возможны баги\глюки). У меня же в наличии вот такой (также собирал свой собственный — описанный способ прошивки на нем тоже работает):


Есть различные варианты, они будут идентичны этому. Примерная схема этого варианта:


Ну что, приступим! Для работы нам понадобится:

Реклама
 

Изначально утилита от SEGGER не видит китайские клоны и поддерживает только официальные отладочные платы с этим программатором и сами официальные программаторы. Но на форуме esp8266.ru было найдено решение (спасибо pvvx!) — необходим небольшой патч оригинального STLinkReflash.exe и он будет без проблем обновлять и клоны! :)

Патч для STLinkReflash.exe (версия 161007) состоит из замены 3х байт. На всякий случай привожу его тут (адрес: оригинальное значение | новое значение):

  1. 00002568: 75 | 90
  2. 00002569: 66 | 90
  3. 000026AA: 74 | EB

В архиве выше есть как и оригинальный файл, так и патченный — STLinkReflashFixed.exe. Для обновления необходимо использовать его.

Подключаем наш ST-Link, убедитесь, что он корректно определился и на него установились драйвера. Запускаем STLinkReflashFixed.exe. Принимает соглашение от SEGGER:

B14-4.png

Далее принимаем соглашение от STM:

B14-5.png

И мы в главном меню:

B14-6.png

  • [0] Выход
  • [1] Обновить до J-Link
  • [2] Обновить прошивку J-Link
  • [3] Восстановить ST-Link

Выбираем 1-й пункт и прошивка за считанные секунды должна пройти успешно:

B14-7.png

Если необходимо восстановить обратно, то в меню выбираем 3-й пункт и спустя немного времени будет возвращена прошивка ST-Link:

b14-8

Вот и всё! Удачного программирования! ;)

Примечание:
Рекомендации по изменению байт в утилите и схема 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 версию и не проверял):

  1. 00002569: 75 | 90
  2. 0000256A: 70 | 90
  3. 000026B5: 74 | EB

UPDATE 2019.11.19:

Архив для скачивания STLinkReflashFixed.exe (версия 190812) — STLinkReflash_190812.zip.

Добавить комментарий

Обратная связь

Интересуют вопросы реализации алгоритмов, программирования, выбора электроники и прочая информация, постараюсь осветить в отдельных статьях

пишите мне на netdm@mail.ru