42423245
Делаем ST-Link V2.1 из китайского ST-Link V2
Длиннопост!
Приветствую всех!
Заранее прошу прощения за возможную неясность/запутанность текста, мой первый пост.
Чукча не писатель, чукча - радиолюбитель!))
Так же предупреждаю - я не несу ответственность за ваши действия, а так же не призываю к действиям! Все что выделаете - делаете на свой страх и риск!
Update! Статью со значительными изменениями и уточнениями выложил на хабр:
Предыстория...
Так уж случилось, что мне надоели лишние провода.
Немного подумав я вспомнил что на палатах 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
Что ж, вскрываем...
Смотрим маркировку чипа.
В желтом чип 103CB - его можно модифицировать до модификации STM32 + VCP.
В фиолетовом же на первом фото 102С8 - его до нужной модификации модифицировать нельзя, придется менять чип.
На втором фото 103CB.
Мне же повезло, у меня чип 101CB.
Далее есть два пути:
USB-UART (вариант сложнее) либо второй ST-Link V2
Если у вас USB-UART:
1) Прозвонкой находим резистор который подключен к BOOT0.
Аккуратно его выпаиваем. (резистор еще понадобится, не оторвите дорожки!)
А сам BOOT0 этим же резистором подтягиваем к питанию.
Далее паяем комариные письки на контакты PA9(TX) и PA10(RX) :
(Как оказалось, на PA9 подключен светодиод, так что прозваниваем к какой стороне светодиода или резистора рядом он подключен - и подпаиваемся туда, меньше геморроя ;)
К ним подпаиваем 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.1 к ПК
В программе STM32 ST-LINK Utility жмем ST-LINK > Firmware update
Жмем Device Connect - получаем список возможных модификаций:
Выбираем нужную вам модификацию, в моем случае STM32+MSD+VCP и жмем Yes >>>>
Ждем пока завершится обновление...
В итоге получаем сообщение об удачном завершении:
Профит! ;)
Завершающая часть:
Так как SWIM и RST после такой модификации не работают - отрезаю их.
Так же отрезаю дублирующие 5V и 3.3V.
Получается 4 свободных пина.
На них подпаиваюсь проводками к чипу:
PA10 -> SWO
PB0 -> NRST
PA3 -> RX
PA2 -> TX
Вывожу все на основной разъем, на оставшиеся свободные пины.
Получилась такая распиновка:
Мой девайс после модификации:
Накарябал скальпелем маркировку на корпусе:
Не забываем отмыть плату после пайки )
В итоге девайс должен определяться так:
Я без понятия чему равен объем виртуальной флешки (в данном случае к ST-Link V2.1 был подключен 103C8)
Если на нее закинуть файл прошивки - программатор прошьет чип без программ.
Проверяем VCP:
Ну, вроде все )
Спасибо за внимание!
С вопросами обращайтесь в комментарии, чем смогу - помогу.