Делаем ST-Link V2.1 из китайского ST-Link V2

в 14:48, , рубрики: DIY, diy или сделай сам, st-link, stm32, лайфхак, Лайфхаки для гиков, микроконтроллеры, программирование микроконтроллеров, Электроника для начинающих

Делаем ST-Link V2.1 из китайского ST-Link V2 - 1Привет!

В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1.

Возможно для кого-то это не будет новостью, но особой инфы по данной теме в инете не нашел.

Кому интересно — прошу под кат.

Предисловие

Так уж случилось, что мне надоели лишние провода.

Немного подумав я вспомнил что на палатах Nucleo и Discovery — ST-Link совмещает в себе SWD и VCP (Virtual Com Port).

Первое что пришло в голову — купить самую дешевую из подобных плат, попытаться сдампить прошивку в обход защиты и залить в программатор из китая, либо же развести новую плату.
Однако мне подсказали ссылку на GitHub с уже вытянутым загрузчиком, в итоге получилось то что получилось.

Приступаем к работе

Модификацию можно произвести только на версии софта под Windows, кроссплатформенная версия софта отказывается обновлять девайс!

Есть несколько вариантов модификации, и часть из них нельзя сделать если чип не подходящий (не хватит памяти).

Например, модификацию STM32+MSD+VCP можно сделать только если чип STM32F1xxCBxx, однако у нее есть аналог STM32+Audio, который даст STM32+VCP (в принципе что нам и требуется).

Понадобится:

— Паяльник;
— Мультиметр с прозвонкой;
— ПК с ОС Windows (может получится через Wine, не пробовал);
Архив с нужным софтом и бутлоадером (PASS: QWK2tn+fM.EdjX6z).
— Китайский клон ST-Link V2;
— USB-UART адаптер либо второй ST-Link.

Вскрываем...

Платы и чипы во всех разные

Делаем ST-Link V2.1 из китайского ST-Link V2 - 2
Делаем ST-Link V2.1 из китайского ST-Link V2 - 3
Делаем ST-Link V2.1 из китайского ST-Link V2 - 4

Прошивка

Есть два пути — USB-UART (немного сложнее) либо второй ST-Link.

USB-UART

Делаем ST-Link V2.1 из китайского ST-Link V2 - 5

1) Прозвонкой находим резистор который подключен к BOOT0.
Делаем перемычку от стороны этого резистора которая подключена к BOOT0 к 3.3v.

PA9(TX) может быть подключен к светодиоду или резистору рядом с ним, потому прозваниваем.

Подпаиваем UART на PA9(TX) и PA10(RX).

Я делал это так:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 6

Так же подпаиваем питание.

Прошиваем загрузчик Protected-2-1-Bootloader.bin с помощью STM32 Flash loader demonstrator.

После прошивки отпаиваем перемычку, PA9 и PA10 (PA10 оставляем если хотим вывести SWO).

ST-Link

Делаем ST-Link V2.1 из китайского ST-Link V2 - 7
На платах есть по 4 контакта, в некоторых случаях они уже промаркированы, в противном же случае прозваниваем их относительно PA13(SWDIO) и PA14(SWCLK), подпаиваемся вторым ST-Link.

Делаем ST-Link V2.1 из китайского ST-Link V2 - 8

Так же подпаиваем питание.

Устанавливаем STM32 ST-LINK Utility V4.3 из архива, снимаем защиту от записи и прошиваем загрузчик Protected-2-1-Bootloader.bin.

Для снятия защиты в программе STM32 ST-LINK Utility жмем Target > Option Bytes, переключаем Read Out Protection в Disabled и жмем Apply.

Обновление до ST-Link V2.1

После прошивки подключаем прошитый ST-Link (уже почти V2.1) к ПК.

В программе STM32 ST-LINK Utility V4.3 жмем ST-LINK > Firmware update.

Жмем Device Connect — получаем список возможных модификаций:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 9

Выбираем нужную вам модификацию, в моем случае STM32+MSD+VCP, жмем Yes >>>>.

Ждем пока завершится обновление…

Делаем ST-Link V2.1 из китайского ST-Link V2 - 10

Профит!

Завершающая часть

Так как SWIM и RST после такой модификации не работают — отрезаю их.

Так же отрезаю дублирующие 5V и 3.3V.

Получается 4 свободных пина.

На них подпаиваюсь проводками к чипу:

PA10 -> SWO
PB0 -> NRST
PA3 -> RX
PA2 -> TX

Вывожу все на основной разъем, на оставшиеся свободные пины.

Получилась такая распиновка:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 11

Мой девайс после модификации

Делаем ST-Link V2.1 из китайского ST-Link V2 - 12

Делаем ST-Link V2.1 из китайского ST-Link V2 - 13

Накарябал скальпелем маркировку на корпусе:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 14

Не забываем отмыть плату после пайки!

В итоге, в ПК девайс определяется так:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 15

Делаем ST-Link V2.1 из китайского ST-Link V2 - 16

Я без понятия чему равен объем виртуальной флешки (в данном случае к ST-Link V2.1 был подключен F103C8).

Если на нее закинуть файл прошивки — программатор прошьет чип без программ.

Проверяем VCP:

Делаем ST-Link V2.1 из китайского ST-Link V2 - 17

Спасибо за внимание!

С вопросами обращайтесь в комментарии, чем смогу — помогу.

Автор: User420

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js