Одна из предыдущих статей (вот она) была посвящена тому, как прошивать контроллер на отладочной плате 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 Возможно такое вообще?