Одна из предыдущих статей (вот она) была посвящена тому, как прошивать контроллер на отладочной плате STM32VLDiscovery, но этого же нам мало ) Давайте попробуем прошить сторонний микроконтроллер, используя STM32VLDiscovery в качестве ST-Link программатора. То есть из Discovery мы сделаем программатор микроконтроллеров для других плат. У меня вот, например, лежит отличная отладочная плата Mini STM32 с контроллером STM32F103VET6, его то как раз я и буду прошивать. И сразу переходим от слов к делу...
Для начала подготовим Discovery для прошивки внешнего контроллера. Для этого надо убрать два джампера:
Теперь находим SWD разъем на плате, вот он:
Если расположить плату как на рисунке, то верхний пин является первым, то есть в соответствии с таблицей – VDD_TARGET:
Его мы кстати использовать сегодня не будем. Подключать внешний контроллер мы будем тремя проводами – это общий провод (земля), тактовый сигнал SWD (SWD Clock) и SWD Data. Осталось понять, где какие пины у микроконтроллера, который мы собираемся прошить. Для этого берем даташит и лезем в распиновку. Там нас интересуют пины SWDIO и SWCLK. Для моего контроллера STM32F103VET6:
Вот оно то, что надо – пины PA13, PA14. Осталось только соединить! Подключаем три проводка к разъему SWD на Discovery - второй пин разъема заводим на PA14, четвертый на PA13, ну и перекидываем землю на внешний микроконтроллер, который мы собираемся прошивать. Запитываем наш программируемый контроллер как обычно, STM32VLDiscovery пусть использует питание от USB. Вот, собственно, и все. Прошиваем точно так же, как мы прошивали контроллер на плате Discovery, об этой статье я уже говорил чуть выше, в самом начале )
Вот, в принципе, и все, что мы хотели сделать, получилось как задумывалось. Это оказалось довольно-таки просто, но, согласитесь, штука полезная. У многих есть STM32VLDiscovery, так почему же не использовать ее в качестве программатора микроконтроллеров STM32 на других платах. На сегодня это все, до скорых встреч, оставайтесь на связи!
Мда, а что схемы с уже прошитыми внешними контроллерами не выпускаются? или в этом весь смысл - прошить самостоятельно?
Ну да, в этом и смысл, написать свою программу и зашить ее в контроллер.
Она наверно красивая блондяшка )))))
Не знаю) У нее кстати прикольный сайт)
Как она вообще на этом сайте оказалась???? :-))))
Лишь только дама появляется в мужском коллективе- профессиональная деятельность начинает плавно отползать на второй план...
Интересно, попробую. набор стоит 18 бакинских. и его оказывается можно использовать для прошивки микросхем. еще если слабать адаптер на платке с зажимом, то ваще песня получится. Спасибо автору за подсказку.
Уж не знаю что еще и где прочитать... теперь не могу разобраться с выбором источника тактирования контроллера ( внутренная RC цепочка или внешний кварц)
и каким образом он задается?
В AVR задавалось отдельно fuse битами а как здесь?
В SPL посмотри в файлах с функциями RCC, там все есть)
Ок спасибо! ...Непосредственно по теме, прошил stm32f050 с первого раза без проблем, но если эти выводы ( в вашем случае PA13, PA14 ) использовать потом в программе возможна ли повторная прошивка?
Да, думаю не возникнет проблем
Здравствуйте! Что не могу найти документацию на разъём SWD . Может есть у кого в p-cade поделитесь пожалуйста.
Ну вот вроде нашел http://www.brownbear.ru/components/swd1-4.html посмотрите он немного не такой как на фото.
По ссылке дип-переключатель. А причем тут SWD?)
Люди, помогите с F3discovery
вынул перемычки - режим ст-линк
swclk - 2 нога SWD - на 37 ногу STM32F103
swdio - 4 нога SWD - на 34 ногу STM32F103
gnd - 3 нога SWD - на 35 ногу stm32f103
законнектил, но стлинк utillity не видит f103, что я делаю не так?
А какой именно f103 и в каком корпусе?
lqfp48
lqfp48
сорри за новую ветку в комментах
А с питанием на f103 все в порядке? И работает ли вообще ST-LINK, если попробовать f303 прошить?
F303 шьется и распознается через ST-LINK Utility, снимаю перемычки - f103c8t6 не видит - такая беда
Скорее всего что-то с питанием целевого контроллера.
3 В надо подавать? земля подсоединена
Ну надо полностью f103 подключить. Питание на все Vdd выводы, землю на все Vss итд.
ок буду пробовать
подключил питание, но не от swd (там его не обнаружилось), а от F3discovery, nrst,boot0 и 1. Прошивка заработало. Aveal, премного благодарен за оперативные наводки!
=)
Уважаемые коллеги! Столкнулся с проблемой при прошивке miniSTM32 c помощью Discovery (все делал точно так же, как написано выше, но контроллер STM32F103VET6 был не виден. Промучился 2 дня, прозванивал провода, дорожки к ногам 103VET6, все в норме. Проблема оказалась в длине несчастных трех проводов, по которым шьется внешний контроллер - их длина была около 20 см. Как только укоротил до 5 см все пошло как по маслу. Не наступайте на мои грабли.
Алексей спасибо Вам большое! Я 3 дня промаялся соединяя "чистый" STM32f407 с платой Discovery для заливки в него прошивки. По Вашему совету укоротил провода по SWD до 5 см и все сразу заработало! Хотя я уже начинал отчаиваться. Слава богу нашел Ваш пост на этом форуме!
Ребят, объясните мне непонимающему, у STM32VLDISCOVERY есть встроенный ST-LINK, то что он как программатор работает это понятно, но как отладчик его можно использовать? Если да, то непонятно зачем они тогда продают тот же ST-LINK/V2, гораздо дороже, только ради JTAG?
поправка 🙂
" нужую продукцию" на "чужую продукцию"
а можно ли этим СТ-линком прошивать контроллеры других производителей?
Есть STM32Discovery хочу пользовать её как программатор.
Насколько я понял, нужно вывести с отладки сигналы SWD_/OI и SWD_CLK + GND
На самой отладке программатор и целевой МК ещё соединены по RESET целевого МК
Вопрос: Что мне делать со сбросом контроллера в моей плате? Насколько я помню, у АВР меги сброс при программировании дёргается. У STM нужно вручную сбрасывать во время прошивки? Как вообще идёт процесс прошивки? комбинация boot0-boot1
Программатор просто тремя проводами.
BOOT0 через 510 Ом на землю.
Ясно. Значит программатор сам целевой микроконтроллер сбросит по интерфейсу?
посмеялся почитав комментарии =)
Как сделать, из этого стенда программатор Nand K9GAG08U0E Возможно такое вообще?
Добрый день, ситуация: на плате Discavery спалили stm32f103 (загрузчик) камень перепаяли от работающего донора. Пытаюсь перепрошить по стандартной схеме, BOOT 0 подтянул к +, PA14 (SWCLK) и PA13 (SWDIO) к ST-Link V2, питание по родному USB, оболочку использую ST-Link Utility. Программатор она видит, а вот прошиваемый проц нет, Can not connect to target? Где ошибка??
Приветствую, первая мысль и основная гипотеза - непропай.
меня еще смущает качество перепайки с донора на дискавери(((
Да, если контроллер-донор заведомо рабочий, то скорее всего в этом направлении надо копать.
Кстати - контроллер с такой же платы перепаян?
нет, из другого устройства.
Но прошивка там соответствующая?
На всякий случай уточняю ) Хотя учитывая, что система видит корректно ST-Link, с этим все в порядке.
нет, это был карманный цифровой осциллограф, рабочий, как мне коллеги объяснили, из него они и позаимствовали камень)))
Так чтобы он как программатор работал, там должна быть прошивка определенная.
вот я и хочу через ST-Link v2 прошить его, но камень не виден((
Так, надо разобраться) Верхний сгорел, отмеченный галкой?
верно
И его не получается прошить внешним ST-Link'ом? А у него там выведены куда-то PA13, PA14, его собственные?
На оборотной стороне платы есть перемычки SB4, SB8 если их запаять то указанные Вами выводы подключаются к разьемуST-Link , естественно, с удаленными перемычками, на пины 2 и 4 разъёма, соответственно. Становятся SWDIO и SWCLK
Пробежался по схеме, получается, что надо замкнуть SB6, SB8, SB10 и ST-Link подключать к CN3 (не к CN2), должно функционировать, разве что SB5, SB7, SB9 выпаять.
я именно к CN3 и подключаюсь. Это разъем программатора ST-Link, если перемычки убрать и пропаять SB4 и SB8 как я писал выше,а также перемычку подпаять к плюсу питания то есть подтянуть BOOT0 , то как бы можно прошивать новый камень, но видимо я что то не учитываю, или камень все таки поджарили при монтаже
CN3 - тот, куда джамперы ставятся/убираются. Я логику до конца не уловил, красные снимаем, зеленые ставим, получаем доступ к нужным сигналам:
да, именно так я и сделал, в моем случае вместо SB 5,7,9 стоят резисторы, их необходимо убрать??? мы же пины разъёма CN 2(SWD) не используем
Там получается, что через SB5/SB9 сигналы с CN3 идут также на "основной" контроллер платы, могут из-за этого проблемы быть.
ДОброго ВС. Вернулся к проблеме. Спасибо за участие, мы с Вами смотрели разные версии схем, у меня SB 2,4,6,8, у Вас SB4,6,8,10. Разобрался, подключился!!!!!! но сейчас выдает ошибку Error: Data read failed
Приветствую, по поводу версий - это многое объясняет) Если это чип из серийного устройства, там может быть защита от чтения установлена.
пайку проверил под микроскопом и прозвонкой, там все норм
Добрый день, продолжаю ковыряться с убитой платой Дискавери, пришли наконец то камни, перепаял абсолютно новый stm 32f103C6T6A, до этого стоял f103CBT6. Программатор через st-link видит его, флеш-память стирает. пытаюсь залить прошивку, не хватает памяти Opereation exceeds memory limit. Хотя характеристики камней похожи. В чем может быть проблема??
Приветствую, памяти не хватает, у C6 - 32K, а у CB - 128K.