Stm32 dfu driver windows 10

Обновление прошивки по USB-DFU

Download Firware Update Class (DFU)

И вот тут самое время понять, что еще могут существовать другие загрузчики одновременно с системными — это ваши , которые пишутся вами и находятся в адресах FLASH 0х08000000.

Более того у STM есть готовый вариант в Кубе для создания вашего загрузчика по USB и называется USB : Download Firware Update Class (DFU). Генерируем , прошиваем в контроллер.

И загрузчик появляется в адресах 0x0800000 до 0x800C000 (помечена только Readable)

Далее надо пользоваться утилитами от STM Dfu File Manager и DfuSeDemo :

Dfu File Manager готовит вашу прошивку для записи выше вашего бутлодера, а DfuSeDemo собственно ее шьет во Flash выше с адреса 0x800C000.

И происходит это без подтянутой к 1 ножке boot0 контроллера.

Для общего понимания картины адреса памяти :

Думаем , а куда мы заливем свой код программы ? Мы пользовались Atollic True Studio, там были такие настройки :

Например смотрите выходной файл проекта (*.map)

FLASH это с адреса 0x08000000. А вот системный загрузчик лежит где-то по адресу 0x00000000 по-видимому всегда прекрасно себя чувствует, так как его стереть нельзя.

В нашем случае имеем STM32F205VG к примеру и у него есть такие варианты загрузчиков :

Но как узнать какой версии системный загрузчик?

Оказывается никак или предположительно по некоторым букво-цифрам на корпусе контроллера.

Типичный вариант организации пинов для активации загрузчика

BOOT0

Видим , что в нашем готовом устройстве есть вариация по BOOT0 :

Штатно BOOT0 на земле и это означает , что начало программы стартует с SRAM , т.е. по адресу 0x20000000 .

BOOT1

BOOT1 может быть выведен наружу и идти на пин , который связан с разъемом на микро SD карты. Понятно для закгрузки с микро SD карты прошивки например.

2 проекта для текстирования

В итоге для тестирования связки с загрузкой через STM Dfu File Manager и DfuSeDemo сделаны открытые два примера на Atollic True Studio .

Первый реализует пользовательский загрузчик по USB (DFU) и прошивается с адреса 0x0800000 до 0x0800C000. А второй проект реализует саму основную обновляемую программу, которую прошиваем по адресу с 0x0800C000 и выше.

STM32F205VG_FLASH.ld

Внимание во втором проекте :

#define VECT_TAB_OFFSET 0xC000 /*!

Переключение в первом проекте между режимами загрузки и выполнение основной программы происходит программно установкой переменной boot = 1|0.

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

Читайте также:  Как от администратора запустить cmd от имени администратора windows

Теперь по-шагово поехали :

Собираем (и прошиваем) первый проект:

Собираем (но не прошиваем) второй проект:

Файл *.hex через утилиту STM Dfu File Manager преобразуем в файл *.dfu .

Запускаем первый проект в режиме (boot =1) с отладчиком и трассировкой SWO

Файл *.dfu через утилиту DfuSeDemo отсылаем контроллеру (то есть прошиваем через USB DFU Class)

Перезапускаем проект 1 с boot =0 и наблюдаем , что программа перешла на адрес 0x800C000 и начала выполняться :

Использование платы STM32 Leaf Maple Mini в Windows Studio Code с PlatformIO

В данной статье рассматривается:

На плате Leaf Maple Mini зашит загрузчик позволяющий загружать нашу прошивку через USB порт, как это делается в Arduino IDE. Загрузка производится в режиме DFU mode, что требует установки драйверов VID_1EAF&PID_0003.

При подключении плата определяется системой как COM порт, но в режиме загрузки прошивки переключается в режим DFU mode.

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

Установка драйверов на плату Leaf Maple Mini

Качаем набор компонентов для работы с платами STM32 для Arduino IDE

Подключаем нашу плату по USB

Переводим нашу плату в режим работы DFU mode:

Кратковременно нажимаем кнопку RESET и пока быстро мигает светодиод жмем кнопку but=32 и удерживаем некоторое время.
Или зажимаем кнопку but=32 и кратковременно нажимаем RESET и держим некоторое время.

В диспетчере задач у нас должно появиться устройство Maple 003 которое требует установки драйверов.

Распаковываем скаченный ранее архив, идем в папку

