Программатор микроконтроллеров из STM32 Discovery.

Одна из предыдущих статей (вот она) была посвящена тому, как прошивать контроллер на отладочной плате STM32 Discovery, но этого же нам мало 😉 Давайте попробуем прошить сторонний микроконтроллер, используя STM32 Discovery в качестве ST-Link программатора. То есть из Discovery мы сделаем программатор микроконтроллеров для других плат. У меня вот, например, лежит отличная отладочная плата Mini STM32 с контроллером STM32F103VET6, его то как раз я и буду прошивать через Discovery.

Что ж, переходим от слов к делу….

Для начала подготовим Discovery для прошивки внешнего микроконтроллера. Для этого надо убрать два джампера:

Отладочная плата STM32 Discovery

Теперь находим SWD разъем на плате, вот он:

SWD разъем на STM32 Discovery

Если расположить плату как на рисунке, то верхний пин является первым, то есть в соответствии с таблицей – пином для питания:

Распиновка SWD на плате STM32 Discovery

Он нам, кстати, не понадобится. Подключать внешний контроллер мы будем тремя проводами – это общий провод (земля), тактовый сигнал SWD (SWD clock) и SWD Data. Осталось понять, где какие пины у микроконтроллера, который мы собираемся прошить. Для этого берем даташит и лезем в распиновку. Там нас интересуют пины SWDIO и SWCLK. Для моего контроллера STM32F103VET6:

SWD на отладочной плате Mini STM32

Вот оно то, что надо – пины PA13, PA14. Осталось только соединить. Подключаем три проводка к разъему SWD на Discovery — второй пин разъема заводим на PA14, четвертый на PA13, ну и землю перекидываем на внешний контроллер. Запитываем наш программируемый контроллер как обычно, STM32Discovery пусть тащит питание от USB. Вот, собственно, и все. Прошиваем точно так же, как мы прошивали контроллер на плате Discovery, об этой статье я уже говорил чуть выше, в самом начале =)

Вот в принципе и все, что мы хотели сделать, получилось как задумывалось ) Это оказалось довольно-таки просто, но, согласитесь, штука полезная. У многих есть STM32 Discovery, так почему же не использовать ее в качестве программатора микроконтроллеров STM32 на других платах, если под рукой нету ничего более подходящего 😉 До скорых встреч, оставайтесь на связи!

Понравилась статья? Поделись с друзьями!

Программатор микроконтроллеров из STM32 Discovery.: 35 комментариев
  1. Лишь только дама появляется в мужском коллективе- профессиональная деятельность начинает плавно отползать на второй план…

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

  3. Уж не знаю что еще и где прочитать… теперь не могу разобраться с выбором источника тактирования контроллера ( внутренная RC цепочка или внешний кварц)
    и каким образом он задается?
    В AVR задавалось отдельно fuse битами а как здесь?

  4. Ок спасибо! …Непосредственно по теме, прошил stm32f050 с первого раза без проблем, но если эти выводы ( в вашем случае PA13, PA14 ) использовать потом в программе возможна ли повторная прошивка?

  5. Здравствуйте! Что не могу найти документацию на разъём SWD . Может есть у кого в p-cade поделитесь пожалуйста.

  6. Люди, помогите с F3discovery
    вынул перемычки — режим ст-линк
    swclk — 2 нога SWD — на 37 ногу STM32F103
    swdio — 4 нога SWD — на 34 ногу STM32F103
    gnd — 3 нога SWD — на 35 ногу stm32f103
    законнектил, но стлинк utillity не видит f103, что я делаю не так?

    • А с питанием на f103 все в порядке? И работает ли вообще ST-LINK, если попробовать f303 прошить?

  7. F303 шьется и распознается через ST-LINK Utility, снимаю перемычки — f103c8t6 не видит — такая беда

  8. подключил питание, но не от swd (там его не обнаружилось), а от F3discovery, nrst,boot0 и 1. Прошивка заработало. Aveal, премного благодарен за оперативные наводки!

  9. Уважаемые коллеги! Столкнулся с проблемой при прошивке miniSTM32 c помощью Discovery (все делал точно так же, как написано выше, но контроллер STM32F103VET6 был не виден. Промучился 2 дня, прозванивал провода, дорожки к ногам 103VET6, все в норме. Проблема оказалась в длине несчастных трех проводов, по которым шьется внешний контроллер — их длина была около 20 см. Как только укоротил до 5 см все пошло как по маслу. Не наступайте на мои грабли.

  10. Алексей спасибо Вам большое! Я 3 дня промаялся соединяя «чистый» STM32f407 с платой Discovery для заливки в него прошивки. По Вашему совету укоротил провода по SWD до 5 см и все сразу заработало! Хотя я уже начинал отчаиваться. Слава богу нашел Ваш пост на этом форуме!

  11. Ребят, объясните мне непонимающему, у STM32VLDISCOVERY есть встроенный ST-LINK, то что он как программатор работает это понятно, но как отладчик его можно использовать? Если да, то непонятно зачем они тогда продают тот же ST-LINK/V2, гораздо дороже, только ради JTAG?

  12. Есть STM32Discovery хочу пользовать её как программатор.
    Насколько я понял, нужно вывести с отладки сигналы SWD_/OI и SWD_CLK + GND
    На самой отладке программатор и целевой МК ещё соединены по RESET целевого МК

    Вопрос: Что мне делать со сбросом контроллера в моей плате? Насколько я помню, у АВР меги сброс при программировании дёргается. У STM нужно вручную сбрасывать во время прошивки? Как вообще идёт процесс прошивки? комбинация boot0-boot1

  13. Ясно. Значит программатор сам целевой микроконтроллер сбросит по интерфейсу?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *