STM32 Использование встроенного загрузчика. Автономный программатор. Обновление прошивки.

preview_player
Показать описание
В ролике рассказывается о том, как можно загрузить прошивку в микроконтроллер STM без использования программатора. На примере показана работа встроенного загрузчика. Описаны методы работы DFU.

------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------

00:00 - Для чего следует использовать DFU
05:09 - Демонстрация работы и программирования
08:44 - Предупреждение
09:45 - Источники информации
16:20 - Строим схему
Рекомендации по теме
Комментарии
Автор

На прошлой работе ребята делали такую штуку - на стм103 собрали автономный программатор : на нем была карта сд ( помещали новую прошивку) и юарт. Устройство ( которое требовало новую прошивку) имело разъем ( питание, юарт и бут) для подключения такого переносного программатора и по нажатии кнопки происходил процесс заливки . Это было очень удобно, потому как устройством являлся турникетом . Этот рассказ для того чтобы дополнить как минимум одну идею на эту тему. Удачи в проектах !

Avtovet
Автор

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

ruslangabitov
Автор

Владимир спасибо за Ваши видео! Благодаря Вашим видео купил для сына девятиклассника stm, дисплей и Stlink. Хочу чтобы он сделал проект в школе по информатике. Пока просто вывели картинку на дисплей, в планах подключить датчик температуры. Самое главное что получилось самое начало.

РемонТПлат-еы
Автор

Спасибо, "отремонтировал" пульт управления квадрокоптера Taranis, ваш видео мне помогло в этом разобратся.) Спасибо!

vladimirp.
Автор

Как всегда отличный контент! Не коротко, не растянуто, - ровно как надо! Спасибо большое за ваш труд! Ваш канал в мире СТМ уже как канал Виктора Леонтьева в мире токарки и инструменталки.

BB-tibf
Автор

Спасибо за идею. Пару раз о портативном загрузчике думал, но из-за отсутствия острой необходимости не копал в этом направление. Теперь буду знать, от куда можно сразу начинать.
Из своего опыта:
Для прошивки в stm32 с компа использовал консольную STM32 ST-LINK Utility, для которой использовал свой простой графический интерфейс. Прошивал в мк основную прошивку, 1-2 загрузчика (приходилось изобретать что-то эдакое, из-за ограничений f0 серии) и два набора данных.
Так же недавно открыл, что с некоторых моделей сотовых, с хорошей поддержкой USB Host можно прошивать stm, usb-uart терминал использовать и ещё много чего делать. Наверно сделаю у себя заметку на сайте ближайщее время по этому опыту.

AlexEXEvideo
Автор

Спасибо, Владимир. Как всегда что то новенькое и интересненькое. Успехов в творчестве!

danilv.l.
Автор

чудесно
замечательно
полезный ликбез
спасибо

Sergey_Evdokimenko
Автор

Спасибо очень приятно слушать и учится от вас 👍

gaynoskov
Автор

Здравствуйте Владимир!
Большое спасибо Вам за ваши видео, смотрю всегда с большим удовольствием :)
На тему видео- встроенный загрузчик имеет свои минусы, больше всего смущает теребление BOOT0. Использование отладочного интерфейса думаю будет более удобным вариантом для программатора как такового, плюсы очевидны- можно делать с МК все что душе угодно, да и очень универсально выходит- решение для любых ARM, а не только для чипов от ST.
Был у меня один интересный проект самодельного отладчика, где применялась связка МК+ПЛИС, в самой ПЛИС реализовывались интерфейсы JTAG и SWD (описание протоколов, регистров отладочного модуля- все есть в свободном доступе), а МК подключался к ПЛИС по SPI и реализовывал саму логику работы с МК (чтение/запись регистров, остановка/запуск ядра итд). Подводные камни имеются, но их не так много, и реализация работы с МК по отладочному интерфейсу не является какой либо проблемой. Принцип работы отладки довольно простой- в отладочном модуле есть несколько регистров, один из них отвечает за адрес, другой за данные (а MIPS например для доступа используются инжектированные инструкции, что не удобно). Итого- пишем в один регистр адрес регистра МК к которому хотим получить доступ (например регистры флешки), а через другой регистр читаем/пишем данные (настраиваем флешку, стираем, разрешаем запись, пишем данные). А если взять во внимание что адреса прописаны в CMSIS, можно брать готовые названия регистров, и ничего не писать вручную :) Ну или реализовать загрузку флешлодела в RAM, и последующей прошивкой через него, как это тот же ST-LINK делает.
По сути- вот и готовый программатор уже. От ПЛИС можно избавиться, реализовав интерфейс программно (в моем случаи ПЛИС была использована потому что не люблю программную реализацию интерфейсов), добавляем СД карту, дисплейчик, и можно шить любой МК независимо от производителя без использования компьютера или телефона.
В общем, есть просторы для творчества :)