\Arduino_STM32-master\drivers\win\ запускаем от АДМИНИСТРАТОРА — install_drivers.bat, драйвер должен установиться. Жмем RESET на плате, теперь установиться драйвер COM порта.

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

Прошивка в плату Leaf Maple Mini загрузчика

Я буду зашивать с использованием ST-LINK V2, но мы так же может прошить, используя COM переходники.

Качаем и устанавливаем:

Подключаем ST-LINK V2 к плате Leaf Maple Mini:

ST-LINK V2 Maple Mini
2 SWCLK (SWD clock) D21
4 SWDIO (SWD data input/output) D22
6 GND (Ground) GND
8 3.3V VCC

Запускаем STM32 ST-LINK Utility

Переводим нашу плату в режим DFU mode см.выше.

Жмем в программе Connect

Жмем на вкладку Binary File и выбираем скачанный ранее файл maple_mini_boot20.bin

Жмем Program Verify

В открывшемся окне жмем Start

Начнется прошивка нашего загрузчика.

Теперь еще раз пробуем установить драйвера описанным выше способом.

Использование платы Leaf Maple Mini в Windows Studio Code

Запускам Windows Studio Code с установленной PlatformIO и добавляем платформы как на картинке

Создаем проект из примеров ST STM32 –> arduino-blink

Переходим в созданный проект

Правим platformio.ini

Подключаем нашу плату по USB, она определиться системой как COM порт.

Жмем 3 см. картинку. Ждем окончания заливки прошивки в плату.

Если у вас выскакивает ошибка:

Значит, вы не поставили драйвера на плату.

Дополнительно о плате Leaf Maple Mini:
Особенности микроконтроллера
  • STM32F103CBT6 in LQFP48 package
  • ARM®32-bit Cortex®-M3 CPU
  • 72 MHz max CPU frequency
  • VDD from 2.0 V to 3.6 V
  • 128 KB Flash
  • 20 KB SRAM
  • GPIO (34) with external interrupt capability
  • 12-bit ADC (2) with 10 channels
  • RTC
  • Timers (4)
  • I2C (2)
  • USART (3)
  • SPI (2)
  • USB 2.0 full-speed
  • CAN

Схема платы Leaf Maple Mini

Еще информация по данной плате Leaf Maple Mini читать

Использование в Arduino IDE читать

Конечно, использовать DFU mode для заливки наших прошивок в плату по USB не есть хорошо, лучше прошивать, используя ST-LINK V2. Так же использование библиотек Arduino для работы с платой производительности нам не прибавит.

Разработку под STM32 лучше конечно производить в STM32CubeIDE — бесплатная среда разработки от STM, полностью поддерживает STM32CubeMX

Я использую Visual Studio 2019 Community с надстройкой VisualGDB – где Visual Studio 2019 Community – бесплатна, а вот VisualGDB стоит денег. Данная связка в последних версиях прекрасно работает с STM32CubeMX

STM32 usb driver not recognised win10 #697

Comments

paolovr70 commented Oct 2, 2019

HI thank you for you repository. I used the two batch files for drivers but WIN10 does not recognize the stm32. Message is no associated driver. Any suggestion? Thanks. P.

The text was updated successfully, but these errors were encountered:

rtek1000 commented Oct 5, 2019

Windows 10 makes the installer go crazy because of the drivers. Is this the case of unsigned driver? What is the VID / PID that appears in your computer’s device manager?

STM32F103C8T6 — Virtual Serial Port:

stevstrong commented Oct 8, 2019

You have to execute the batch file with admin rights.

paolovr70 commented Oct 15, 2019

Yes. BAT File executed but the problem remains. I tried with 3 different win10 compiters. I am not able to change the driver and use a different one because.the system tell me that it.is already using the best one according to win10. Any suggestion?

rogerclarkmelbourne commented Oct 15, 2019

I tested this recently on a brand new W10 installation and it worked fine.
Even if the STM32 was already connected.

rtek1000 commented Oct 16, 2019

What board are you using?

Some boards may have a hardware error that may not let your computer recognize USB, a pull-up resistor on the USB data line, see:

paolovr70 commented Oct 16, 2019 •

Thank you, for the reply but in my BOARD R10 ia resistor with the vaue of 152, that is exactly 1.5k. This is the board (on ebay.com): STM32F103C8T6 ARM STM32 Minimum System Development Board Module For Arduino
Any other idea? thanks. p.

