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

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

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

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

Это слайд-шоу требует JavaScript.

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

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

Изначально утилита от 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 готов:

Это слайд-шоу требует JavaScript.

UPDATE 2017.07.23:

Патч для STLinkReflash.exe (версия 170628) аналогичный и так же состоит из замены 3х байт. Архив для скачивания — STLinkReflash_170628.zip.

Для прошивки использовать STLinkReflashFixed.exe. Также в архиве сохранён оригинальный файл.

Реклама

Рубрики: ARM, STM32

Tagged as: , , , ,

12 Comments »

  1. Спасибо огромное за статью! Уже перешил свой ST-Link c STM32F101CBT6 на борту.

    Есть ли «пропатченный» софт (или конкретно JLink.exe), который позволяет полученный программатор использовать для работы с микроконтроллерами, отличными от STM ? Интересует только возможность _слить_/залить прошивку.

    Может существуют альтернативные программы (прошивальщики), которые лишены данного ограничения ?

    Как софт от Segger’а определяет, что нужно наложить ограничение ? Поможет ли смена серийника на полученном программаторе обойти данное ограничение ?

    Нравится

    • Привет!
      вроде бы не должно быть залоченности только под STM32 — я J-Link’ом прошиваю как и STM32, так и RTL8710\RTL8711, а так же АРМы от Миландра (серия 1986). Предполагаю, что дело не в софте Segger’a, но чего то конкретного посоветовать не могу — с таким не столкнулся..

      Нравится

  2. STLinkReflash.exe (версия 161007) отыскать нигде не удалось .
    рабочие ссылки на этот файл и на архивы с ним отсутствуют
    Пожалуйста выложите ее для скачивания…
    В настоящий момент можно скачать версию 161221 она не позволяет обновить прошивку
    в описываемом в статье ST-Link

    Нравится

  3. pvvx как-то давал ссылку на еще один апгрейд для этого девайса
    https://lujji.github.io/blog/stlink-clone-trace/
    не пробовали? я пока только пытаюсь разобраться в этом «программаторском» хозяйстве, но как я понимаю в сеггеровской прошивке JLink поддерживается утилита(пин?) SWO?
    так до конца и не разобрался как это подключить и пользоваться (просто ТХ от diagUART?)
    интереснее конечно было бы получить uart на этой железочке, но для этого очевидно прошивка должна суметь такое отдать.

    Нравится

    • Да, видел эту доработку, но не пробовал,т.к. обычно под рукой есть отдельный USB-UART и удобней его смотреть отдельной программой-терминалом. (дело привычки\вкуса конечно)

      На J-Link тоже есть SWO, с драйверами ставится и утилита JLinkSWOViewer.exe — описание тут https://www.segger.com/j-link-swo-viewer.html
      Предполагаю можно и на клонах это запустить, но не проверял.

      Нравится

  4. Доброго времени суток, форумчане! Встала такая проблема, есть камень ATSAMD10C14 можно ли прошить его через программатор/отладчик тот самый ST-Link?

    Нравится

    • Доброго!
      ST-Link — сомневаюсь, что получится, а вот если прошить в J-Link — должен увидеть. (но уже не раз встречал сообщения, что некоторые клоны, таким способом прошитые в J-Link не подключаются ни к чему, кроме STM АРМов.. в любом случае откатить обратно в ST-Link можно тут же)

      Нравится

      • Спасибо. Увы, даже если прошить отладчик в J-Link, при прошивке камня протестует и требует ST, как вы и сказали. Заказал j-link программатор

        Нравится

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s