Energy
Автор

Тоже делал подобный вариант и stm32f103 в качестве программатора. Однако из-за специфики работы от него отказался. А сейчас использую raspbery pi в качестве программатора.

Причина в том, что разные проекты реализованы на абсолютно разных контроллерах (avr, pic, stm, esp и прочее) И гораздо удобней использовать малинку с 3" дисплеем и 3 кнопками.
Программу прошивки постарался максимально оптимизировать для того, чтобы меньше клацать кнопками.... На SD кидаю zip архив, с некоторым файлом манифеста, описывающим плату в которую шью... А дальше запускаются распознавание устройства, которое подтверждает наличие на линиях устройства подходящего к манифесту.... Ну и если все ок, тогда шьем.

Сама структура чуть сложнее... Но монтажникам живется много легче за счет однообразия процесс вне зависимости от контроллера к которому их отправили.

DmitroVialkov
Автор

Собрался я пилить прошивку через WebUSB. Очень удобно для консьюмерской электроники.

nangelo
Автор

Гениально!!!
Извините что меньше пяти слов... А, нет, всё нормально)))

ALCohol-quib
Автор

Отлично. Я бы предложил подумать в сторону блутуса и проги на компе/телефоне. Тогда заказчику можно высылать обновленный шифрованный кекс прям электронкой.

serjkp
Автор

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

Сигнал boot0 можно через транзистор повесить параллельно любой пользовательской кнопке,
итого если ее нажимать перед подачей питания устройство перейдет в загрузку, если не нажать,
то далее кнопка работает как обычно через свой gpio,
так как то что далее происходит на boot0 после запуска процессору уже пофиг.

Можно доработать таким способом даже готовые устройства добавив всего пару деталек "навесом"
прямо на пины вместо перемычки для boot0 которую часто делают на платах.

Проверенно не раз, все отлично работает много лет.

Ниже в сообщении кусок схемы с таким способом.

cab
Автор

Спасибо огромное. Целый вечер провел в поисках удобного бутлоадера для загрузки прошивки в STM. А тут оказывается он в BOOT0 через UART может прошиваться.
Жаль, что USB-DFU отсутствует в младших моделях типа F103. Если в прошивке его делать, то прилично и того небольшой памяти отжирает.

GennPen
Автор

Очень и очень полезно! А скрин вообще улетный! Я, даже пытался разглядеть сходство. Ну вот чтобы с нами было, если бы мы код не писали?))

personamems
Автор

Было бы интересно посмотреть как шить через USB

expertkis
Автор

Да ладно. В атмеловских ARM-ах тоже есть встроенный бутлодырь, и софтинка аналогичная ST-шной. И тоже называется DFU ! О чудо !!!
Зы: Давно уже не игрался с атмелами. Крайний был еще ATSAM7S256/128, и там это было. Да-да... :) И это еще не кортексы были.

alexandrijchuck
Автор

я до последнего времени не пользовался программатором :-) всегда dfu пользовал :-)

vitgo