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

Sdílet
Vložit
  • čas přidán 8. 07. 2024
  • В ролике рассказывается о том, как можно загрузить прошивку в микроконтроллер STM без использования программатора. На примере показана работа встроенного загрузчика. Описаны методы работы DFU.
    Канал в телеграмм - t.me/vladimir_medintsev
    Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
    Канал на RuTube - rutube.ru/channel/1797552/
    Канал на CZcams - / vladimirmedintsev
    ------------------------------------------
    Если вы хотите поддержать автора канала номер карты Сбер:
    2202-2023-2480-4008
    ------------------------------------------
    00:00 - Для чего следует использовать DFU
    05:09 - Демонстрация работы и программирования
    08:44 - Предупреждение
    09:45 - Источники информации
    16:20 - Строим схему
  • Věda a technologie

Komentáře • 262

  • @Nidvoraich
    @Nidvoraich Před 3 lety +20

    Очень хорошая манера подачи!
    Сначала обрисована проблема, а уже потом метод её решения. Так смотреть в сто раз интереснее. Спасибо!

  • @Avtovet
    @Avtovet Před 3 lety +12

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Спасибо.

    • @MrLedball
      @MrLedball Před 3 lety

      Вроде тоже самое в видео, только без карты...

    • @vladimirlevchenko1470
      @vladimirlevchenko1470 Před 3 lety +1

      Надо переварить USB OTG

    • @pavelboboshkin3898
      @pavelboboshkin3898 Před 3 lety

      @@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
      плюс пример czcams.com/video/DuxySazq3AY/video.html

    • @user-jm1cp3bm3c
      @user-jm1cp3bm3c Před 3 lety

      Добрый день, если я по этой статье www.count-zero.ru/2017/bluepill/ заливаю загрузчик по usb, а потом через андроид приложение с телефона Zflasher stm32 прошиваю через dfu загрузчик, вопрос стереться ли мои бутлоадер и будет ли потом работать?

  • @ruslangabitov5202
    @ruslangabitov5202 Před 3 lety +7

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

  • @gaynoskov8736
    @gaynoskov8736 Před 3 lety +1

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

  • @danilv.l.2501
    @danilv.l.2501 Před 3 lety +1

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

  • @Sergey_Evdokimenko
    @Sergey_Evdokimenko Před 3 lety +3

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

  • @user-oi1zl6de8i
    @user-oi1zl6de8i Před 3 lety

    Спасибо, Владимир. Всегда интересно.

  • @user-nr8nf2nn2s
    @user-nr8nf2nn2s Před 3 lety +5

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

  • @vladimirp.68
    @vladimirp.68 Před 3 lety +1

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

  • @Energy1236
    @Energy1236 Před 3 lety +3

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

  • @BB-ti9bf
    @BB-ti9bf Před 3 lety +3

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

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Большое спасибо.

    • @vladimirlevchenko1470
      @vladimirlevchenko1470 Před 3 lety +1

      B B , ВЛ уважаемый человек , не зазорно упомянуть и ДМ

    • @BB-ti9bf
      @BB-ti9bf Před 3 lety

      @@vladimirlevchenko1470 да много кого, ВЛ как именно учитель по теории, ДМ хороший практик.
      Некоторые тут пристегивают фрика негоду, (не к ночи будет помянут).

    • @vladimirlevchenko1470
      @vladimirlevchenko1470 Před 3 lety +1

      B B , ну коли так добавим igorkawa

  • @AlexEXEvideo
    @AlexEXEvideo Před 3 lety +4

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

  • @personamems
    @personamems Před 3 lety

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

  • @nangelo0
    @nangelo0 Před 3 lety

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

  • @GennPen
    @GennPen Před 3 lety

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

  • @ALCohol-qu7ib
    @ALCohol-qu7ib Před 3 lety +2

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

  • @slavik5375
    @slavik5375 Před 3 lety +2

    Спасибо за видео. Прям просвещаюсь)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Да всегда пожалуйста!
      Делайте репост в тематических группах, социальных сетях и на различных сайтах. Этим вы очень поможете каналу.

    • @slavik5375
      @slavik5375 Před 3 lety

      а готовое устройство будет?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Да, готовое устройство будет.

    • @slavik5375
      @slavik5375 Před 3 lety

      @@VladimirMedintsev с нетерпением жду-с.

    • @slavik5375
      @slavik5375 Před 3 lety

      @@VladimirMedintsev извиняюсь за вопрос. А не скажите, что можно почитать, или посмотреть, чтобы разбираться в такой работе(из этого и других видел), как вы? База у меня есть, и очень даже не плохая(т.е ТОЭ, электронику, и программирования Си/С++ я знаю), но вот вопросы по разработки плат, и программирование МК у меня еще не освоены, должным образом

  • @cab674
    @cab674 Před 3 lety +1

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

    • @cab674
      @cab674 Před 3 lety +1

      pasteboard.co/Jrg8SrX.png
      это часть схемы от блока питания koyodza . com, идея с boot0 в свое время была моя, автору понравилось.
      Этот же способ входа в загрузчик можно встретить на многих дешевых китайских телефонах,
      там точно так же через транзисторы берется сигнал для boot с кнопок громкости которые нужно зажимать при включении.

  • @expertkis
    @expertkis Před 3 lety +17

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

    • @MikhailGoncharov-tl4cr
      @MikhailGoncharov-tl4cr Před měsícem

      я таких мыслей придерживаюсь аналогично. но что в голову приходит это написать свой драйвер под операционную ситему с API. а так я к тому что и я верю что USB напрямую возможно подключить к микроконтроллеру. другое дело что нужно написать свой АПИ и драйвер

  • @vitgo
    @vitgo Před 3 lety +2

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

  • @Michael_Kaa
    @Michael_Kaa Před 3 lety

    Есть возможность управления ножкой Boot от ножки RTS преобразователя USB-UART, очень удобно.
    Прошивка через UART часто спасала после куба с отключенным SWD.

  • @SpyCorp1313
    @SpyCorp1313 Před 3 lety +2

    Пришел палец вверх нажал. Тееерь можно посмотреть.

    • @SpyCorp1313
      @SpyCorp1313 Před 3 lety +2

      В недалёком прошлом через uart и dfu ,только и приходилось прошиваться. St-link за копейки от китайцев ещё не было. Позже правда китайский j-link появился. Но первое знакомство с stm было именно с dfu. Спасибо за ваши видео.

  • @DmitroVialkov
    @DmitroVialkov Před 3 lety +3

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

    • @vladimirlevchenko1470
      @vladimirlevchenko1470 Před 3 lety +1

      Очень интересно , если проект открытый, ждём Link 👍

    • @angerminsk
      @angerminsk Před 7 měsíci

      Здравствуйте! Проект открыт?

  • @serjkp
    @serjkp Před 3 lety +4

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

    • @ThunderBark
      @ThunderBark Před 3 lety

      То есть есть блютуз модуль китайский, который по uart все отсылает пакеты. Можно ли было бы, в теории, подключиться с компьютера к ком-порту блютуза и по той же программке от ст отправить все это?)

    • @serjkp
      @serjkp Před 3 lety

      @@ThunderBark конечно, осталось только научить кого-то переключать сброс и бут сигналы

    • @serjkp
      @serjkp Před 3 lety

      Подумал еще чуточку. Не, лучше вместо блутуса взять ЕСП8266 - у нее памяти дофига, сможет по веб-интерфейсу принять всю прошивку и спокойно перешить стмку. И рулить ресетом и бутом она также сможет самостоятельно. Дешевле вряд ли можно сделать.

    • @Michael_Kaa
      @Michael_Kaa Před 3 lety

      @@serjkp Сброс командой по uart програмно, boot на ножку rts uart`а.

    • @serjkp
      @serjkp Před 3 lety

      @@Michael_Kaa а как это реализовать? спаренный блутус прозрачен, поэтому придется ставить на слейве мелкий камень для управления, что рушит идею минимализации.

  • @olehdenysov8699
    @olehdenysov8699 Před 3 lety +1

    Спасибо за видео! Сам конечно использую ардуино в своих проектах (пока учусь программированию микроконтролера в целом). В общем по поводу ардуино даже идея одна появилась. На ардуино, бутлоадер установлен, можно ведь испозовать ESP в качестве програматора для микроконтролера используя линии TX, RX? Правда сразу соглашуюсь что громоздкость платы увеличивается но за счет ESP получается передать данные через интернет. Таким образом имеем возможность прошивать микроконтролер где он не доступен. Или это только в теории?

  • @SaihoS1
    @SaihoS1 Před 3 lety +1

    Тема конечно хорошая. Спасибо. Но пожалуй нет смысла в использовании микроконтроллера с большим флэшем. Если прошивка не зашифрована, то ее все равно легко снять при пересылке по USART, а если зашифрована, то проще и дешевле хранить ее в какой-нибудь serial EEPROM вроде 25Q64. Поэтому надо смотреть есть ли у штатного бутлоадера возможность дешифрования прошивки и если нет, то писать свой. Но что-то мне подсказывает что эта тропинка уже не раз хожена. Ну и еще одно замечание по поводу безопасности прошивки - существуют специализированные установки для снятия защиты с микроконтроллеров. В отношении STM32 они пока не справляются с STM32F3 и старше. Все что младше поддается достаточно легко. Это так... к сведению. На всякий случай.

    • @sovchem1275
      @sovchem1275 Před 3 lety

      "нет смысла в использовании микроконтроллера с большим флэшем" В примерах а 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$ за прошивку, хотя смотря для какого устройства прошивка. А такв большинстве случаев дешевле самому написать

  • @smyslovov
    @smyslovov Před 3 lety +1

    В видео показано применение USART загрузчика. DFU в контексте stm32 это про USB device firmware update - DFU загрузчик по usb. Позволяет прошить мк, в которых есть этот загрузчик. Stm32f103 например так прошить нельзя, хотя USB модуль есть. Размер прошивки может и превышать 1МБ (который и так не одним куском), как вариант взять мк по-проще и добавить к нему sd-карточку, экран и кнопки. и получим uprog для stm32 )

  • @user-ow5vt9gp7r
    @user-ow5vt9gp7r Před 3 lety

    Интересная тема, пойду читать про CANFD, как шить через него... Недавно возникла задача оперативно прошить примерно 80 изделий, в каждом по 2 микроконтроллера F4 серии. Решил проблему, использовав интерфейс командной строки st-link utilities - собрал .bat файл, вывел эхо и исполнитель только тыкал enter и перетыкал шнурок на разъемы SWD. Это к слову, вдруг кому пригодится :)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Да, про это даже видео на канале было. Про пакетную заливку.

  • @kardanium
    @kardanium Před 3 lety

    ST Link util умеет шить без нажатия на кнопки. Там есть такой режим, когда прошивка начинает заливаться сразу после подключения программатора к прошиваемому МК. По окончанию прошивки, отключаем программатор от прошиваемой платы и втыкаем следующую. Прошивка автоматически заливается.

  • @alexandrijchuck817
    @alexandrijchuck817 Před 3 lety +1

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

  • @alexeykapustin5827
    @alexeykapustin5827 Před 3 lety +1

    Все перехожу на STM

  • @antonvasyura3791
    @antonvasyura3791 Před 8 měsíci

    Спасибо за видео. А в чем преимущество рассмотренного метода по сравнению с DFU через USB? Судя по Datasheets и отладочной плате он там точно поддерживается.

  • @DenSvet
    @DenSvet Před 3 lety

    Для коммерческого применения следующие ограничения вижу:
    1 - не видно версию/верификацию прошивки (или данных) подключенного устройства (обновляемого контроллера).
    2 - придется отдавать клиенту открытый hex или bin, что рано или поздно приведет к появлению клонов.
    ИМХО самый надежный и дешевый вариант, как вы упомянули вначале ролика, SD карта или софт. программатор на ПК и самописный шифрованный boot в микроконтроллере с интерфейсом USB FS и защитой этой области от чтения. Так можно в открыты доступ выкладывать обновления, прикрытые AES шифрованием. Готовых решений от ST с обновлением и защитой от клонирования я не знаю.
    Для открытых проектов идея автономного программатора хорошая!

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      По секрету скажу, у ST давно есть такое решение с защитой от клонирования. Тут даже в комментариях одна дама его упомянула, а я кинулся ей рот закрывать с упреками что хлеб отнимает.. Вы только никому не рассказывайте. Это TrustPackageCreator. Он у них уже очень давно.
      И по пункту 1. Нет прошивка может расшифровать сама себя. И ее не обязательно отдавать в виде hex или bin но все будет.

    • @DenSvet
      @DenSvet Před 3 lety +1

      @@VladimirMedintsev Хорошо, спасибо, никому не скажу. Ознакомлюсь с pdf по TrustPackageCreator. Для меня привлекательна идея сделать подобную коробочку с фиксированным количеством копий "заливаемной" прошивки и защитой протокола программирования от клонирования. После чего отправить ее в замечательный город Шэньчжэнь для производства. Менеджер microchip, если не соврал, про новый PikKit3 рассказывал, что готовая фича тая у них есть.

  • @user-di8ib3rk9s
    @user-di8ib3rk9s Před 3 lety

    А если шить с помощью stm32flash в Линуксе , то стирать не надо? видимо при записи стирается автоматически? спасибо!

  • @valeriyvalentyn8933
    @valeriyvalentyn8933 Před 3 lety

    Здравствуйте Владимир. Попались ваши видео и сразу же подписался, смотрю с удовольствием. У меня есть вопрос, но не по отладочным платам и программированию. Есть реальный контроллер зарядки АКБ 36В, но вышедший из строя. Насколько я понимаю и разбираюсь нашел неисправности, но из зи отсутствия информации так и не был востановлен. Клиенту был предложен простой контроллер с балансировкой. Вопрос как бы решен, но плата осталась у меня и выполнена она как раз на STM32. Доступ к МК нашёл только к РА9, РА10, как их подключать к USB переходнику?. ВООТ сидит на земле(решаемо). Но самое трудное в востановлении оказалось найти ИС токового измерителя, нигде не могу найти ничего похожего. Чип 2.8х3.2мм 8 ног 4 из которых сидят на измеряемой шине остальные стоят в управлении заряд/разряд, шина не разрезана, видимо ХАЛЛ сенсор. Может что то похожее попадалось. Буду рад любому ответу. Заранее спасибо

  • @paveldukov
    @paveldukov Před 3 lety

    Владимир, спасибо.
    Каким софтом пользуетесь для отрисовки схем электрических принципиальных (на моменте 19:20)?

  • @ruslan.zhumabai
    @ruslan.zhumabai Před 3 lety

    Любуюсь вашим знанием, понимать структуру мк стм очень сложно. Вопрос такой, можете разобраться каким образом мк стм подключается к ПО Codesys v2? Назначение данного ПО программировать промышленных контроллеров. Например, для программирования ПЛК ОВЕН использует эту программу и в нем процессором ПЛК является мк стм. Нигде нету обзоров на эту тему. Спасибо!

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      ПЛК может содержать в себе микроконтроллер STM32, в качестве микроконтроллера. Однако программа codesis не занимается непосредственно программированием микроконтроллера, она лишь дает ему некоторую лоническую карту по которой уже программное зашитое в микроконтроллер выполняет функции возложенные на ПЛК. Так что вам это знание ничего не даст. Программировать микроконтроллер на codesis не получится.

  • @Thesnowiswhite
    @Thesnowiswhite Před 9 měsíci

    👍

  • @alexeysharandin7364
    @alexeysharandin7364 Před 3 lety

    Можно еще дальше пойти... Взять какого то простого китайца под линукс, например F1C100s за 100 рублей на алиэкспесс, и прошивать подключаясь через SSH или на прямую через монитор и мышь.

  • @7Hz_
    @7Hz_ Před 3 lety +1

    Полезное видео. Спс.
    Еще интересует такая тема, как бы скомпилировать код для stm в не ПК. А в часности на АНДРОИДЕ или онлайн.
    А может быть на Respberry pi с Ubuntu?
    Ставил Ubuntu на Андроид, но так как версия для андроида походу урезана, и при попытке установить trueStudio, пишет что система не поддерживает установку этого ПО.
    И вот так как что на андроид что на respberry pi используется linux для ARM, будет ли работь trueStudio на respberry pi.
    Ну вот такая мысль.

  • @chipsoft1
    @chipsoft1 Před 3 lety +3

    По-моему проще и дешевле изначально сделать свой бутлоадер, чтобы заказчик мог обновить все по ЮСБ, который есть везде. Всегда найдется "домохозяйка", которая что-то не туда вставит и подключит и спалит либо сам программатор, либо устройство :) А виноватым конечно же будет разработчик, потому как не учел защиту "от дурака".

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      А вы думаете с бутлоадером мало проблем кто-то куда-то не так вставит и выдернет? У всего есть свое назначение. У меня только бутлоадеров написанных больше десятка на все случаи жизни. Но к примеру контроллер ворот, котла отопления или прочего. С платой в 100 рублей себестоимости. Ну туда сидеть адаптировать бутлоадер???

    • @chipsoft1
      @chipsoft1 Před 3 lety +4

      @@VladimirMedintsev Как можно вставить не так в ЮСБ? Правильно написанный бутлоадер не окирпичит устройство, если прервать запись во время обновления. Если бутлоадеры уже написаны на все случаи жизни. то добавление их в новые устройства особо в себестоимости не повлияют. Для того же котла или ворот можно поставить разъем под SD-карту и обновляться с нее. Я просто не представляю случая, как "домохозяйке" рассказать, что она должна разобрать девайс и проводками куда-то что-то подключить :)

    • @sozdatelEd
      @sozdatelEd Před 3 lety +1

      ​@@chipsoft1 данный программатор разрабатывается не для домохозяек, а для автоматизации проверки устройств на стенде и дальнейшей заливки дампа с бутлоадером и первой ревизией прошивки. Таким образом проверочный стенд с подпружиненными иглами будет иметь у себя на борту программатор, который заливает тестовую прошивку и далее проверяет контрольные сигналы с платы поступившей со сборочного цеха. Если всё норм, то заливается бутлоадер и первая ревизия прошивки устройства. Чип блокируется этим же автономным программатором или при первом включении устройства...
      При партии от 50 плат и более диагностика качества сборки и заливка софта отнимает много времени, а если будет подобный "программатор - проверочный стенд", то за проверку можно посадить студента, который будет ставить платы на стенд и нажав кнопку "Тест платы" ждать сигнала "исправно" или "брак".

    • @chipsoft1
      @chipsoft1 Před 3 lety

      @@sozdatelEd В видео об этом небыло сказано ничего. С технологией производства электронных девайсов, и описанной вами схемой я знаком, и все правильно вы пишите. Т.е. по сути автор хочет сделать альтернативу Segger Flasher/PE Micro Cyclone, о чем тоже небыло сказано. Если есть подобные проекты, интересно было бы посмотреть/пощупать.

    • @sozdatelEd
      @sozdatelEd Před 3 lety

      @@chipsoft1 ну так мы же программисты. Есть документация, согласно которой описано как программировать микроконтроллер. Например для микроконтроллеров ATmega в каждом datasheet описан SPI Serial
      Programming Algorithm. Берём читаем и пишем свой автономный программатор. При необходимости пишем алгоритм проверки сигналов с контрольных точек и вывод результата проверки на дисплей, или звук, или светодиод. У меня для avr-микроконтроллеров есть автономные программаторы, а вот для stm я замахнулся на интерфейс SWD, но пока что не разобрался с ним полностью. Вариант "программирование через DFU" я почему-то не рассматривал. А сейчас наверно займусь в свободное время.

  • @f33net
    @f33net Před 3 lety

    Матушки..., а я было подписался на канал, но тут сплошная чушь бестолковая... Обновление прошивки на месте через встроенный бутлоадер - вот это мастер, ни доли сомнения. :)))

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Блин, ну зачем меня так расстраивать, я то думал будет еще один подписчик... Подпишись назад плизз. Я тебя чему умному научу. Ну пожалуйста.

  • @user_user_320
    @user_user_320 Před 3 lety

    Интересные видео))
    Прошу не считать меня занудой, но чтобы не вводить новичков в заблуждение, немного Вас поправлю. Не протоколы CAN/UART/I2C, а интерфейсы. Протокол это чуть другое.
    Не буду кидаться терминами, знающие согласятся, а не знающие погуглят)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Когда вы говорите о физическом устройстве UART это интерфейс. Когда вы говорите о определенной деятельности (ну к примеру отправка AT команд и подобное) то это протокол. Если как вы рекомендовали погуглить по словам "uart protocol" хоть по русскому аналогу вы найдете тому массу подтверждений. Более того допустимо сказать "протокол обмена uart" даже в учебной литературе. Разница в "действие" и "устройство".

    • @user_user_320
      @user_user_320 Před 3 lety

      @@VladimirMedintsev, совершенно верно, стандартизированая прием/передача данных по какому-либо интерфейсу и является протоколом)
      P.S.
      А по поводу Хабра: вы же опытный разработчик, не совсем понимаю зачем ссылаться на какую-то статью, если и сами знаете определение интерфейса и протокола?!
      P.P.S.
      Это ведь на самом деле, разные вещи;)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Статья это первый пример который попался. Думал неужели я ошибся.

  • @dr.emmettbrown8466
    @dr.emmettbrown8466 Před 3 lety

    Если говорить про конечное изделие в котором предусмотрен апгдейд прошивки пользователем, то может в само изделие поставить микроСД слот + самый дешевый МК, который будет читать бинарник с SD карты через SPI и перезаливать его основной МК по UART, предварительно самостоятельно дернув нужные ноги основного МК. Удорожание проекта ИМХО совсем небольшое, зато очень удобно.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      К примеру малюсенькая плата контроллера ворот. Надо только изменить в новой прошивке тайминги работы реле. Ну к чему там слот для микроСД, он же просто сгниет в этих воротах. Ведь не все изделия большие, как правило большинство это малая автоматизация.

    • @dr.emmettbrown8466
      @dr.emmettbrown8466 Před 3 lety +1

      @@VladimirMedintsev Ну естественно если это целесообразно.

    • @mmikrik
      @mmikrik Před 3 lety

      @@VladimirMedintsev и вообще, надо уже научится писать так чтоб не обновлять в будущем. А если что то полетело то пусть покупают новое устройство.. или плату.

  • @vernnms78
    @vernnms78 Před 3 lety

    Спасибо за информацию. Я подумал... если STM такой мощный инструмент, то с таким же успехом его можно использовать для прошивки Atmel. Что мешает вывести ноги rx,tx контроллера, забабахать конвертер уровней и лить всё, что угодно с той же флэшки? Хошь -- загрузчик, хошь -- сам бинарник...

  • @kiryamify
    @kiryamify Před 3 lety +3

    В бутлоадер можно попасть не только с кнопкой boot0, но и из своей программы. Я использую кнопочку на устройстве при его старте для того, чтобы установить MAGIC_BYTE в память и перезагружаю контроллер. При загрузке (перед инициализацией переферии, я проверяю MAGIC_BYTE и прыгаю по адресу бутлоадера.)

    • @kiryamify
      @kiryamify Před 3 lety +2

      Пример для 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  Před 3 lety

      Спасибо :)

    • @leharuso
      @leharuso Před 3 lety

      @@kiryamify , а это поведение (и адрес) гарантируется производителем для будущих ревизий того же микроконтроллера?

    • @trymbachyaroslav3828
      @trymbachyaroslav3828 Před 3 lety

      А если вы по ошибке зальете прошивку в которой не будет этого куска кода? Ведь тогда все-равно придется лезть к boot0.

    • @kiryamify
      @kiryamify Před 3 lety

      Trymbach Yaroslav да, на этот случай есть пятачек

  • @dima020275
    @dima020275 Před 3 lety

    А есть что-нибудь подобное, чтобы прошивать с SD-карты? На платах управления 3Д принтерами от Big tree tech на основе STM32 это как-то сделано, но как оно внутри устроено непонятно.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Да как не понятно, там все предельно просто. Они написали свой загрузчик расположенный в младших адресах памяти и он грузит прошивку. Ну как бы сложного нет, все разработчики рано или поздно пишут свой загрузчик для своих проектов. Тем более с SD карты ну это вообще не проблема.

  • @adminroot1345
    @adminroot1345 Před 3 lety

    usb, uart, rs232, rs485 можно пробрасывать через ethernet.)

  • @ArtemKAD1
    @ArtemKAD1 Před 3 lety

    В AVR программатор как железка тоже не нужен вообще. В классике надо только программа на компе и преобразователь UART компа в SPI внутрисхемного интерфейса программирования микросхемы.

  • @vitgo
    @vitgo Před 3 lety

    кстати, а вы не использовали st link для отладки ? там есть утилита для командной строки, но я так и не понял как ее пользовать... команды из командной строки выполняются, а вот как по шагам по программе идти просматривая изменения в регистрах\памяти ? консольная программа выполняет команды и выходит опять в ос... а можно ли по шагам смотреть исполнения, выбирая след шаг сделать или просмотр памяти\регистров ?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Я не только использую ST-Link для отладки, но и на моем канале есть ровно несколько видеороликов, в которых я показываю создание собственных клонов данного программатора. Даже с гальванической развязкой клон есть.

    • @vitgo
      @vitgo Před 3 lety

      @@VladimirMedintsev да программатор есть, китайский st link v2... интересует именно управление программатором из командной строки. нужно для программного управления из другой программы... пороюсь в видео..

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Вот в этом видео - czcams.com/video/cbrzsWrvTbg/video.html я рассказывал в каком файле документации есть описание команд командной строки и как этим пользоваться.
      На канале давно все есть.

    • @alexandrakovshova3748
      @alexandrakovshova3748 Před 3 lety +2

      для того, чтобы из командной строки выполнять отладку и идти по шагам, смотреть регистры и т.д. нужно использовать дебаггер - gdb

  • @ivanivan3815
    @ivanivan3815 Před 3 lety +2

    Интересной альтернативой является апгрейд прошивки посредством NFC, вот небольшая демка от STM
    czcams.com/video/cx3u8a0uiUI/video.html
    Мне понравилось, что за счет поддержки режима антиколлизий можно одновременно по беспроводному каналу прошивать несколько плат (на видео 3 шт). Приобрел девкит, попробовал, все работает, сама ST25DV04 стоит копейки (порядка 40 руб). Кстати, вместо специализированного ридера для заливки прошивки можно
    использовать любой смартфон с поддержкой NFC, о чем у STM тоже есть видео и никаких тебе проводов, дополнительных разъемов, программаторов.. удобно ;) Не воспринимайте как рекламу, просто решил подосвоить новую для себя
    технологию и поделиться с коллегами такой возможностью.
    ЗЫ. Сейчас в работе прошивка для считывания данных посредством NFC с IoT логгера.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Весьма интересно, посмотрю с удовольствием.

    • @ivanivan3815
      @ivanivan3815 Před 3 lety

      @@VladimirMedintsev Если интересно, здесь czcams.com/video/WyNey42oIHE/video.html льют со смартфона 110 КБ прошивки за 46 сек, смотреть с 2 мин 15 сек

  • @oleggora5362
    @oleggora5362 Před rokem

    Можете подсказать, если есть плата рации с пустым контроллером, и есть файл прошивки, который прошивается если рация рабочая. Можно этот файл прошить через st-link?

    • @VladimirMedintsev
      @VladimirMedintsev  Před rokem

      Может можно, а может нельзя, мне отсюда не видно.

  • @allaksusallaksus2402
    @allaksusallaksus2402 Před 3 lety +5

    Неудобство uart заключается в том что в stm32 сделали загрузку от многих uart а не от одного, приходиться физически отключать другие uart зависимые интерфейсы иначе загрузчик то и дело настраивается на них.

    • @BB-ti9bf
      @BB-ti9bf Před 3 lety +1

      -скальпель и паяльник- DIP переключатели вам в помощь. (спасибо за заметку, учту})

    • @allaksusallaksus2402
      @allaksusallaksus2402 Před 3 lety

      @@BB-ti9bf DIP переключатели слишком много места занимают кроме первого есть другие способы
      - писать свой загрузчик
      - использовать в схеме логическую схему для отключения лишних rx сигналов

    • @sovchem1275
      @sovchem1275 Před 3 lety

      А 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 Před 3 lety

      USB не подходит потому-что
      - необходима гальваническая развязка, у USB она сложнее
      - необходимо чтобы не было проблем с установкой драйвера устройства, права пользователя могут быть ограничены здесь
      -- при вынужденной замене нп микроконтроллер другого производителя usb не кажется столь надежным вариантом по сравнению с uart
      - через этот порт необходимо настраивать изделие, USB по сравнению с uart создает дополнительные сложности

    • @allaksusallaksus2402
      @allaksusallaksus2402 Před 3 lety

      На счет очередности.
      Наверное работает следующим образом, с какого uart порта вперед придет стартовый бит на том и останавливается, а другие больше не слушает.
      На практике порт загрузки не работает если на другом порту левая активность

  • @tutrututu4028
    @tutrututu4028 Před 3 lety

    здраствуйте
    может сможите помоч?
    обясните пожалуйста чо такое дфу и как поступить с граф планшетом huion он не выходит из дфу и определяется пк как "GD32 in dfu mode"
    это уже кирпич или можно оживить?
    (если возможно соет дайте куда мотреть и где ковырять ибо в нашем з***ке "мастера" смотрят на ету штуковину как на новые ворота)

  • @-Darkweider
    @-Darkweider Před 3 lety +1

    Наверно только у меня валяется где-то в столе PicKit2 который еще в прошлом веке исполнял эти чудеса. Правда там всего 2х24512, но тогда и код компактный умели...

    • @alexeykapustin5827
      @alexeykapustin5827 Před 3 lety

      Не только. У меня еще и PicKit3 есть

    • @titr7933
      @titr7933 Před 3 lety

      Я тоже ещё использую😀

  • @konstantingolinskiy4944

    А у вас нету случайно примера как делать обновление через СД карту? =) Например написали программу моргает светодиод допустим 1 раз в секунду залили в плату через ст-линк ( к плате припаян картридер ).
    Плату потом отдали например человеку который далёкий от всего этого. Потом написали новую прошивку например мигает уже один раз в две секунды,
    компилируем программу в бинарник и допустим скидываем человеку у которого устройство, он просто скидает этот бинарник на карту памяти вставляет в устройство
    перегружается, идет проверка на то что программа версия новая и само перепрашивается, если версия текущая или старая то нечего не происходит устройство просто запускается. Было бы интересно

    • @sovchem1275
      @sovchem1275 Před 3 lety

      В H7 кубе есть пример для загрузки и работы с SD, MMС итп. Те если в устройстве есть SD то на ней можно хранить всю прошивку контроллера с которой он и будет загружаться. Это особенно выгодно если использовать мощный контроллер с маленькой флеш, например 128кб как в H750 с 480мгц и 1мб ram за 250руб

  • @user-je8oz6lh6w
    @user-je8oz6lh6w Před 3 lety +1

    Вот у меня как раз именно сегодня появилась задача смены прошивки через UART. Правда мне это надо сделать удалённо через модем и ножку BOOT0 к питанию подключать будет некому. Посоветуйте что нибудь?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Без подключения BOOT0 к логической 1 магия не работает. Не колдуется.

    • @user-je8oz6lh6w
      @user-je8oz6lh6w Před 3 lety

      @@VladimirMedintsev Понятно. Придется копать по бутлоадер

    • @sovchem1275
      @sovchem1275 Před 3 lety

      А по 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 Před 3 lety

      как вариант аппаратно-програмный метод.Можно, например rc цепочку использовать, расчитать только время небходимое. Ножку БУТ0 и любой свободный пин соединяем вместе к rc цепочке. Когда нужно перевести контроллер в режим загрузки, подаем питание на совмещенный пин - заряжаем конденсатор и делаем систем резет. Сам конечно так не делал, но теоретически должно времени хватить. Правда все это как-то не резонно. Уж проще свой загрузчик написать и либо сд карту прикрутить или spi флешку и туда писать, а потом во внутреннюю флеш контроллера, ну или если совсем хардкор то сразу в память самого мк.

  • @Leech00001
    @Leech00001 Před 3 lety +1

    Владимир обратите внимание вот на это программное обеспечение play.google.com/store/apps/details?id=com.martinloren.stm32utils а также вот ссылка на проект stm32utils.martinloren.com/ Мне кажется это в тему данного видео.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      милый проект. автор себе тихонько так продукт выдал.

  • @user-ec2jr6pv1s
    @user-ec2jr6pv1s Před 3 lety

    Если не юзал ардуину и атмегу, стоит сразу с стм32 начинать?

  • @janeg7110
    @janeg7110 Před 5 měsíci

    Привет АВТОР ! Прибор ,, Chip Soft MID ,, ( на контроллере STM32F105RCT6 ) , думаю что слител bootloader (загрузчик) . Подскажи , как мне восстановить его ?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 5 měsíci

      Воспользоваться программатором и записать загрузчик в память микроконтроллера.

    • @janeg7110
      @janeg7110 Před 5 měsíci

      ST-LINK V2 и программа от ST Programer ??? @@VladimirMedintsev

    • @VladimirMedintsev
      @VladimirMedintsev  Před 5 měsíci

      @@janeg7110 да, но вам еще и потребуется сам бутлоадер (загрузчик) вашего устройства. Если вы думаете что он слетел то его нужно будет записать.

    • @janeg7110
      @janeg7110 Před 5 měsíci

      @@VladimirMedintsev А вот это как раз интересно !!! Где его надыбать то ?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 5 měsíci +1

      @@janeg7110 У производителя устройства.

  • @user-zh9yr8pp3e
    @user-zh9yr8pp3e Před 2 lety +1

    Хотелось бы, построить на отладочных платах серии STM32.... программатор для НАНД флешь . Чтобы читал БУТЫ, и тд итп Возможно ли это сделать?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety

      Да, конечно возможно.

    • @user-zh9yr8pp3e
      @user-zh9yr8pp3e Před 2 lety

      @@VladimirMedintsev Да ,я знаю Но где бы посмотреть последовательность . В электронике я более менее , а в программных делах я вообще, нулевенький

    • @VladimirMedintsev
      @VladimirMedintsev  Před 2 lety +1

      Ну тут я вам помочь не смогу, такое в открытый доступ не выкладывают.

  • @cb_q
    @cb_q Před 3 lety +2

    а как быть с защитой от клонов? ведь штатный загрузчик не проверяет валидность прошивки, что позволяет:
    1. прошивать прошивкой от разработчика любое кол-во устройств (в том числе и клонов - копия платы исходного устройства),
    2. прошивать кастомной прошивкой изначальной устройство - в этом случае хотелось бы обезопасить разработчика от головной боли в виде багов/глюков и их последствий.
    В идеале это должно решаться путем шифрования прошивки, наличием кастомного bootloader'а в самом МК, который умеет эту прошивку валидировать, расшифровывать и записывать в МК.
    Но есть ли такая возможность? - из беглого поиска я нашел что есть возможноть залочить весь МК от чтения/записи. Это не подойдет, т.к. custom bootloader тоже будет затерт.
    а без защиты - любой сможет получить прошивку (в том числе кастомный bootloader). в случае использования асиметричного шифрования это не позволит заливать кастомную прошивку в МК, но позволит наделать дубликатов устройств с заводской прошивкой.
    у AVR это решается выделение отдельной секции flash под bootloader, запрет чтения этой секции из основной программы и возможность перезаписывать основную часть flash из кода bootloader'а. - таким образом прочитать bootloader программатором или кастомной прошивкой нельзя и делать дубли устройств тоже нельзя, т.к. официальная прошивка зашифрована а на будлях нет bootloader'а, который может её расшифровать.
    как с этим обстоят дела у STM32?

    • @BB-ti9bf
      @BB-ti9bf Před 3 lety +1

      Вы там шо такое космическое и защищенное делаете? Если уж на то пошло, то вроде как за 5-10 килобаксов можно сделать разрушающий анализ и физически на кристалле напрямую снять защитные фьюзы и почитать чего где залито

    • @cb_q
      @cb_q Před 3 lety

      @@BB-ti9bf как что? skynet на IoT). ну а по делу - просто не хочу чтобы кто-то наделал дублей моего устройства и ковырял его прошивку.
      и как-то это все-таки можно сделать, потому что есть пример - DSO138.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Вы как-то далеко от темы данного ролика, но в друх словах все вами описанное не проблема. Все это решается. Я не буду 100500 слов писать, но это не проблема.

  • @sergovan79
    @sergovan79 Před 3 lety

    День добрый! Затык на ровном месте. На девборде с STM32f103c8t6 все прекрасно получилось с первого раза. Изготовил уже свою плату и flash loader eе не видит. Процы покупал с ЧиД. Перепаивал процы, все питания и земли ОК. boot0, boot1, reset OK. CTS для uart1 подтянул к земле.
    На дорожках rx, tx ничего не висит, да и запаянных деталей на плате минимум, только для прошивки.
    Паршиво, что самоуверенно даже на вывел SWD для альтернативной прошивки. Судя по даташитам
    DFU в этих процах должен быть по любому. Возможно ли, чтобы в данных процах не был прошит DFU?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Нет, это не возможно

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      По сути есть условие запуска для каждого микроконтроллера. Оно должно быть выполнено. Для вашего чипа. Питание подано на все ноги и цифровое и аналоговое. земля на все ноги. Вывод reset подтянут резистором к +, выводы rx,tx по назначению, cts не баловаться, boot согласно документации. Если все это выполнено то будет работать, если не работает, то значит вы что-то из описанного выше не сделали.

    • @sergovan79
      @sergovan79 Před 3 lety

      Да, все понимаю. Тем более рядом есть рабочая плата. Вот и пытаюсь найти отличия. Но работа с МК это бег по минному полю, никогда не знаешь где бахнет:)

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Да ну вы загнули. С современными микроконтроллера и сложностей нет вообще. Работают хоть гвоздем их паяй.

  • @Beatleman91
    @Beatleman91 Před 3 lety

    Эммм... Я правильно понял, что вы верхний кусок от платы Nucleo описали, который программирует второй кусок?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Нет, не правильно. Верхний кусок нуклео, программирует нижний кусок по интерфейсу SWD. SWD это отладочный интерфейс, а здесь DFU - загрузчик.

    • @Beatleman91
      @Beatleman91 Před 3 lety

      @@VladimirMedintsev верхний кусок платы Nucleo можно отпилить и получить платку с разъемом, которой у вас на 18:53, ну не считая вывода Dev_BOOT

  • @sergatmel8242
    @sergatmel8242 Před 3 lety

    Всё круто ! 👍
    Но, 3 кБ для блинкера ... 🤔

    • @ArtemKAD1
      @ArtemKAD1 Před 3 lety

      :)

    • @user-wx4dd4gu6l
      @user-wx4dd4gu6l Před 3 lety

      За HAL надо чем-то платить. А что такое 3 кБ для STM32F103RG - так, мелочь)))

    • @ArtemKAD1
      @ArtemKAD1 Před 3 lety +1

      @@user-wx4dd4gu6l Лет 20 назад(в начале нулевых) в 2кБ AVR у меня влезал весь код автосигнализации вместе с полноценной обработкой криптографии радиоканала. Если 3кБ это для STM32 "так мелочь", то не удивлюсь, когда аналогичный код в STM32 займет килобайт 20, а то, что влазит в 256кБ AVR в 1МБ STM32 просто не войдет.

  • @MrLedball
    @MrLedball Před 3 lety +3

    Прошивка по usb кажется более универсальной... или я не прав? Хотя бы можно отправить прошивку по электронной почте. Правда, желательно, в защищенном виде...

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Прошивка по USB предполагает что вы и компьютер должны придти к устройству, а автоматичный программатор можно положить в карман и компьютер не нужен.

    • @MrLedball
      @MrLedball Před 3 lety

      Vladimir Medintsev автоматический можно с USB сделать. Сложнее, но можно же? Ну и передача прошивки заказчику - тоже важный момент.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Автоматический можно и USB сделать, а смысл. Мне заказчик заплатил за новую версию прошивки, я ее написал. Мне зачем себе голову ломать. Это его деньги, его изделие. Мне надо прошить максимально дешево. Я даю ему в руки программатор 400 рублей стоимости и пусть прошивает. Ну что ценного к примеру в прошивке автоматических ворот или печи для кирпичей. 99,99% прошивок не стоят того чтобы их взламывать. Они банальные автоматы.

    • @MrLedball
      @MrLedball Před 3 lety +1

      @@VladimirMedintsev получается, под каждую смену прошивки ему нужно передать(выслать) программатор? тогда уж проще китайский st-link ему вручить и высылать прошивки, если что... а с ноутом можно и подойти к устройству все-таки... или этот программатор должен быть ну прям очень удобен и с возможностью залить в него новую прошивку на компе...

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      @@MrLedball Вообще-то на последних минутах этого видео в концепте схемотехники сказано что программатор подключается к компьютеру по USB, туда помещается файл обновляемой прошивки и дальше заказчик с ним работает уже без участия компьютера. Соответственно мне не надо ему передавать каждый раз программатор. Достаточно дать саму прошивку. Кроме того, использование STLink и компьютера подразумевает что он должен к каждому устройству идти с этим компьютером и там делать какие-то мало понятные для него операции. А тут пришел, подключил, кнопку нажал... Более того тут и прошивок может быть много и он сможет сам их менять какая ему нужна.

  • @MrLedball
    @MrLedball Před 3 lety +1

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

    • @cb_q
      @cb_q Před 3 lety +3

      у STM32 есть защита на чтение/запись - чтобы прочитать или записать новые данные эту защиту нужно снять, но при этом стирается прошивка МК.

    • @MrLedball
      @MrLedball Před 3 lety

      Павло Балтаєв при прошивке через uart - ее можно поставить? Хотя, никто не мешает сканировать процесс обмена по uart...

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Защиту прошивки можно поставить при ее загрузке по уарт, более того, сама прошивка ее так же может поставить при первом запуске.

    • @BB-ti9bf
      @BB-ti9bf Před 3 lety

      @@VladimirMedintsev а как насчет подключения логического анализатора к пинам UART и слива в момент прошивки? Тут любая криптография летит к черту

    • @MrLedball
      @MrLedball Před 3 lety

      Vladimir Medintsev однако, отдавая программатор «на руки» вы фактически передаете прошивку. не привязанную к конкретному железу. Верно?

  • @user-lf6wm5xb8d
    @user-lf6wm5xb8d Před 3 lety

    Защищенные прошивки и в защищенный контроллер так не прошить, верно?

  • @MrLedball
    @MrLedball Před 3 lety

    Вот бы еще прошивку через ethernet рассмотреть.

    • @BB-ti9bf
      @BB-ti9bf Před 3 lety

      Ну там через W5500

    • @MrLedball
      @MrLedball Před 3 lety

      B B у меня используется lan8720, но это не столь важно

    • @t966rt
      @t966rt Před 3 lety

      @@MrLedball самописный бутлоадер, tftp, ftp(s), http(s) или "велосипед" + если надо шифрование, вроде у ST есть апнот

  • @mega_mak
    @mega_mak Před 3 lety

    Можно шить через самодельный UART программатор с WIFI (esp) который подключается к удаленному серверу через смартфон раздающий сеть или через ноут по локальной сети. Интересный будет проект ))0). Топим за это ребят.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Каких ребят будем за это топить?

    • @mega_mak
      @mega_mak Před 3 lety +1

      @@VladimirMedintsev отбитых наглухо радиолюбительской контузией.

  • @xintreavideo
    @xintreavideo Před 2 lety

    Какая разница, покупать программатор, или плату UART. И того и того у пользователя обычно нет в наличии. В STM32 BluePill вообще дичь: есть разьем USB, но по нему можно только подключить питание. И чтобы воткнуть в компьютер, нельзя просто так взять и соединить проводом USB. Надо либо SWD разъем через программатор в USB порт втыкать, либо через UART преобразователь растыкать пины и в USB порт втыкать. Разработчики Ардуино с этим не стали мириться, и каждая плата идет с FTDI микрухой, которая позваляет взять кабель и соеденить с компьютером. И захапали огромный кусок рынка домашних самодельщиков, сделав элементарную вещь. А в STM32 все никак догадаться не могут хотя бы выпускать платы с готовым DFU загрузчиком во флеше, чтобы хоть так позволить пользователю работать через USB без покупки дополнительного железа.

  • @ibrag2012
    @ibrag2012 Před 3 lety +2

    Я б заюзав самий дешевий чип CH340E разом з андроїд-смартфоном (але я думаю як програміст та не у всіх є ведроїд), ідея сподобалася, дякую!

    • @wirtdonners4212
      @wirtdonners4212 Před 3 lety +2

      Да брось ты этот обезьяний язык. Говори на русском. Он понятнее и удобнее.

  • @Insideus2786
    @Insideus2786 Před 3 lety +1

    Спасибо за видео! Возник резонный вопрос. А зачем делать автономный программатор для заказчика вместе с самописным софтом, если на этом же МК можно сделать полноценный ST-Link на той же плате и прошивать через уже написанную программу? По денежным затратам я никакой выгоды не увидел, а по факту легче подключить USB кабель напрямую к устройству и прошить без всяких внешних программаторов.

    • @vladmodq
      @vladmodq Před 3 lety

      Ну не удобно к устройству с ноутом лезть, а подключить донгл и нажать кнопку куда удобнее

  • @sovchem1275
    @sovchem1275 Před 3 lety +1

    *Привет, так а чего 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 Před 3 lety

      Можно и автономный USB прогер сделать на это примере. Правда не представляю устройств, куда РАДИ ОБНОВЛЕНИЯ не подобраться с нетбуком/андройдом....

    • @cb_q
      @cb_q Před 3 lety

      @@sovchem1275 тут вопрос удобства обновления, а не отсутствия возможности подключиться нетбуком. сравните:
      1. нетбук, usb кабель, программа, которая за один раз прошивает одно устройство и требует нажать 5 раз на кнопку далее.
      2. устройство со шлейфом, которым подключается к готовому устройству и перепрошивает его автоматически. если перепрошиваемое устройство портативное перепрошивальщик имеет внешнее питание и запитывает его от себя, если устройство стационарное - перепрошивальщик есть портативное устройство и питаться может по шлейву от перепрошиваемого устройства. процесс обновления проходит по сценарию - подключить шлейф, дождаться индикации зеленого светодиода, если вместо зеленого, например, красный что-то пошло не так, на этот случай, допустим добавить функцию отката на предыдущую прошивку (которую прошивальщик может автоматом считать и запомнить перед перепрошивкой) в виде отдельной кнопки.
      во втором случае действий намного меньше, и если устройств по цеху, например, сотни, то это серьезно сэкономит время.
      можно заморочиться и автоматизировать прошивку на ПК (т.е. прошивальщик запущен все время и ждет подключения новых устройств и прошивает их без подтверждения), но будет ли кто-то это делать?

  • @olegctef7999
    @olegctef7999 Před 3 lety +1

    Спасибо, Владимир!
    Зачем так сложно?Не проще ли написать свой загрузчик для каждого устройства ?
    Используя ваш отдельный программатор требуются дополнительные затраты средств и времени.
    С собственным загрузчиком вы защищены от копирования.
    В вашем случае, если конкурент захочет копировать ваши устройства ему будет достаточно получить доступ к вашему программатору, так как запись в МК идет уже в чистом виде и скопировав ваш код можно писать в чистый МК.
    С собственным загрузчиком данные передаются закрытые и если в устройстве нет вашего загрузчика то железо копировать бесполезно

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Если вы внимательно смотрели видео, то могли заметить, что это ответ на вопрос подписчика. Более того Эдуард в своих комментариях под этим видео описал какую ценность это имеет. Загрузчик это очень хорошо, но есть масса примеров когда данный способ использовать рациональнее.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      Второе, тут под видео каждый второй комментарий просто параноя по поводу "украдут мою прошивку". Блин да кому это надо? Ну что такого ценного в вашей прошивке. Ее вместе с платой воровать муторно и дорого. Каждый раз когда приходит заказчик и говорит давай украдем, проще разработать заново чем копировать чужие ошибки.

    • @olegctef7999
      @olegctef7999 Před 3 lety +1

      @@VladimirMedintsev Да я понимаю, мне нравятся ваши видео и подача материала, просто хотелось что бы вы обозначали не только плюсы, но и минусы)
      Не в коем случае не хотел вас обидеть)
      Описанное вами решение на мой взгляд оправданно только в случае, если МК не имеет внешних интерфейсов, но если они у него есть более рациональным будет использование собственного загрузчика и процедура обновления не будет требовать от обслуживающего персонала дополнительных движений в виде замыкания boot0.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +1

      @@olegctef7999 Да при чем тут обиды. Я нигде не говорил о том, что персоналу необходимо замыкать boot0 это будет делать сам программатор. Не везде есть возможность и не везде целесообразно делать свой загрузчик. Есть разные технологии и они нужны каждая в своем случае. Ну это все равно, что я сказал бы, зачем видео про i2c если есть spi. Тут та же картина. Есть масса применений где данный вариант гораздо лучше чем самописный бутлоадер. И в качестве примера я привел вам сообщения Эдуарда. А вы тут сразу про обиды. Блин хоть не отвечай вообще на комментарии.

    • @olegctef7999
      @olegctef7999 Před 3 lety +1

      ​@@VladimirMedintsev Иногда проще скопировать чужие ошибки чем набить свой)
      Параноя имеет место быть, но и иногда это горький опыт(

  • @lionlinux
    @lionlinux Před 3 lety

    мне представляется что USB Otg ГАРАЗДО ИНТЕРЕСНЕЕ... без преобразователя UART-USB получается?

  • @lionlinux
    @lionlinux Před 3 lety

    если stm лучше чем avr, где народный Транзистор Тестер на STM?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      А это ваше народное оно сколько в сотых процента от профессионального потребления микроконтроллеров? Надеюсь понимаете что это так себе критерий. Лучше хуже ну реально как в песочнице.

  • @leharuso
    @leharuso Před 3 lety

    А кто-нибудь поставляет заказчикам файлы DFU, созданные в DFU File Manager?

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

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

  • @adminroot1345
    @adminroot1345 Před 3 lety +1

    Как вариант это проблема решается микропитоном из коробки.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +2

      Вот только этого ужа нам не хватало.

  • @dmitriicharuiskii
    @dmitriicharuiskii Před 10 měsíci

    Вот смотрю не первое видео и думаю в чем тут автономность. Ведь автономность (из википедии) - независимость какой-либо одной из управляемых величин от изменений остальных управляемых величин. Допустим я одной управляемой величиной приму сам процесс прошивки, автономность я тут вижу - просто открыл программу и залил (как минимум), а как максимум запустил что-то на компе или запустилось что-то на серваке и оборудование прошито. А тут как минимум зависимость от установления BOOT0 в "1", а в Вашем варианте ещё и ресетнуть надо. Т.е. процесс прошивки зависит от дополнительных двух управляемых величин. Чем это отличается от привычного процесса прошивки, лично для меня, непонятно... Но в любом случае спасибо, много полезного.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 10 měsíci

      Понять не могу зачем вы старательно натягиваете сову на глобус. Ей же больно.
      Вы взяли определение из систем регулирования и попытались дальше вокруг этого строить какие-то рассуждения. А если взять обычный словарь, то выяснится, сто слово автономность это способность функционировать самостоятельно без какого либо дополнительного оборудования и прочего.
      Можно сделать программатор который будет работать без компьютера? Да, можно, значит он будет автономен.

    • @dmitriicharuiskii
      @dmitriicharuiskii Před 10 měsíci

      @@VladimirMedintsev Извините, но всё же... Сове больно, да и от того у неё такие большие глаза, что в попытках найти ответы на свои вопросы, зацепившись за слово автономность, пытается её там разглядеть. Автономный программатор и обычный программатор, в чем разница? Звучит как плюс к цене или просмотрам =) Это ни сколько не претензии, сам разобраться хочу.

  • @Foomichoff
    @Foomichoff Před 3 lety

    Это защита от дурака, потому что подцепившись простым логическим анализатором за 300р с алиэкспресс, на RХ и ТХ можно получить прошивку без каких либо проблем

  • @trinitroDimedrol
    @trinitroDimedrol Před 3 lety

    В конце Вы упомянули про криптографию для защиты прошивки. Ничего не выйдет. Бинарные данные по UART передаются в "сыром" незащищённом виде, зашитый в МК бут никак не защищает свою прошивку.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety +2

      Это не верное утверждение. Может быть закодирована наиболее ответственная часть прошивки, просто закодирована. По уарт эта часть будет так же передана в зашифрованном виде. Ее расшифровка произойдет уже в памяти самого микроконтроллера при первом запуске. Соответственно расшифрованая часть будет записана в те же или другие страницы flash. А можно вообще не писать во flash а открывать и выполнять в RAM. Кроме того, я вот который год понять не могу, да кого же все так боятся? Что блин там такого в ваших прошивках? Такое впечатление что там у каждого нобелевская премия в алгоритмах, а по факту в 90% случаев лично мне даже лениво будет вашу плату воровать, мне быстрее свое сделать.

    • @trinitroDimedrol
      @trinitroDimedrol Před 3 lety

      Значит всё-таки придётся писать код загрузчика, который будет следить за количеством запуска, расшифровывать данные и перезаписывать флэш... Про защиту Вы сами в видео оговорились) Я ни в одном из серийных изделий криптографию не применял, согласен что незачем. Банальная блокировка чтения в OptBytes как защита "от любопытного" (которая к слову в STM ломается за минуту), не более.

    • @user-ey2pf8zu1p
      @user-ey2pf8zu1p Před 3 lety +1

      Но ведь во время передачи неизвестно, что это за данные. В процессор может быть загружен любой мусорный бинарник. Является ли это исполняемым кодом станет известно только при его запуске. Так, что смело это могут быть шифрованные данные. Если они соответствуют заложенному алгоритму, то запуск успешно произойдёт.
      Но мне всё это не нравится. У меня не один потребитель с сотней устройств, а сто потребителей с одним устройством. Никакого дополнительного оборудования требовать для смены прошивки я от них не в праве.
      Давно использую бутлоадеры, делающие USB съёмный диск. Тут никакого усложнения схемотехники, только разъем и любые алгоритмы шифрования. Причем аргумент, что всё равно к устройству надо нести компьютер на сегодняшний день не актуален. Ну не компьютер, так нетбук, планшет, телефон, любое устройство, способное работать с внешней флешкой.

    • @user-ey2pf8zu1p
      @user-ey2pf8zu1p Před 3 lety

      Это так для случая "быстрой шабашки" в виде упоминавшихся открывающихся ворот. Но ведь бывают и проекты в которые вложены десятки тысяч $. Может на самом STM на такие деньги и сложно придумать, но вот например, процессор грузит FPGA, а над её программой работали несколько человек месяцами. А уж людей "эмиттерных повторителей", с квалификацией, достаточной, чтобы утащить с поверхности, но недостаточной для самостоятельных идей приходилось встречать.

    • @sozdatelEd
      @sozdatelEd Před 3 lety

      @@trinitroDimedrol что вы имеете ввиду говоря "блокировка чтения в OptBytes ломается за минуту"?

  • @EEinside
    @EEinside Před 3 lety

    Так и не увидели рабочий пример в конце. Микроконтроллер выбран дорогим. А так спасибо.

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Какой пример? Вы о чем? Подписчик задал вопрос, мне было интересно ему ответить, теперь он (Эдуард, вопрос которого был показан в видео) будет делать устройство. А если сочтет возможным показать, то будет видео. Я просто подсказал как сделать.

    • @EEinside
      @EEinside Před 3 lety

      @@VladimirMedintsev да подсказали, но обалдеть сколько манипуляций заказчику сделать, чтобы получить например прошивку дистанционно и ее залить без программатора, но зато с ттл преобразователем, проводками, дерганием ног... Делать так можно, безусловно, но не фига для не программистов не удобно, а это важно для дистанционки...

    • @user-tm5fp3xw9j
      @user-tm5fp3xw9j Před 3 lety +1

      @@EEinside тут вопрос удобства для пользователя. А он далеко не программист

    • @EEinside
      @EEinside Před 3 lety

      @@user-tm5fp3xw9j заказчик может быть пользователем, это повезло, а может быть и нет. На не опытного стоит рассчитывать, а тут уже проблемы пойдут.

    • @user-tm5fp3xw9j
      @user-tm5fp3xw9j Před 3 lety

      @@EEinside так я тебе оь этом и говорил. Конечному пользователю чем проще, тем лучше. С точки зрения программиста - это выглядит извращение.

  • @smart_electrics_il
    @smart_electrics_il Před 3 lety +1

    "описаны методы работы с DFU"
    Но об этом ни слово...

    • @sovchem1275
      @sovchem1275 Před 3 lety

      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 Před 3 lety +1

      @@sovchem1275 Спасибо конечно, но смысл моего сообщения в том, что в описании и в заставке к видео, фигурирует DFU, но в самом видео об этом ни слово.

    • @gawadinc
      @gawadinc Před 3 lety

      на 10:30 звучит DFU, и показан параграф в доке

    • @smart_electrics_il
      @smart_electrics_il Před 3 lety

      @@gawadinc да вы что !? Реально ??
      Да вы просто сама внимательность.
      А я то дурак, думал что ВСЯ(!) тема будет про DFU, а там секундное упоминание и в графу пальцем ткнули.
      Вы мне глаза открыли, гений

    • @retro55i
      @retro55i Před 3 lety

      А что такое DFU и с чем его едят?

  • @incxxxx
    @incxxxx Před 19 dny

    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.

  • @staratelrusregion4652
    @staratelrusregion4652 Před 3 lety +1

    У вас это... Фотоны в кадре летают

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Респект, это лучшая шутка сегодняшнего вечера...

  • @denisdenisov9028
    @denisdenisov9028 Před 2 lety

    В начале говорит бутлоадер неудобно через флешку внешнюю, а потом городит целый программатор. Ты что там куришь автор? Загрузчик можно написать почти в любой МК, а в STM тем более.

  • @yusupmagomedovify
    @yusupmagomedovify Před 3 lety

    здравствуйте вы делаете проект на заказ? я хочу сделать контроллер для инкубатора очень продвинутый со всеми функциями которых я видел в других контроллерах и со многими другими которых я придумал нужных и не нужных и с большим запасом на будущее. на пример на STM32H7 моя почта yusup.g.m@ya.ru

    • @VladimirMedintsev
      @VladimirMedintsev  Před 3 lety

      Да, я разрабатываю электронику на заказ, но не единичные, а серийные изделия от 10 штук. Вы можете прислать ТЗ на vmedintsev@yandex.ru и мы обсудим цену и состав данного устройства.