adamfxtion commented Oct 17, 2019

I was have been having problems getting USB to work with recent STM32F103C8T6 system minimum boards, getting ‘device not recognised’ messages and ‘device descriptor request failed’ message in device manager (Win 10). I have concluded that while the boards were sold as STM32F103C8T6 system minimum boards and the chips are labelled as STM32F103C8T6, they are in fact something else with STM32 markings. there may of course be versions of the chip with correct markings, not STM32) that that also don’t work.
The link below, second page, has more on these boards. While the discussion is about not being able to program STM32’s with STlink, it turns out that the reason it doesn’t work is because the CPUID was different than that which would be read from a genuine STM32 part.

I have tested my boards and the configuration bits at 0xE00FFFC0 are a match for Macbeth’s when read using using ST-Link Utility, so the manufacturer as read from the chip is not ST if I understand correctly.
I have not found any of the STM32duino code (including bootloaders) to work with these chips, whatever they are. I did successfully get the openCM3 CDC example project to work in VSC/Platformio (after sorting out the STlink programming issue discussed in the link) and Macbeth got the USB to work another way, but as it stands the, it looks as though the current STM32duino code and these chips are incompatible. It also rather looks to me like a large batch of these particular boards with suspect chips is now in circulation, as I have 6 boards obtained in 3 different orders, 2 from UK stock and 4 in 2 lots from China direct (all last couple of months though). I also confirmed that changing the CPU for an STM32 obtained from Farnell on one of these boards fixed the USB issue.

Не работает плата Iskra JS или JS Mini

Если у вас возникли проблемы с подключением платы Iskra JS к Espruino Web IDE, последовательно пройдите все шаги описанные на это странице.

Проверьте среду разработки

Работать с платой Iskra JS следует только в Espruino Web IDE. Если у вас установлена Iskra IDE , установите Espruino Web IDE.

Проверьте установку драйвера для STM32

В последних двух случаях, необходимо указать путь к драйверам.

Установка драйвера STM32

Всё получилось. Теперь можно продолжить «настройку платы».

Установка дополнительных драйверов для STM32

Рассмотрим альтернативный вариант подключения платы Iskra JS к Espruino Web IDE. Поочерёдно установите все драйвера с официального сайта ST-Link.

Если установка дополнительных драйверов не помогла, прошейте контроллер через DFU-режим

Прошивка платы через DFU

Если в диспетчере устройств не появилось новых устройств, вероятней всего микроконтроллер STM32F405RG не прошит. Для решения проблемы прошейте платформу в DFU-режиме

Disconnect при загрузке скрипта

Если в диспетчере устройств плата отображается корректно, но при попытке загрузить скрипт происходит рассоединение Espruino Web IDE и платы Iskra JS, то вероятнее всего проблема заключается в особенности ОС Windows. Обойти эту проблему можно используя дополнительно USB-Hub. При подключении Hub будет служить посредником между компьютером и управляющей платой.

Не работают библиотеки Амперки

Драйвер корректно установлен, название платы появляется в консоли, даже светодиод LED1 мигает. Но среда отказывается работать с модулями Амперки, выводя сообщение: Module @amperka/… not found .

По умолчанию библиотеки модулей Амперки работают только при подключении к интернету. Если вы планируете прошивать плату Iskra JS без выхода в сеть, необходимо настроить ваш компьютер.

Проверьте путь к подключаемым библиотекам. Для этого зайдите в настройки Espruino Web IDE: Settings Communications и проверьте адрес в поле Module URL .

Должен быть указан:

И в поле Module Extensions :

Если путь иной, замените его. После, перейдите в настройки Espruino Web IDE: Settings BOARD и проверьте адрес в поле Board JSON URL .

Должен быть указан:

Программа не сохраняется после сброса питания

Среда настроена, плата прошивается, код работает. Но после переподключения питания программа не сохраняется в памяти контроллера, как будто её и не было. Для решения проблемы сделайте ряд действий.

После этого программа должна сохранятся в памяти контроллера после переподключения питания.

Если вы прошли все шаги и проблема осталась — обратитесь в нашу техническую поддержку через форму обратной связи или по телефону.

Читайте также:  Hasplm linux debian 10
Оцените статью