Тёмный

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

Vladimir Medintsev
Подписаться 36 тыс.
Просмотров 18 тыс.
50% 1

В ролике рассказывается о том, как можно загрузить прошивку в микроконтроллер STM без использования программатора. На примере показана работа встроенного загрузчика. Описаны методы работы DFU.
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на RU-vid - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------
00:00 - Для чего следует использовать DFU
05:09 - Демонстрация работы и программирования
08:44 - Предупреждение
09:45 - Источники информации
16:20 - Строим схему

Наука

Опубликовано:

 

29 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 262   
@Nidvoraich
@Nidvoraich 3 года назад
Очень хорошая манера подачи! Сначала обрисована проблема, а уже потом метод её решения. Так смотреть в сто раз интереснее. Спасибо!
@Avtovet
@Avtovet 3 года назад
На прошлой работе ребята делали такую штуку - на стм103 собрали автономный программатор : на нем была карта сд ( помещали новую прошивку) и юарт. Устройство ( которое требовало новую прошивку) имело разъем ( питание,юарт и бут) для подключения такого переносного программатора и по нажатии кнопки происходил процесс заливки . Это было очень удобно ,потому как устройством являлся турникетом . Этот рассказ для того чтобы дополнить как минимум одну идею на эту тему. Удачи в проектах !
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Спасибо.
@MrLedball
@MrLedball 3 года назад
Вроде тоже самое в видео, только без карты...
@vladimirlevchenko1470
@vladimirlevchenko1470 3 года назад
Надо переварить USB OTG
@pavelboboshkin3898
@pavelboboshkin3898 3 года назад
@@vladimirlevchenko1470 , недавно разобрался в USB OTG. Всё сдвинулось с мёртвой точки после того, как нашел информацию по ошибке в библиотеке Куба для stm32f105/107: community.st.com/s/question/0D50X0000B7YwPESQ0/-bug-found-new-firmware-version-18-introduced-a-sort-of-bug-in-usb-host-enumeration-tested-with-stm32f105 плюс пример ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-DuxySazq3AY.html
@user-jm1cp3bm3c
@user-jm1cp3bm3c 3 года назад
Добрый день, если я по этой статье www.count-zero.ru/2017/bluepill/ заливаю загрузчик по usb, а потом через андроид приложение с телефона Zflasher stm32 прошиваю через dfu загрузчик, вопрос стереться ли мои бутлоадер и будет ли потом работать?
@ruslangabitov5202
@ruslangabitov5202 3 года назад
Спасибо большое, Владимир. Прекрасный материал, представленный простым языком. Очень полезно.
@danilv.l.2501
@danilv.l.2501 3 года назад
Спасибо, Владимир. Как всегда что то новенькое и интересненькое. Успехов в творчестве!
@gaynoskov8736
@gaynoskov8736 3 года назад
Спасибо очень приятно слушать и учится от вас 👍
@user-nr8nf2nn2s
@user-nr8nf2nn2s 3 года назад
Владимир спасибо за Ваши видео! Благодаря Вашим видео купил для сына девятиклассника stm, дисплей и Stlink. Хочу чтобы он сделал проект в школе по информатике. Пока просто вывели картинку на дисплей, в планах подключить датчик температуры. Самое главное что получилось самое начало.
@user-oi1zl6de8i
@user-oi1zl6de8i 3 года назад
Спасибо, Владимир. Всегда интересно.
@Sergey_Evdokimenko
@Sergey_Evdokimenko 3 года назад
чудесно замечательно полезный ликбез спасибо
@vladimirp.68
@vladimirp.68 3 года назад
Спасибо, "отремонтировал" пульт управления квадрокоптера Taranis, ваш видео мне помогло в этом разобратся.) Спасибо!
@Energy1236
@Energy1236 3 года назад
Здравствуйте Владимир! Большое спасибо Вам за ваши видео, смотрю всегда с большим удовольствием :) На тему видео- встроенный загрузчик имеет свои минусы, больше всего смущает теребление BOOT0. Использование отладочного интерфейса думаю будет более удобным вариантом для программатора как такового, плюсы очевидны- можно делать с МК все что душе угодно, да и очень универсально выходит- решение для любых ARM, а не только для чипов от ST. Был у меня один интересный проект самодельного отладчика, где применялась связка МК+ПЛИС, в самой ПЛИС реализовывались интерфейсы JTAG и SWD (описание протоколов, регистров отладочного модуля- все есть в свободном доступе), а МК подключался к ПЛИС по SPI и реализовывал саму логику работы с МК (чтение/запись регистров, остановка/запуск ядра итд). Подводные камни имеются, но их не так много, и реализация работы с МК по отладочному интерфейсу не является какой либо проблемой. Принцип работы отладки довольно простой- в отладочном модуле есть несколько регистров, один из них отвечает за адрес, другой за данные (а MIPS например для доступа используются инжектированные инструкции, что не удобно). Итого- пишем в один регистр адрес регистра МК к которому хотим получить доступ (например регистры флешки), а через другой регистр читаем/пишем данные (настраиваем флешку, стираем, разрешаем запись, пишем данные). А если взять во внимание что адреса прописаны в CMSIS, можно брать готовые названия регистров, и ничего не писать вручную :) Ну или реализовать загрузку флешлодела в RAM, и последующей прошивкой через него, как это тот же ST-LINK делает. По сути- вот и готовый программатор уже. От ПЛИС можно избавиться, реализовав интерфейс программно (в моем случаи ПЛИС была использована потому что не люблю программную реализацию интерфейсов), добавляем СД карту, дисплейчик, и можно шить любой МК независимо от производителя без использования компьютера или телефона. В общем, есть просторы для творчества :)
@BB-ti9bf
@BB-ti9bf 3 года назад
Как всегда отличный контент! Не коротко, не растянуто, - ровно как надо! Спасибо большое за ваш труд! Ваш канал в мире СТМ уже как канал Виктора Леонтьева в мире токарки и инструменталки.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Большое спасибо.
@vladimirlevchenko1470
@vladimirlevchenko1470 3 года назад
B B , ВЛ уважаемый человек , не зазорно упомянуть и ДМ
@BB-ti9bf
@BB-ti9bf 3 года назад
@@vladimirlevchenko1470 да много кого, ВЛ как именно учитель по теории, ДМ хороший практик. Некоторые тут пристегивают фрика негоду, (не к ночи будет помянут).
@vladimirlevchenko1470
@vladimirlevchenko1470 3 года назад
B B , ну коли так добавим igorkawa
@personamems
@personamems 3 года назад
Очень и очень полезно! А скрин вообще улетный! Я, даже пытался разглядеть сходство. Ну вот чтобы с нами было, если бы мы код не писали?))
@AlexEXEvideo
@AlexEXEvideo 3 года назад
Спасибо за идею. Пару раз о портативном загрузчике думал, но из-за отсутствия острой необходимости не копал в этом направление. Теперь буду знать, от куда можно сразу начинать. Из своего опыта: Для прошивки в stm32 с компа использовал консольную STM32 ST-LINK Utility, для которой использовал свой простой графический интерфейс. Прошивал в мк основную прошивку, 1-2 загрузчика (приходилось изобретать что-то эдакое, из-за ограничений f0 серии) и два набора данных. Так же недавно открыл, что с некоторых моделей сотовых, с хорошей поддержкой USB Host можно прошивать stm, usb-uart терминал использовать и ещё много чего делать. Наверно сделаю у себя заметку на сайте ближайщее время по этому опыту.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
С удовольствием все почитаем.
@slavik5375
@slavik5375 3 года назад
Спасибо за видео. Прям просвещаюсь)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да всегда пожалуйста! Делайте репост в тематических группах, социальных сетях и на различных сайтах. Этим вы очень поможете каналу.
@slavik5375
@slavik5375 3 года назад
а готовое устройство будет?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да, готовое устройство будет.
@slavik5375
@slavik5375 3 года назад
@@VladimirMedintsev с нетерпением жду-с.
@slavik5375
@slavik5375 3 года назад
@@VladimirMedintsev извиняюсь за вопрос. А не скажите, что можно почитать, или посмотреть, чтобы разбираться в такой работе(из этого и других видел), как вы? База у меня есть, и очень даже не плохая(т.е ТОЭ, электронику, и программирования Си/С++ я знаю), но вот вопросы по разработки плат, и программирование МК у меня еще не освоены, должным образом
@GennPen
@GennPen 3 года назад
Спасибо огромное. Целый вечер провел в поисках удобного бутлоадера для загрузки прошивки в STM. А тут оказывается он в BOOT0 через UART может прошиваться. Жаль, что USB-DFU отсутствует в младших моделях типа F103. Если в прошивке его делать, то прилично и того небольшой памяти отжирает.
@cab674
@cab674 3 года назад
Спасибо за интересные и полезные темы! Хоть и на хорошо знакомую лично мне тему иногда, всегда с интересом жду новые видео. Сигнал boot0 можно через транзистор повесить параллельно любой пользовательской кнопке, итого если ее нажимать перед подачей питания устройство перейдет в загрузку, если не нажать, то далее кнопка работает как обычно через свой gpio, так как то что далее происходит на boot0 после запуска процессору уже пофиг. Можно доработать таким способом даже готовые устройства добавив всего пару деталек "навесом" прямо на пины вместо перемычки для boot0 которую часто делают на платах. Проверенно не раз, все отлично работает много лет. Ниже в сообщении кусок схемы с таким способом.
@cab674
@cab674 3 года назад
pasteboard.co/Jrg8SrX.png это часть схемы от блока питания koyodza . com, идея с boot0 в свое время была моя, автору понравилось. Этот же способ входа в загрузчик можно встретить на многих дешевых китайских телефонах, там точно так же через транзисторы берется сигнал для boot с кнопок громкости которые нужно зажимать при включении.
@ALCohol-qu7ib
@ALCohol-qu7ib 3 года назад
Гениально!!! Извините что меньше пяти слов... А, нет, всё нормально)))
@expertkis
@expertkis 3 года назад
Было бы интересно посмотреть как шить через USB
@MikhailGoncharov-tl4cr
@MikhailGoncharov-tl4cr Месяц назад
я таких мыслей придерживаюсь аналогично. но что в голову приходит это написать свой драйвер под операционную ситему с API. а так я к тому что и я верю что USB напрямую возможно подключить к микроконтроллеру. другое дело что нужно написать свой АПИ и драйвер
@nangelo0
@nangelo0 3 года назад
Собрался я пилить прошивку через WebUSB. Очень удобно для консьюмерской электроники.
@vitgo
@vitgo 3 года назад
я до последнего времени не пользовался программатором :-) всегда dfu пользовал :-)
@SpyCorp1313
@SpyCorp1313 3 года назад
Пришел палец вверх нажал. Тееерь можно посмотреть.
@SpyCorp1313
@SpyCorp1313 3 года назад
В недалёком прошлом через uart и dfu ,только и приходилось прошиваться. St-link за копейки от китайцев ещё не было. Позже правда китайский j-link появился. Но первое знакомство с stm было именно с dfu. Спасибо за ваши видео.
@serjkp
@serjkp 3 года назад
Отлично. Я бы предложил подумать в сторону блутуса и проги на компе/телефоне. Тогда заказчику можно высылать обновленный шифрованный кекс прям электронкой.
@ThunderBark
@ThunderBark 3 года назад
То есть есть блютуз модуль китайский, который по uart все отсылает пакеты. Можно ли было бы, в теории, подключиться с компьютера к ком-порту блютуза и по той же программке от ст отправить все это?)
@serjkp
@serjkp 3 года назад
@@ThunderBark конечно, осталось только научить кого-то переключать сброс и бут сигналы
@serjkp
@serjkp 3 года назад
Подумал еще чуточку. Не, лучше вместо блутуса взять ЕСП8266 - у нее памяти дофига, сможет по веб-интерфейсу принять всю прошивку и спокойно перешить стмку. И рулить ресетом и бутом она также сможет самостоятельно. Дешевле вряд ли можно сделать.
@Michael_Kaa
@Michael_Kaa 3 года назад
@@serjkp Сброс командой по uart програмно, boot на ножку rts uart`а.
@serjkp
@serjkp 3 года назад
@@Michael_Kaa а как это реализовать? спаренный блутус прозрачен, поэтому придется ставить на слейве мелкий камень для управления, что рушит идею минимализации.
@Michael_Kaa
@Michael_Kaa 3 года назад
Есть возможность управления ножкой Boot от ножки RTS преобразователя USB-UART, очень удобно. Прошивка через UART часто спасала после куба с отключенным SWD.
@olehdenysov8699
@olehdenysov8699 3 года назад
Спасибо за видео! Сам конечно использую ардуино в своих проектах (пока учусь программированию микроконтролера в целом). В общем по поводу ардуино даже идея одна появилась. На ардуино, бутлоадер установлен, можно ведь испозовать ESP в качестве програматора для микроконтролера используя линии TX, RX? Правда сразу соглашуюсь что громоздкость платы увеличивается но за счет ESP получается передать данные через интернет. Таким образом имеем возможность прошивать микроконтролер где он не доступен. Или это только в теории?
@antonvasyura3791
@antonvasyura3791 7 месяцев назад
Спасибо за видео. А в чем преимущество рассмотренного метода по сравнению с DFU через USB? Судя по Datasheets и отладочной плате он там точно поддерживается.
@valeriyvalentyn8933
@valeriyvalentyn8933 3 года назад
Здравствуйте Владимир. Попались ваши видео и сразу же подписался, смотрю с удовольствием. У меня есть вопрос, но не по отладочным платам и программированию. Есть реальный контроллер зарядки АКБ 36В, но вышедший из строя. Насколько я понимаю и разбираюсь нашел неисправности, но из зи отсутствия информации так и не был востановлен. Клиенту был предложен простой контроллер с балансировкой. Вопрос как бы решен, но плата осталась у меня и выполнена она как раз на STM32. Доступ к МК нашёл только к РА9, РА10, как их подключать к USB переходнику?. ВООТ сидит на земле(решаемо). Но самое трудное в востановлении оказалось найти ИС токового измерителя, нигде не могу найти ничего похожего. Чип 2.8х3.2мм 8 ног 4 из которых сидят на измеряемой шине остальные стоят в управлении заряд/разряд, шина не разрезана, видимо ХАЛЛ сенсор. Может что то похожее попадалось. Буду рад любому ответу. Заранее спасибо
@user-ow5vt9gp7r
@user-ow5vt9gp7r 3 года назад
Интересная тема, пойду читать про CANFD, как шить через него... Недавно возникла задача оперативно прошить примерно 80 изделий, в каждом по 2 микроконтроллера F4 серии. Решил проблему, использовав интерфейс командной строки st-link utilities - собрал .bat файл, вывел эхо и исполнитель только тыкал enter и перетыкал шнурок на разъемы SWD. Это к слову, вдруг кому пригодится :)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да, про это даже видео на канале было. Про пакетную заливку.
@DmitroVialkov
@DmitroVialkov 3 года назад
Тоже делал подобный вариант и stm32f103 в качестве программатора. Однако из-за специфики работы от него отказался. А сейчас использую raspbery pi в качестве программатора. Причина в том, что разные проекты реализованы на абсолютно разных контроллерах (avr, pic, stm, esp и прочее) И гораздо удобней использовать малинку с 3" дисплеем и 3 кнопками. Программу прошивки постарался максимально оптимизировать для того, чтобы меньше клацать кнопками.... На SD кидаю zip архив, с некоторым файлом манифеста, описывающим плату в которую шью... А дальше запускаются распознавание устройства, которое подтверждает наличие на линиях устройства подходящего к манифесту.... Ну и если все ок, тогда шьем. Сама структура чуть сложнее... Но монтажникам живется много легче за счет однообразия процесс вне зависимости от контроллера к которому их отправили.
@vladimirlevchenko1470
@vladimirlevchenko1470 3 года назад
Очень интересно , если проект открытый, ждём Link 👍
@angerminsk
@angerminsk 7 месяцев назад
Здравствуйте! Проект открыт?
@alexandrijchuck817
@alexandrijchuck817 3 года назад
Да ладно. В атмеловских ARM-ах тоже есть встроенный бутлодырь, и софтинка аналогичная ST-шной. И тоже называется DFU ! О чудо !!! Зы: Давно уже не игрался с атмелами. Крайний был еще ATSAM7S256/128, и там это было. Да-да... :) И это еще не кортексы были.
@kardanium
@kardanium 3 года назад
ST Link util умеет шить без нажатия на кнопки. Там есть такой режим, когда прошивка начинает заливаться сразу после подключения программатора к прошиваемому МК. По окончанию прошивки, отключаем программатор от прошиваемой платы и втыкаем следующую. Прошивка автоматически заливается.
@7Hz_
@7Hz_ 3 года назад
Полезное видео. Спс. Еще интересует такая тема, как бы скомпилировать код для stm в не ПК. А в часности на АНДРОИДЕ или онлайн. А может быть на Respberry pi с Ubuntu? Ставил Ubuntu на Андроид, но так как версия для андроида походу урезана, и при попытке установить trueStudio, пишет что система не поддерживает установку этого ПО. И вот так как что на андроид что на respberry pi используется linux для ARM, будет ли работь trueStudio на respberry pi. Ну вот такая мысль.
@Thesnowiswhite
@Thesnowiswhite 9 месяцев назад
👍
@smyslovov
@smyslovov 3 года назад
В видео показано применение USART загрузчика. DFU в контексте stm32 это про USB device firmware update - DFU загрузчик по usb. Позволяет прошить мк, в которых есть этот загрузчик. Stm32f103 например так прошить нельзя, хотя USB модуль есть. Размер прошивки может и превышать 1МБ (который и так не одним куском), как вариант взять мк по-проще и добавить к нему sd-карточку, экран и кнопки. и получим uprog для stm32 )
@f33net
@f33net 3 года назад
Матушки..., а я было подписался на канал, но тут сплошная чушь бестолковая... Обновление прошивки на месте через встроенный бутлоадер - вот это мастер, ни доли сомнения. :)))
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Блин, ну зачем меня так расстраивать, я то думал будет еще один подписчик... Подпишись назад плизз. Я тебя чему умному научу. Ну пожалуйста.
@chipsoft1
@chipsoft1 3 года назад
По-моему проще и дешевле изначально сделать свой бутлоадер, чтобы заказчик мог обновить все по ЮСБ, который есть везде. Всегда найдется "домохозяйка", которая что-то не туда вставит и подключит и спалит либо сам программатор, либо устройство :) А виноватым конечно же будет разработчик, потому как не учел защиту "от дурака".
@VladimirMedintsev
@VladimirMedintsev 3 года назад
А вы думаете с бутлоадером мало проблем кто-то куда-то не так вставит и выдернет? У всего есть свое назначение. У меня только бутлоадеров написанных больше десятка на все случаи жизни. Но к примеру контроллер ворот, котла отопления или прочего. С платой в 100 рублей себестоимости. Ну туда сидеть адаптировать бутлоадер???
@chipsoft1
@chipsoft1 3 года назад
@@VladimirMedintsev Как можно вставить не так в ЮСБ? Правильно написанный бутлоадер не окирпичит устройство, если прервать запись во время обновления. Если бутлоадеры уже написаны на все случаи жизни. то добавление их в новые устройства особо в себестоимости не повлияют. Для того же котла или ворот можно поставить разъем под SD-карту и обновляться с нее. Я просто не представляю случая, как "домохозяйке" рассказать, что она должна разобрать девайс и проводками куда-то что-то подключить :)
@sozdatelEd
@sozdatelEd 3 года назад
​@@chipsoft1 данный программатор разрабатывается не для домохозяек, а для автоматизации проверки устройств на стенде и дальнейшей заливки дампа с бутлоадером и первой ревизией прошивки. Таким образом проверочный стенд с подпружиненными иглами будет иметь у себя на борту программатор, который заливает тестовую прошивку и далее проверяет контрольные сигналы с платы поступившей со сборочного цеха. Если всё норм, то заливается бутлоадер и первая ревизия прошивки устройства. Чип блокируется этим же автономным программатором или при первом включении устройства... При партии от 50 плат и более диагностика качества сборки и заливка софта отнимает много времени, а если будет подобный "программатор - проверочный стенд", то за проверку можно посадить студента, который будет ставить платы на стенд и нажав кнопку "Тест платы" ждать сигнала "исправно" или "брак".
@chipsoft1
@chipsoft1 3 года назад
@@sozdatelEd В видео об этом небыло сказано ничего. С технологией производства электронных девайсов, и описанной вами схемой я знаком, и все правильно вы пишите. Т.е. по сути автор хочет сделать альтернативу Segger Flasher/PE Micro Cyclone, о чем тоже небыло сказано. Если есть подобные проекты, интересно было бы посмотреть/пощупать.
@sozdatelEd
@sozdatelEd 3 года назад
@@chipsoft1 ну так мы же программисты. Есть документация, согласно которой описано как программировать микроконтроллер. Например для микроконтроллеров ATmega в каждом datasheet описан SPI Serial Programming Algorithm. Берём читаем и пишем свой автономный программатор. При необходимости пишем алгоритм проверки сигналов с контрольных точек и вывод результата проверки на дисплей, или звук, или светодиод. У меня для avr-микроконтроллеров есть автономные программаторы, а вот для stm я замахнулся на интерфейс SWD, но пока что не разобрался с ним полностью. Вариант "программирование через DFU" я почему-то не рассматривал. А сейчас наверно займусь в свободное время.
@SaihoS1
@SaihoS1 3 года назад
Тема конечно хорошая. Спасибо. Но пожалуй нет смысла в использовании микроконтроллера с большим флэшем. Если прошивка не зашифрована, то ее все равно легко снять при пересылке по USART, а если зашифрована, то проще и дешевле хранить ее в какой-нибудь serial EEPROM вроде 25Q64. Поэтому надо смотреть есть ли у штатного бутлоадера возможность дешифрования прошивки и если нет, то писать свой. Но что-то мне подсказывает что эта тропинка уже не раз хожена. Ну и еще одно замечание по поводу безопасности прошивки - существуют специализированные установки для снятия защиты с микроконтроллеров. В отношении STM32 они пока не справляются с STM32F3 и старше. Все что младше поддается достаточно легко. Это так... к сведению. На всякий случай.
@sovchem1275
@sovchem1275 3 года назад
"нет смысла в использовании микроконтроллера с большим флэшем" В примерах а H7 куба есть пример загрузчика по qspi для SD, MMC, NAND итп. Копеечный H750 за 250руб, со всей космической H7 периферией,1гб RAM,480мгц,L1,L2 кэш, НО 128кб flash отлично работает с 16гб SD карты. Да и сколько можно использовать uart... Вот хороший пример USB DFU PC-клиент с исходниками vс++, нужен только usb кабель. (Только сначала нужно сконвертить alf/hex в *.dfu там 2 exeшника.) Знакомый делал на его базе PC инет-прогер для загрузки шифрованых прошивок из инета по USB. my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html "пока не справляются с STM32F3 и старше" Камни включая F4(правда не все) уже все вскрывают, L и H серии пока нет. Знакомый много этих шараг китайских знает, контроллеры авто сигналок, иммобилайзеров вскрывает на предмет мануфактурных кодов, для использовании в кодграберах, заводилках итп ;)) Где то в ссылках есть прайсы, лень искать... , но цены там конечно ~5000 -20000$ за прошивку, хотя смотря для какого устройства прошивка. А такв большинстве случаев дешевле самому написать
@paveldukov
@paveldukov 3 года назад
Владимир, спасибо. Каким софтом пользуетесь для отрисовки схем электрических принципиальных (на моменте 19:20)?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
DipTrace
@alexeykapustin5827
@alexeykapustin5827 3 года назад
Все перехожу на STM
@vernnms78
@vernnms78 3 года назад
Спасибо за информацию. Я подумал... если STM такой мощный инструмент, то с таким же успехом его можно использовать для прошивки Atmel. Что мешает вывести ноги rx,tx контроллера, забабахать конвертер уровней и лить всё, что угодно с той же флэшки? Хошь -- загрузчик, хошь -- сам бинарник...
@user-di8ib3rk9s
@user-di8ib3rk9s 3 года назад
А если шить с помощью stm32flash в Линуксе , то стирать не надо? видимо при записи стирается автоматически? спасибо!
@DenSvet
@DenSvet 3 года назад
Для коммерческого применения следующие ограничения вижу: 1 - не видно версию/верификацию прошивки (или данных) подключенного устройства (обновляемого контроллера). 2 - придется отдавать клиенту открытый hex или bin, что рано или поздно приведет к появлению клонов. ИМХО самый надежный и дешевый вариант, как вы упомянули вначале ролика, SD карта или софт. программатор на ПК и самописный шифрованный boot в микроконтроллере с интерфейсом USB FS и защитой этой области от чтения. Так можно в открыты доступ выкладывать обновления, прикрытые AES шифрованием. Готовых решений от ST с обновлением и защитой от клонирования я не знаю. Для открытых проектов идея автономного программатора хорошая!
@VladimirMedintsev
@VladimirMedintsev 3 года назад
По секрету скажу, у ST давно есть такое решение с защитой от клонирования. Тут даже в комментариях одна дама его упомянула, а я кинулся ей рот закрывать с упреками что хлеб отнимает.. Вы только никому не рассказывайте. Это TrustPackageCreator. Он у них уже очень давно. И по пункту 1. Нет прошивка может расшифровать сама себя. И ее не обязательно отдавать в виде hex или bin но все будет.
@DenSvet
@DenSvet 3 года назад
@@VladimirMedintsev Хорошо, спасибо, никому не скажу. Ознакомлюсь с pdf по TrustPackageCreator. Для меня привлекательна идея сделать подобную коробочку с фиксированным количеством копий "заливаемной" прошивки и защитой протокола программирования от клонирования. После чего отправить ее в замечательный город Шэньчжэнь для производства. Менеджер microchip, если не соврал, про новый PikKit3 рассказывал, что готовая фича тая у них есть.
@alexeysharandin7364
@alexeysharandin7364 3 года назад
Можно еще дальше пойти... Взять какого то простого китайца под линукс, например F1C100s за 100 рублей на алиэкспесс, и прошивать подключаясь через SSH или на прямую через монитор и мышь.
@ivanivan3815
@ivanivan3815 3 года назад
Интересной альтернативой является апгрейд прошивки посредством NFC, вот небольшая демка от STM ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-cx3u8a0uiUI.html Мне понравилось, что за счет поддержки режима антиколлизий можно одновременно по беспроводному каналу прошивать несколько плат (на видео 3 шт). Приобрел девкит, попробовал, все работает, сама ST25DV04 стоит копейки (порядка 40 руб). Кстати, вместо специализированного ридера для заливки прошивки можно использовать любой смартфон с поддержкой NFC, о чем у STM тоже есть видео и никаких тебе проводов, дополнительных разъемов, программаторов.. удобно ;) Не воспринимайте как рекламу, просто решил подосвоить новую для себя технологию и поделиться с коллегами такой возможностью. ЗЫ. Сейчас в работе прошивка для считывания данных посредством NFC с IoT логгера.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Весьма интересно, посмотрю с удовольствием.
@ivanivan3815
@ivanivan3815 3 года назад
@@VladimirMedintsev Если интересно, здесь ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-WyNey42oIHE.html льют со смартфона 110 КБ прошивки за 46 сек, смотреть с 2 мин 15 сек
@ruslan.zhumabai
@ruslan.zhumabai 3 года назад
Любуюсь вашим знанием, понимать структуру мк стм очень сложно. Вопрос такой, можете разобраться каким образом мк стм подключается к ПО Codesys v2? Назначение данного ПО программировать промышленных контроллеров. Например, для программирования ПЛК ОВЕН использует эту программу и в нем процессором ПЛК является мк стм. Нигде нету обзоров на эту тему. Спасибо!
@VladimirMedintsev
@VladimirMedintsev 3 года назад
ПЛК может содержать в себе микроконтроллер STM32, в качестве микроконтроллера. Однако программа codesis не занимается непосредственно программированием микроконтроллера, она лишь дает ему некоторую лоническую карту по которой уже программное зашитое в микроконтроллер выполняет функции возложенные на ПЛК. Так что вам это знание ничего не даст. Программировать микроконтроллер на codesis не получится.
@user_user_320
@user_user_320 3 года назад
Интересные видео)) Прошу не считать меня занудой, но чтобы не вводить новичков в заблуждение, немного Вас поправлю. Не протоколы CAN/UART/I2C, а интерфейсы. Протокол это чуть другое. Не буду кидаться терминами, знающие согласятся, а не знающие погуглят)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Когда вы говорите о физическом устройстве UART это интерфейс. Когда вы говорите о определенной деятельности (ну к примеру отправка AT команд и подобное) то это протокол. Если как вы рекомендовали погуглить по словам "uart protocol" хоть по русскому аналогу вы найдете тому массу подтверждений. Более того допустимо сказать "протокол обмена uart" даже в учебной литературе. Разница в "действие" и "устройство".
@user_user_320
@user_user_320 3 года назад
@@VladimirMedintsev, совершенно верно, стандартизированая прием/передача данных по какому-либо интерфейсу и является протоколом) P.S. А по поводу Хабра: вы же опытный разработчик, не совсем понимаю зачем ссылаться на какую-то статью, если и сами знаете определение интерфейса и протокола?! P.P.S. Это ведь на самом деле, разные вещи;)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Статья это первый пример который попался. Думал неужели я ошибся.
@kiryamify
@kiryamify 3 года назад
В бутлоадер можно попасть не только с кнопкой boot0, но и из своей программы. Я использую кнопочку на устройстве при его старте для того, чтобы установить MAGIC_BYTE в память и перезагружаю контроллер. При загрузке (перед инициализацией переферии, я проверяю MAGIC_BYTE и прыгаю по адресу бутлоадера.)
@kiryamify
@kiryamify 3 года назад
Пример для STM32l432 void CheckDFUJump(void){ if(*((unsigned long *)(SYMVAL(__ram0_end__) - 4)) == MAGIC_BOOTLOADER_NUMBER) { /* magic flag set */ *((unsigned long *)(SYMVAL(__ram0_end__) - 4)) = 0; /* erase the magic */ SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0;/** * Step: Disable all interrupts */ //__disable_irq();/* ARM Cortex-M Programming Guide to Memory Barrier Instructions.*/ __DSB(); SYSCFG->MEMRMP &= ~(SYSCFG_MEMRMP_MEM_MODE); SYSCFG->MEMRMP |= SYSCFG_MEMRMP_MEM_MODE_0; __DSB(); __ISB(); asm("ldr R0, =0x1FFF0000"); asm("ldr r1, [R0, #0]"); asm("mov SP, r1"); asm("ldr R0, [r0, #4]"); asm("bx r0"); } return; } void try_jump_to_bootloader() { *((unsigned long *)(SYMVAL(__ram0_end__) - 4)) = MAGIC_BOOTLOADER_NUMBER; // set magic flag => reset handler will jump into boot loader NVIC_SystemReset(); }
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Спасибо :)
@leharuso
@leharuso 3 года назад
@@kiryamify , а это поведение (и адрес) гарантируется производителем для будущих ревизий того же микроконтроллера?
@trymbachyaroslav3828
@trymbachyaroslav3828 3 года назад
А если вы по ошибке зальете прошивку в которой не будет этого куска кода? Ведь тогда все-равно придется лезть к boot0.
@kiryamify
@kiryamify 3 года назад
Trymbach Yaroslav да, на этот случай есть пятачек
@dr.emmettbrown8466
@dr.emmettbrown8466 3 года назад
Если говорить про конечное изделие в котором предусмотрен апгдейд прошивки пользователем, то может в само изделие поставить микроСД слот + самый дешевый МК, который будет читать бинарник с SD карты через SPI и перезаливать его основной МК по UART, предварительно самостоятельно дернув нужные ноги основного МК. Удорожание проекта ИМХО совсем небольшое, зато очень удобно.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
К примеру малюсенькая плата контроллера ворот. Надо только изменить в новой прошивке тайминги работы реле. Ну к чему там слот для микроСД, он же просто сгниет в этих воротах. Ведь не все изделия большие, как правило большинство это малая автоматизация.
@dr.emmettbrown8466
@dr.emmettbrown8466 3 года назад
@@VladimirMedintsev Ну естественно если это целесообразно.
@mmikrik
@mmikrik 3 года назад
@@VladimirMedintsev и вообще, надо уже научится писать так чтоб не обновлять в будущем. А если что то полетело то пусть покупают новое устройство.. или плату.
@Leech00001
@Leech00001 3 года назад
Владимир обратите внимание вот на это программное обеспечение play.google.com/store/apps/details?id=com.martinloren.stm32utils а также вот ссылка на проект stm32utils.martinloren.com/ Мне кажется это в тему данного видео.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
милый проект. автор себе тихонько так продукт выдал.
@allaksusallaksus2402
@allaksusallaksus2402 3 года назад
Неудобство uart заключается в том что в stm32 сделали загрузку от многих uart а не от одного, приходиться физически отключать другие uart зависимые интерфейсы иначе загрузчик то и дело настраивается на них.
@BB-ti9bf
@BB-ti9bf 3 года назад
-скальпель и паяльник- DIP переключатели вам в помощь. (спасибо за заметку, учту})
@allaksusallaksus2402
@allaksusallaksus2402 3 года назад
@@BB-ti9bf DIP переключатели слишком много места занимают кроме первого есть другие способы - писать свой загрузчик - использовать в схеме логическую схему для отключения лишних rx сигналов
@sovchem1275
@sovchem1275 3 года назад
А USB чем не нравиться? Вот PC-клиент с с++ исходниками my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html "то и дело настраивается на них" RND что ли?! Разве не по очереди с USART1,2,3, итд ?
@allaksusallaksus2402
@allaksusallaksus2402 3 года назад
USB не подходит потому-что - необходима гальваническая развязка, у USB она сложнее - необходимо чтобы не было проблем с установкой драйвера устройства, права пользователя могут быть ограничены здесь -- при вынужденной замене нп микроконтроллер другого производителя usb не кажется столь надежным вариантом по сравнению с uart - через этот порт необходимо настраивать изделие, USB по сравнению с uart создает дополнительные сложности
@allaksusallaksus2402
@allaksusallaksus2402 3 года назад
На счет очередности. Наверное работает следующим образом, с какого uart порта вперед придет стартовый бит на том и останавливается, а другие больше не слушает. На практике порт загрузки не работает если на другом порту левая активность
@adminroot1345
@adminroot1345 3 года назад
usb, uart, rs232, rs485 можно пробрасывать через ethernet.)
@dima020275
@dima020275 3 года назад
А есть что-нибудь подобное, чтобы прошивать с SD-карты? На платах управления 3Д принтерами от Big tree tech на основе STM32 это как-то сделано, но как оно внутри устроено непонятно.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да как не понятно, там все предельно просто. Они написали свой загрузчик расположенный в младших адресах памяти и он грузит прошивку. Ну как бы сложного нет, все разработчики рано или поздно пишут свой загрузчик для своих проектов. Тем более с SD карты ну это вообще не проблема.
@ArtemKAD1
@ArtemKAD1 3 года назад
В AVR программатор как железка тоже не нужен вообще. В классике надо только программа на компе и преобразователь UART компа в SPI внутрисхемного интерфейса программирования микросхемы.
@konstantingolinskiy4944
@konstantingolinskiy4944 3 года назад
А у вас нету случайно примера как делать обновление через СД карту? =) Например написали программу моргает светодиод допустим 1 раз в секунду залили в плату через ст-линк ( к плате припаян картридер ). Плату потом отдали например человеку который далёкий от всего этого. Потом написали новую прошивку например мигает уже один раз в две секунды, компилируем программу в бинарник и допустим скидываем человеку у которого устройство, он просто скидает этот бинарник на карту памяти вставляет в устройство перегружается, идет проверка на то что программа версия новая и само перепрашивается, если версия текущая или старая то нечего не происходит устройство просто запускается. Было бы интересно
@sovchem1275
@sovchem1275 3 года назад
В H7 кубе есть пример для загрузки и работы с SD, MMС итп. Те если в устройстве есть SD то на ней можно хранить всю прошивку контроллера с которой он и будет загружаться. Это особенно выгодно если использовать мощный контроллер с маленькой флеш, например 128кб как в H750 с 480мгц и 1мб ram за 250руб
@Beatleman91
@Beatleman91 3 года назад
Эммм... Я правильно понял, что вы верхний кусок от платы Nucleo описали, который программирует второй кусок?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Нет, не правильно. Верхний кусок нуклео, программирует нижний кусок по интерфейсу SWD. SWD это отладочный интерфейс, а здесь DFU - загрузчик.
@Beatleman91
@Beatleman91 3 года назад
@@VladimirMedintsev верхний кусок платы Nucleo можно отпилить и получить платку с разъемом, которой у вас на 18:53, ну не считая вывода Dev_BOOT
@oleggora5362
@oleggora5362 Год назад
Можете подсказать, если есть плата рации с пустым контроллером, и есть файл прошивки, который прошивается если рация рабочая. Можно этот файл прошить через st-link?
@VladimirMedintsev
@VladimirMedintsev Год назад
Может можно, а может нельзя, мне отсюда не видно.
@vitgo
@vitgo 3 года назад
кстати, а вы не использовали st link для отладки ? там есть утилита для командной строки, но я так и не понял как ее пользовать... команды из командной строки выполняются, а вот как по шагам по программе идти просматривая изменения в регистрах\памяти ? консольная программа выполняет команды и выходит опять в ос... а можно ли по шагам смотреть исполнения, выбирая след шаг сделать или просмотр памяти\регистров ?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Я не только использую ST-Link для отладки, но и на моем канале есть ровно несколько видеороликов, в которых я показываю создание собственных клонов данного программатора. Даже с гальванической развязкой клон есть.
@vitgo
@vitgo 3 года назад
@@VladimirMedintsev да программатор есть, китайский st link v2... интересует именно управление программатором из командной строки. нужно для программного управления из другой программы... пороюсь в видео..
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Вот в этом видео - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-cbrzsWrvTbg.html я рассказывал в каком файле документации есть описание команд командной строки и как этим пользоваться. На канале давно все есть.
@alexandrakovshova3748
@alexandrakovshova3748 3 года назад
для того, чтобы из командной строки выполнять отладку и идти по шагам, смотреть регистры и т.д. нужно использовать дебаггер - gdb
@user-ec2jr6pv1s
@user-ec2jr6pv1s 3 года назад
Если не юзал ардуину и атмегу, стоит сразу с стм32 начинать?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Конечно
@user-je8oz6lh6w
@user-je8oz6lh6w 3 года назад
Вот у меня как раз именно сегодня появилась задача смены прошивки через UART. Правда мне это надо сделать удалённо через модем и ножку BOOT0 к питанию подключать будет некому. Посоветуйте что нибудь?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Без подключения BOOT0 к логической 1 магия не работает. Не колдуется.
@user-je8oz6lh6w
@user-je8oz6lh6w 3 года назад
@@VladimirMedintsev Понятно. Придется копать по бутлоадер
@sovchem1275
@sovchem1275 3 года назад
А по USB не подойдет? my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html USB DFU PC-клиент с vс++ исходниками, нужен только usb кабель. Только сначала нужно сконвертить alf/hex в *.dfu там 2 exeшника. Знакомый делал из нее PC инет-прогер для загрузки шифрованых прошивок из инета по USB. "BOOT0 к питанию подключать будет некому" Ну а изделие твое, уже готовое, мк уже на плате и только UART выведен? Обычно в устройства кнопку "обновление" добавляют(они и замыкает boot0), например в новых материнках копа, инет приставках к ТВ итп
@valkoder_ex305
@valkoder_ex305 3 года назад
как вариант аппаратно-програмный метод.Можно, например rc цепочку использовать, расчитать только время небходимое. Ножку БУТ0 и любой свободный пин соединяем вместе к rc цепочке. Когда нужно перевести контроллер в режим загрузки, подаем питание на совмещенный пин - заряжаем конденсатор и делаем систем резет. Сам конечно так не делал, но теоретически должно времени хватить. Правда все это как-то не резонно. Уж проще свой загрузчик написать и либо сд карту прикрутить или spi флешку и туда писать, а потом во внутреннюю флеш контроллера, ну или если совсем хардкор то сразу в память самого мк.
@tutrututu4028
@tutrututu4028 3 года назад
здраствуйте может сможите помоч? обясните пожалуйста чо такое дфу и как поступить с граф планшетом huion он не выходит из дфу и определяется пк как "GD32 in dfu mode" это уже кирпич или можно оживить? (если возможно соет дайте куда мотреть и где ковырять ибо в нашем з***ке "мастера" смотрят на ету штуковину как на новые ворота)
@sergovan79
@sergovan79 3 года назад
День добрый! Затык на ровном месте. На девборде с STM32f103c8t6 все прекрасно получилось с первого раза. Изготовил уже свою плату и flash loader eе не видит. Процы покупал с ЧиД. Перепаивал процы, все питания и земли ОК. boot0, boot1, reset OK. CTS для uart1 подтянул к земле. На дорожках rx, tx ничего не висит, да и запаянных деталей на плате минимум, только для прошивки. Паршиво, что самоуверенно даже на вывел SWD для альтернативной прошивки. Судя по даташитам DFU в этих процах должен быть по любому. Возможно ли, чтобы в данных процах не был прошит DFU?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Нет, это не возможно
@VladimirMedintsev
@VladimirMedintsev 3 года назад
По сути есть условие запуска для каждого микроконтроллера. Оно должно быть выполнено. Для вашего чипа. Питание подано на все ноги и цифровое и аналоговое. земля на все ноги. Вывод reset подтянут резистором к +, выводы rx,tx по назначению, cts не баловаться, boot согласно документации. Если все это выполнено то будет работать, если не работает, то значит вы что-то из описанного выше не сделали.
@sergovan79
@sergovan79 3 года назад
Да, все понимаю. Тем более рядом есть рабочая плата. Вот и пытаюсь найти отличия. Но работа с МК это бег по минному полю, никогда не знаешь где бахнет:)
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да ну вы загнули. С современными микроконтроллера и сложностей нет вообще. Работают хоть гвоздем их паяй.
@janeg7110
@janeg7110 5 месяцев назад
Привет АВТОР ! Прибор ,, Chip Soft MID ,, ( на контроллере STM32F105RCT6 ) , думаю что слител bootloader (загрузчик) . Подскажи , как мне восстановить его ?
@VladimirMedintsev
@VladimirMedintsev 5 месяцев назад
Воспользоваться программатором и записать загрузчик в память микроконтроллера.
@janeg7110
@janeg7110 5 месяцев назад
ST-LINK V2 и программа от ST Programer ??? @@VladimirMedintsev
@VladimirMedintsev
@VladimirMedintsev 5 месяцев назад
@@janeg7110 да, но вам еще и потребуется сам бутлоадер (загрузчик) вашего устройства. Если вы думаете что он слетел то его нужно будет записать.
@janeg7110
@janeg7110 5 месяцев назад
@@VladimirMedintsev А вот это как раз интересно !!! Где его надыбать то ?
@VladimirMedintsev
@VladimirMedintsev 5 месяцев назад
@@janeg7110 У производителя устройства.
@user-lf6wm5xb8d
@user-lf6wm5xb8d 3 года назад
Защищенные прошивки и в защищенный контроллер так не прошить, верно?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
не верно.
@-Darkweider
@-Darkweider 3 года назад
Наверно только у меня валяется где-то в столе PicKit2 который еще в прошлом веке исполнял эти чудеса. Правда там всего 2х24512, но тогда и код компактный умели...
@alexeykapustin5827
@alexeykapustin5827 3 года назад
Не только. У меня еще и PicKit3 есть
@titr7933
@titr7933 3 года назад
Я тоже ещё использую😀
@cb_q
@cb_q 3 года назад
а как быть с защитой от клонов? ведь штатный загрузчик не проверяет валидность прошивки, что позволяет: 1. прошивать прошивкой от разработчика любое кол-во устройств (в том числе и клонов - копия платы исходного устройства), 2. прошивать кастомной прошивкой изначальной устройство - в этом случае хотелось бы обезопасить разработчика от головной боли в виде багов/глюков и их последствий. В идеале это должно решаться путем шифрования прошивки, наличием кастомного bootloader'а в самом МК, который умеет эту прошивку валидировать, расшифровывать и записывать в МК. Но есть ли такая возможность? - из беглого поиска я нашел что есть возможноть залочить весь МК от чтения/записи. Это не подойдет, т.к. custom bootloader тоже будет затерт. а без защиты - любой сможет получить прошивку (в том числе кастомный bootloader). в случае использования асиметричного шифрования это не позволит заливать кастомную прошивку в МК, но позволит наделать дубликатов устройств с заводской прошивкой. у AVR это решается выделение отдельной секции flash под bootloader, запрет чтения этой секции из основной программы и возможность перезаписывать основную часть flash из кода bootloader'а. - таким образом прочитать bootloader программатором или кастомной прошивкой нельзя и делать дубли устройств тоже нельзя, т.к. официальная прошивка зашифрована а на будлях нет bootloader'а, который может её расшифровать. как с этим обстоят дела у STM32?
@BB-ti9bf
@BB-ti9bf 3 года назад
Вы там шо такое космическое и защищенное делаете? Если уж на то пошло, то вроде как за 5-10 килобаксов можно сделать разрушающий анализ и физически на кристалле напрямую снять защитные фьюзы и почитать чего где залито
@cb_q
@cb_q 3 года назад
@@BB-ti9bf как что? skynet на IoT). ну а по делу - просто не хочу чтобы кто-то наделал дублей моего устройства и ковырял его прошивку. и как-то это все-таки можно сделать, потому что есть пример - DSO138.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Вы как-то далеко от темы данного ролика, но в друх словах все вами описанное не проблема. Все это решается. Я не буду 100500 слов писать, но это не проблема.
@sergatmel8242
@sergatmel8242 3 года назад
Всё круто ! 👍 Но, 3 кБ для блинкера ... 🤔
@ArtemKAD1
@ArtemKAD1 3 года назад
:)
@user-wx4dd4gu6l
@user-wx4dd4gu6l 3 года назад
За HAL надо чем-то платить. А что такое 3 кБ для STM32F103RG - так, мелочь)))
@ArtemKAD1
@ArtemKAD1 3 года назад
@@user-wx4dd4gu6l Лет 20 назад(в начале нулевых) в 2кБ AVR у меня влезал весь код автосигнализации вместе с полноценной обработкой криптографии радиоканала. Если 3кБ это для STM32 "так мелочь", то не удивлюсь, когда аналогичный код в STM32 займет килобайт 20, а то, что влазит в 256кБ AVR в 1МБ STM32 просто не войдет.
@Insideus2786
@Insideus2786 3 года назад
Спасибо за видео! Возник резонный вопрос. А зачем делать автономный программатор для заказчика вместе с самописным софтом, если на этом же МК можно сделать полноценный ST-Link на той же плате и прошивать через уже написанную программу? По денежным затратам я никакой выгоды не увидел, а по факту легче подключить USB кабель напрямую к устройству и прошить без всяких внешних программаторов.
@vladmodq
@vladmodq 3 года назад
Ну не удобно к устройству с ноутом лезть, а подключить донгл и нажать кнопку куда удобнее
@user-zh9yr8pp3e
@user-zh9yr8pp3e 2 года назад
Хотелось бы, построить на отладочных платах серии STM32.... программатор для НАНД флешь . Чтобы читал БУТЫ, и тд итп Возможно ли это сделать?
@VladimirMedintsev
@VladimirMedintsev 2 года назад
Да, конечно возможно.
@user-zh9yr8pp3e
@user-zh9yr8pp3e 2 года назад
@@VladimirMedintsev Да ,я знаю Но где бы посмотреть последовательность . В электронике я более менее , а в программных делах я вообще, нулевенький
@VladimirMedintsev
@VladimirMedintsev 2 года назад
Ну тут я вам помочь не смогу, такое в открытый доступ не выкладывают.
@sovchem1275
@sovchem1275 3 года назад
*Привет, так а чего UART... есть же готовый, PC-USB загрузчик.* Вот родной ST-шный пример USB DFU загрузчика с vc++ ИСХОДНИКАМИ, как PC-клиента, так и загрузчика (в МК) Можешь пользоваться готовым, а можно добавить в какую то свою PC - консоль устройства инет обновление прошивки, можно добавить и крипт/декрипт ф-ции в PC клиента и в mcu-загрузчик my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html Там 1 exeшник конвертит *.hex/*.alf в *.dfu, а другая эти *.dfu заливает, нужен только USB кабель. У меня приятель на базе этого примера сделал консоль для шифрованного инет-обновления прошивки в кодграбберах (для угонщиков) :))) А т.к. в прошивках дорогие, "мануфактурные ключи" для ходовых автосигналок, то из открытого hex их сразу выдерут конкуренты. И что бы кто то попросту не начал производство, ПС-клиент проверяет серийник м.контроллеров проданных устройств и наличие старой прошивки.
@sovchem1275
@sovchem1275 3 года назад
Можно и автономный USB прогер сделать на это примере. Правда не представляю устройств, куда РАДИ ОБНОВЛЕНИЯ не подобраться с нетбуком/андройдом....
@cb_q
@cb_q 3 года назад
@@sovchem1275 тут вопрос удобства обновления, а не отсутствия возможности подключиться нетбуком. сравните: 1. нетбук, usb кабель, программа, которая за один раз прошивает одно устройство и требует нажать 5 раз на кнопку далее. 2. устройство со шлейфом, которым подключается к готовому устройству и перепрошивает его автоматически. если перепрошиваемое устройство портативное перепрошивальщик имеет внешнее питание и запитывает его от себя, если устройство стационарное - перепрошивальщик есть портативное устройство и питаться может по шлейву от перепрошиваемого устройства. процесс обновления проходит по сценарию - подключить шлейф, дождаться индикации зеленого светодиода, если вместо зеленого, например, красный что-то пошло не так, на этот случай, допустим добавить функцию отката на предыдущую прошивку (которую прошивальщик может автоматом считать и запомнить перед перепрошивкой) в виде отдельной кнопки. во втором случае действий намного меньше, и если устройств по цеху, например, сотни, то это серьезно сэкономит время. можно заморочиться и автоматизировать прошивку на ПК (т.е. прошивальщик запущен все время и ждет подключения новых устройств и прошивает их без подтверждения), но будет ли кто-то это делать?
@MrLedball
@MrLedball 3 года назад
Прошивка по usb кажется более универсальной... или я не прав? Хотя бы можно отправить прошивку по электронной почте. Правда, желательно, в защищенном виде...
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Прошивка по USB предполагает что вы и компьютер должны придти к устройству, а автоматичный программатор можно положить в карман и компьютер не нужен.
@MrLedball
@MrLedball 3 года назад
Vladimir Medintsev автоматический можно с USB сделать. Сложнее, но можно же? Ну и передача прошивки заказчику - тоже важный момент.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Автоматический можно и USB сделать, а смысл. Мне заказчик заплатил за новую версию прошивки, я ее написал. Мне зачем себе голову ломать. Это его деньги, его изделие. Мне надо прошить максимально дешево. Я даю ему в руки программатор 400 рублей стоимости и пусть прошивает. Ну что ценного к примеру в прошивке автоматических ворот или печи для кирпичей. 99,99% прошивок не стоят того чтобы их взламывать. Они банальные автоматы.
@MrLedball
@MrLedball 3 года назад
@@VladimirMedintsev получается, под каждую смену прошивки ему нужно передать(выслать) программатор? тогда уж проще китайский st-link ему вручить и высылать прошивки, если что... а с ноутом можно и подойти к устройству все-таки... или этот программатор должен быть ну прям очень удобен и с возможностью залить в него новую прошивку на компе...
@VladimirMedintsev
@VladimirMedintsev 3 года назад
@@MrLedball Вообще-то на последних минутах этого видео в концепте схемотехники сказано что программатор подключается к компьютеру по USB, туда помещается файл обновляемой прошивки и дальше заказчик с ним работает уже без участия компьютера. Соответственно мне не надо ему передавать каждый раз программатор. Достаточно дать саму прошивку. Кроме того, использование STLink и компьютера подразумевает что он должен к каждому устройству идти с этим компьютером и там делать какие-то мало понятные для него операции. А тут пришел, подключил, кнопку нажал... Более того тут и прошивок может быть много и он сможет сам их менять какая ему нужна.
@MrLedball
@MrLedball 3 года назад
А как быть с защитой прошивки? Получается, можно будет прошить чип, потом с него считать прошивку обратно. Ну, если загрузчик штатный использовать...
@cb_q
@cb_q 3 года назад
у STM32 есть защита на чтение/запись - чтобы прочитать или записать новые данные эту защиту нужно снять, но при этом стирается прошивка МК.
@MrLedball
@MrLedball 3 года назад
Павло Балтаєв при прошивке через uart - ее можно поставить? Хотя, никто не мешает сканировать процесс обмена по uart...
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Защиту прошивки можно поставить при ее загрузке по уарт, более того, сама прошивка ее так же может поставить при первом запуске.
@BB-ti9bf
@BB-ti9bf 3 года назад
@@VladimirMedintsev а как насчет подключения логического анализатора к пинам UART и слива в момент прошивки? Тут любая криптография летит к черту
@MrLedball
@MrLedball 3 года назад
Vladimir Medintsev однако, отдавая программатор «на руки» вы фактически передаете прошивку. не привязанную к конкретному железу. Верно?
@mega_mak
@mega_mak 3 года назад
Можно шить через самодельный UART программатор с WIFI (esp) который подключается к удаленному серверу через смартфон раздающий сеть или через ноут по локальной сети. Интересный будет проект ))0). Топим за это ребят.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Каких ребят будем за это топить?
@mega_mak
@mega_mak 3 года назад
@@VladimirMedintsev отбитых наглухо радиолюбительской контузией.
@xintreavideo
@xintreavideo 2 года назад
Какая разница, покупать программатор, или плату UART. И того и того у пользователя обычно нет в наличии. В STM32 BluePill вообще дичь: есть разьем USB, но по нему можно только подключить питание. И чтобы воткнуть в компьютер, нельзя просто так взять и соединить проводом USB. Надо либо SWD разъем через программатор в USB порт втыкать, либо через UART преобразователь растыкать пины и в USB порт втыкать. Разработчики Ардуино с этим не стали мириться, и каждая плата идет с FTDI микрухой, которая позваляет взять кабель и соеденить с компьютером. И захапали огромный кусок рынка домашних самодельщиков, сделав элементарную вещь. А в STM32 все никак догадаться не могут хотя бы выпускать платы с готовым DFU загрузчиком во флеше, чтобы хоть так позволить пользователю работать через USB без покупки дополнительного железа.
@MrLedball
@MrLedball 3 года назад
Вот бы еще прошивку через ethernet рассмотреть.
@BB-ti9bf
@BB-ti9bf 3 года назад
Ну там через W5500
@MrLedball
@MrLedball 3 года назад
B B у меня используется lan8720, но это не столь важно
@t966rt
@t966rt 3 года назад
@@MrLedball самописный бутлоадер, tftp, ftp(s), http(s) или "велосипед" + если надо шифрование, вроде у ST есть апнот
@ibrag2012
@ibrag2012 3 года назад
Я б заюзав самий дешевий чип CH340E разом з андроїд-смартфоном (але я думаю як програміст та не у всіх є ведроїд), ідея сподобалася, дякую!
@wirtdonners4212
@wirtdonners4212 3 года назад
Да брось ты этот обезьяний язык. Говори на русском. Он понятнее и удобнее.
@olegctef7999
@olegctef7999 3 года назад
Спасибо, Владимир! Зачем так сложно?Не проще ли написать свой загрузчик для каждого устройства ? Используя ваш отдельный программатор требуются дополнительные затраты средств и времени. С собственным загрузчиком вы защищены от копирования. В вашем случае, если конкурент захочет копировать ваши устройства ему будет достаточно получить доступ к вашему программатору, так как запись в МК идет уже в чистом виде и скопировав ваш код можно писать в чистый МК. С собственным загрузчиком данные передаются закрытые и если в устройстве нет вашего загрузчика то железо копировать бесполезно
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Если вы внимательно смотрели видео, то могли заметить, что это ответ на вопрос подписчика. Более того Эдуард в своих комментариях под этим видео описал какую ценность это имеет. Загрузчик это очень хорошо, но есть масса примеров когда данный способ использовать рациональнее.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Второе, тут под видео каждый второй комментарий просто параноя по поводу "украдут мою прошивку". Блин да кому это надо? Ну что такого ценного в вашей прошивке. Ее вместе с платой воровать муторно и дорого. Каждый раз когда приходит заказчик и говорит давай украдем, проще разработать заново чем копировать чужие ошибки.
@olegctef7999
@olegctef7999 3 года назад
@@VladimirMedintsev Да я понимаю, мне нравятся ваши видео и подача материала, просто хотелось что бы вы обозначали не только плюсы, но и минусы) Не в коем случае не хотел вас обидеть) Описанное вами решение на мой взгляд оправданно только в случае, если МК не имеет внешних интерфейсов, но если они у него есть более рациональным будет использование собственного загрузчика и процедура обновления не будет требовать от обслуживающего персонала дополнительных движений в виде замыкания boot0.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
@@olegctef7999 Да при чем тут обиды. Я нигде не говорил о том, что персоналу необходимо замыкать boot0 это будет делать сам программатор. Не везде есть возможность и не везде целесообразно делать свой загрузчик. Есть разные технологии и они нужны каждая в своем случае. Ну это все равно, что я сказал бы, зачем видео про i2c если есть spi. Тут та же картина. Есть масса применений где данный вариант гораздо лучше чем самописный бутлоадер. И в качестве примера я привел вам сообщения Эдуарда. А вы тут сразу про обиды. Блин хоть не отвечай вообще на комментарии.
@olegctef7999
@olegctef7999 3 года назад
​@@VladimirMedintsev Иногда проще скопировать чужие ошибки чем набить свой) Параноя имеет место быть, но и иногда это горький опыт(
@lionlinux
@lionlinux 3 года назад
мне представляется что USB Otg ГАРАЗДО ИНТЕРЕСНЕЕ... без преобразователя UART-USB получается?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Конечно получается, но это уже DFU
@lionlinux
@lionlinux 3 года назад
если stm лучше чем avr, где народный Транзистор Тестер на STM?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
А это ваше народное оно сколько в сотых процента от профессионального потребления микроконтроллеров? Надеюсь понимаете что это так себе критерий. Лучше хуже ну реально как в песочнице.
@adminroot1345
@adminroot1345 3 года назад
Как вариант это проблема решается микропитоном из коробки.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Вот только этого ужа нам не хватало.
@Foomichoff
@Foomichoff 3 года назад
Это защита от дурака, потому что подцепившись простым логическим анализатором за 300р с алиэкспресс, на RХ и ТХ можно получить прошивку без каких либо проблем
@dmitriicharuiskii
@dmitriicharuiskii 10 месяцев назад
Вот смотрю не первое видео и думаю в чем тут автономность. Ведь автономность (из википедии) - независимость какой-либо одной из управляемых величин от изменений остальных управляемых величин. Допустим я одной управляемой величиной приму сам процесс прошивки, автономность я тут вижу - просто открыл программу и залил (как минимум), а как максимум запустил что-то на компе или запустилось что-то на серваке и оборудование прошито. А тут как минимум зависимость от установления BOOT0 в "1", а в Вашем варианте ещё и ресетнуть надо. Т.е. процесс прошивки зависит от дополнительных двух управляемых величин. Чем это отличается от привычного процесса прошивки, лично для меня, непонятно... Но в любом случае спасибо, много полезного.
@VladimirMedintsev
@VladimirMedintsev 10 месяцев назад
Понять не могу зачем вы старательно натягиваете сову на глобус. Ей же больно. Вы взяли определение из систем регулирования и попытались дальше вокруг этого строить какие-то рассуждения. А если взять обычный словарь, то выяснится, сто слово автономность это способность функционировать самостоятельно без какого либо дополнительного оборудования и прочего. Можно сделать программатор который будет работать без компьютера? Да, можно, значит он будет автономен.
@dmitriicharuiskii
@dmitriicharuiskii 10 месяцев назад
@@VladimirMedintsev Извините, но всё же... Сове больно, да и от того у неё такие большие глаза, что в попытках найти ответы на свои вопросы, зацепившись за слово автономность, пытается её там разглядеть. Автономный программатор и обычный программатор, в чем разница? Звучит как плюс к цене или просмотрам =) Это ни сколько не претензии, сам разобраться хочу.
@leharuso
@leharuso 3 года назад
А кто-нибудь поставляет заказчикам файлы DFU, созданные в DFU File Manager?
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Я использую только 2 способа. Или это полностью самописный загрузчик с шифрованием и блек джеком или это смена прошивки программатором.
@EEinside
@EEinside 3 года назад
Так и не увидели рабочий пример в конце. Микроконтроллер выбран дорогим. А так спасибо.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Какой пример? Вы о чем? Подписчик задал вопрос, мне было интересно ему ответить, теперь он (Эдуард, вопрос которого был показан в видео) будет делать устройство. А если сочтет возможным показать, то будет видео. Я просто подсказал как сделать.
@EEinside
@EEinside 3 года назад
@@VladimirMedintsev да подсказали, но обалдеть сколько манипуляций заказчику сделать, чтобы получить например прошивку дистанционно и ее залить без программатора, но зато с ттл преобразователем, проводками, дерганием ног... Делать так можно, безусловно, но не фига для не программистов не удобно, а это важно для дистанционки...
@user-tm5fp3xw9j
@user-tm5fp3xw9j 3 года назад
@@EEinside тут вопрос удобства для пользователя. А он далеко не программист
@EEinside
@EEinside 3 года назад
@@user-tm5fp3xw9j заказчик может быть пользователем, это повезло, а может быть и нет. На не опытного стоит рассчитывать, а тут уже проблемы пойдут.
@user-tm5fp3xw9j
@user-tm5fp3xw9j 3 года назад
@@EEinside так я тебе оь этом и говорил. Конечному пользователю чем проще, тем лучше. С точки зрения программиста - это выглядит извращение.
@smart_electrics_il
@smart_electrics_il 3 года назад
"описаны методы работы с DFU" Но об этом ни слово...
@sovchem1275
@sovchem1275 3 года назад
my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html USB-DFU PC-клиент с vс++ исходниками, нужен только usb кабель. Только сначала нужно сконвертить alf/hex в *.dfu там 2 exeшника
@smart_electrics_il
@smart_electrics_il 3 года назад
@@sovchem1275 Спасибо конечно, но смысл моего сообщения в том, что в описании и в заставке к видео, фигурирует DFU, но в самом видео об этом ни слово.
@gawadinc
@gawadinc 3 года назад
на 10:30 звучит DFU, и показан параграф в доке
@smart_electrics_il
@smart_electrics_il 3 года назад
@@gawadinc да вы что !? Реально ?? Да вы просто сама внимательность. А я то дурак, думал что ВСЯ(!) тема будет про DFU, а там секундное упоминание и в графу пальцем ткнули. Вы мне глаза открыли, гений
@retro55i
@retro55i 3 года назад
А что такое DFU и с чем его едят?
@trinitroDimedrol
@trinitroDimedrol 3 года назад
В конце Вы упомянули про криптографию для защиты прошивки. Ничего не выйдет. Бинарные данные по UART передаются в "сыром" незащищённом виде, зашитый в МК бут никак не защищает свою прошивку.
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Это не верное утверждение. Может быть закодирована наиболее ответственная часть прошивки, просто закодирована. По уарт эта часть будет так же передана в зашифрованном виде. Ее расшифровка произойдет уже в памяти самого микроконтроллера при первом запуске. Соответственно расшифрованая часть будет записана в те же или другие страницы flash. А можно вообще не писать во flash а открывать и выполнять в RAM. Кроме того, я вот который год понять не могу, да кого же все так боятся? Что блин там такого в ваших прошивках? Такое впечатление что там у каждого нобелевская премия в алгоритмах, а по факту в 90% случаев лично мне даже лениво будет вашу плату воровать, мне быстрее свое сделать.
@trinitroDimedrol
@trinitroDimedrol 3 года назад
Значит всё-таки придётся писать код загрузчика, который будет следить за количеством запуска, расшифровывать данные и перезаписывать флэш... Про защиту Вы сами в видео оговорились) Я ни в одном из серийных изделий криптографию не применял, согласен что незачем. Банальная блокировка чтения в OptBytes как защита "от любопытного" (которая к слову в STM ломается за минуту), не более.
@user-ey2pf8zu1p
@user-ey2pf8zu1p 3 года назад
Но ведь во время передачи неизвестно, что это за данные. В процессор может быть загружен любой мусорный бинарник. Является ли это исполняемым кодом станет известно только при его запуске. Так, что смело это могут быть шифрованные данные. Если они соответствуют заложенному алгоритму, то запуск успешно произойдёт. Но мне всё это не нравится. У меня не один потребитель с сотней устройств, а сто потребителей с одним устройством. Никакого дополнительного оборудования требовать для смены прошивки я от них не в праве. Давно использую бутлоадеры, делающие USB съёмный диск. Тут никакого усложнения схемотехники, только разъем и любые алгоритмы шифрования. Причем аргумент, что всё равно к устройству надо нести компьютер на сегодняшний день не актуален. Ну не компьютер, так нетбук, планшет, телефон, любое устройство, способное работать с внешней флешкой.
@user-ey2pf8zu1p
@user-ey2pf8zu1p 3 года назад
Это так для случая "быстрой шабашки" в виде упоминавшихся открывающихся ворот. Но ведь бывают и проекты в которые вложены десятки тысяч $. Может на самом STM на такие деньги и сложно придумать, но вот например, процессор грузит FPGA, а над её программой работали несколько человек месяцами. А уж людей "эмиттерных повторителей", с квалификацией, достаточной, чтобы утащить с поверхности, но недостаточной для самостоятельных идей приходилось встречать.
@sozdatelEd
@sozdatelEd 3 года назад
@@trinitroDimedrol что вы имеете ввиду говоря "блокировка чтения в OptBytes ломается за минуту"?
@denisdenisov9028
@denisdenisov9028 2 года назад
В начале говорит бутлоадер неудобно через флешку внешнюю, а потом городит целый программатор. Ты что там куришь автор? Загрузчик можно написать почти в любой МК, а в STM тем более.
@incxxxx
@incxxxx 10 дней назад
Instead of a long talk that is of little use, you should write and show a specific program that could run DFU and that would be great.
@yusupmagomedovify
@yusupmagomedovify 3 года назад
здравствуйте вы делаете проект на заказ? я хочу сделать контроллер для инкубатора очень продвинутый со всеми функциями которых я видел в других контроллерах и со многими другими которых я придумал нужных и не нужных и с большим запасом на будущее. на пример на STM32H7 моя почта yusup.g.m@ya.ru
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Да, я разрабатываю электронику на заказ, но не единичные, а серийные изделия от 10 штук. Вы можете прислать ТЗ на vmedintsev@yandex.ru и мы обсудим цену и состав данного устройства.
@staratelrusregion4652
@staratelrusregion4652 3 года назад
У вас это... Фотоны в кадре летают
@VladimirMedintsev
@VladimirMedintsev 3 года назад
Респект, это лучшая шутка сегодняшнего вечера...
Далее
Stray Kids <ATE> UNVEIL : TRACK "MOUNTAINS"
00:59
STM - how to fill the firmware
14:16
Просмотров 70 тыс.
Will the battery emit smoke if it rotates rapidly?
0:11