42423245

На Пикабу
поставил 7 плюсов и 21 минус
217 рейтинг 2 подписчика 7 подписок 2 поста 1 в горячем

Баг с прокруткой поста

Дтп на ровном месте. Новый удар

В ленте все ок:

Баг с прокруткой поста Приложение Пикабу, Баг на Пикабу, Длиннопост

При открытии комментариев появляется пропуск:

Баг с прокруткой поста Приложение Пикабу, Баг на Пикабу, Длиннопост
Баг с прокруткой поста Приложение Пикабу, Баг на Пикабу, Длиннопост
Показать полностью 3

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

Длиннопост!

Приветствую всех!

Заранее прошу прощения за возможную неясность/запутанность текста, мой первый пост.

Чукча не писатель, чукча - радиолюбитель!))
Так же предупреждаю - я не несу ответственность за ваши действия, а так же не призываю к действиям! Все что выделаете - делаете на свой страх и риск!


Update! Статью со значительными изменениями и уточнениями выложил на хабр:

https://habr.com/ru/post/442290/

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

Предыстория...

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

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

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

Однако стоимость в 20$ за ненужный кусок текстолита, при стоимости китайского варианта в 3$ - лишние расходы.

Благо мне подсказали ссылку на GitHub с уже вытянутым загрузчиком )


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

Как оказалось, для STM32+CVP не важно какой чип, C8 или CB.

Если у вас чип C8 то при обновлении указывайте модификацию STM32+Audio.

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

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

На пример, следующие модификации можно сделать если чип STM32F1xxCBxx:

STM32 + VCP

STM8 + VCP

STM32 + STM8
Only STM32
Only STM8
Но если чип STM32F1xxC8xx, то только следующие:

STM8 + VCP

STM32 + STM8

Only STM32

Only STM8
По этому для модификации STM32 + VCP вместе с программатором покупаем чип STM32F1xxCBxx.

После модификации до STM32 + VCP программатор теряет возможность прошивать STM8!

В данном посте я делаю модификацию STM32 + VCP.


Нам понадобится:

0) Руки из правильного места ;)

1) Немного знаний

2) Паяльник
3) Мультиметр с прозвонкой

4) ПК с ОС Windows

5) Китайский клон ST-Link V2

6) Чип STM32F1xxCBxx (если программатор уже у вас в руках, и чип подходящий - то дополнительный чип покупать не обязательно)

7) USB-UART адаптер либо второй ST-Link V2

Что ж, вскрываем...

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост
Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост
Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

Смотрим маркировку чипа.
В желтом чип 103CB - его можно модифицировать до модификации STM32 + VCP.
В фиолетовом же на первом фото 102С8 - его до нужной модификации модифицировать нельзя, придется менять чип.
На втором фото 103CB.
Мне же повезло, у меня чип 101CB.
Далее есть два пути:
USB-UART (вариант сложнее) либо второй ST-Link V2

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост


Если у вас USB-UART:


1) Прозвонкой находим резистор который подключен к BOOT0.
Аккуратно его выпаиваем. (резистор еще понадобится, не оторвите дорожки!)
А сам BOOT0 этим же резистором подтягиваем к питанию.
Далее паяем комариные письки на контакты PA9(TX) и PA10(RX) :
(Как оказалось, на PA9 подключен светодиод, так что прозваниваем к какой стороне светодиода или резистора рядом он подключен - и подпаиваемся туда, меньше геморроя ;)

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

К ним подпаиваем USB-UART, а так же не забываем подпаять к нему же питание и землю.
Качаем загрузчик Protected-2-1-Bootloader.bin
Прошиваем с помощью STM32 Flash loader demonstrator
Дабы не удлинять пост еще больше, не буду расписывать работу данной утилитой, мануалов в сети полно.
На пример мануал от товарища stD

После прошивки отпаиваем PA9 иPA10, PA10 оставляем если хотим вывести пин SWO


Если у вас ST-Link V2:

На платах есть по 4 контакта, в некоторых случаях они уже промаркированы, в противном же случае прозваниваем их относительно PA13(SWDIO) и PA14(SWCLK), подпаиваемся вторым ST-Link V2, не забываем подпаять к нему же питание и землю.
Прошиваем с помощью STM32 ST-LINK Utility
Дабы не удлинять пост еще больше, не буду расписывать прошивку данной утилитой, мануалов в сети полно.
Единственное скажу что скорее всего понадобится снять защиту, иначе не прошьется.
Для этого в программе STM32 ST-LINK Utility жмем Target > Option Bytes, переключаемRead Out Protection в Disabled и жмем Apply

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост


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


После прошивки подключаем прошитый ST-Link уже почти V2.1 к ПК
В программе STM32 ST-LINK Utility жмем ST-LINK > Firmware update
Жмем Device Connect - получаем список возможных модификаций:

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

Выбираем нужную вам модификацию, в моем случае STM32+MSD+VCP и жмем Yes >>>>
Ждем пока завершится обновление...
В итоге получаем сообщение об удачном завершении:

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

Профит! ;)

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

Так как SWIM и RST после такой модификации не работают - отрезаю их.
Так же отрезаю дублирующие 5V и 3.3V.
Получается 4 свободных пина.
На них подпаиваюсь проводками к чипу:
PA10 -> SWO
PB0 -> NRST
PA3 -> RX
PA2 -> TX

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

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

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

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост
Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

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

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

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

В итоге девайс должен определяться так:

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост
Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

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

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

Проверяем VCP:

Делаем ST-Link V2.1 из китайского ST-Link V2 Stm32, St-link, Длиннопост

Ну, вроде все )


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

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

Показать полностью 16
Отличная работа, все прочитано!