Пользование и настройка STM32F103C8T6 в Flprog 9..

Ответить
tol123
Рядовой
Сообщения: 63
Зарегистрирован: 16.07.2021{, 11:34}
Репутация: 7
Имя: Anatoly

Пользование и настройка STM32F103C8T6 в Flprog 9..

#1

Сообщение tol123 » 26.04.2024{, 11:15}

Здравствуйте.
Вопрос №1: Правильно ли я понимаю чтобы прошить STM32F103C8T6 через программатор st link необходимо установить драйвер и/ или программу STM32CubeProgrammer?

Ответ на вопрос №1: Да, правильно.
Вопрос №1.0: что такое Bootloader?
Ответ на вопрос №1.0:
СпойлерПоказать
Bootloader для STM32F103C8T6 через USB позволяет загружать программы на микроконтроллер без использования внешних программаторов, только через USB-подключение. Это удобно, так как не требуется дополнительное оборудование для прошивки.

В общем случае, Bootloader через USB для STM32F103C8T6 работает следующим образом:

1. **Подготовка микроконтроллера**: Перед использованием Bootloader необходимо загрузить его в микроконтроллер. Это можно сделать с помощью внешнего программатора (например, ST-LINK) или другим способом загрузки по UART, если такая возможность поддерживается.

2. **Подключение к компьютеру**: Микроконтроллер со встроенным Bootloader'ом подключается к компьютеру через USB-порт.

3. **Режим загрузки (Bootloader mode)**: При включении микроконтроллера в специальный режим (например, установкой перемычки BOOT0 в определенное положение) он переходит в режим Bootloader'а, готовый принимать новую программу через USB.

4. **Программирование через USB**: После включения в режим Bootloader'а микроконтроллер ожидает данных через USB. Существуют различные программы и утилиты, которые могут использоваться для передачи программного кода на микроконтроллер через USB.

5. **Процесс загрузки**: После того, как новая программа была передана на микроконтроллер, Bootloader записывает её во внутреннюю память микроконтроллера.

6. **Перезагрузка**: После успешной загрузки новой программы микроконтроллер может быть перезагружен для выполнения новой программы.

Bootloader через USB для STM32F103C8T6 может быть разработан самостоятельно или взят из открытых источников. Обычно он поддерживает стандартные протоколы передачи данных по USB (например, HID или CDC) и может быть интегрирован в различные среды разработки или утилиты для прошивки.

HID (Human Interface Device) и CDC (Communication Device Class) - это два из распространенных классов USB, которые могут быть использованы для реализации USB-подключения для STM32 микроконтроллеров, включая STM32F103C8T6.

1. **HID (Human Interface Device)**: Этот класс USB обычно используется для создания устройств, взаимодействующих с пользователем, таких как клавиатуры, мыши или джойстики. Однако он также может быть использован для передачи данных между компьютером и микроконтроллером. В случае STM32 это может быть реализовано, например, для создания устройства, которое выглядит как HID, но фактически обменивается данными с микроконтроллером.

2. **CDC (Communication Device Class)**: Этот класс USB обычно используется для создания виртуальных последовательных портов через USB, что делает возможным обмен данными между компьютером и устройством через командный интерфейс. В случае STM32 это может быть реализовано, например, для создания виртуального COM-порта, через который можно передавать данные между микроконтроллером и компьютером.

Для использования HID или CDC с STM32F103C8T6 требуется наличие соответствующего программного обеспечения на микроконтроллере, которое обрабатывает протокол USB и осуществляет обмен данными с компьютером. Также может потребоваться дополнительная конфигурация и настройка через специальные библиотеки или среды разработки, такие как STM32CubeMX или Arduino IDE.
Вопрос №1.1: как это сделать?
Ответ на вопрос №1.1:
СпойлерПоказать
1. Есть `generic_boot20_pc13.bin`.
2. Прошиваем его с помощью STM32CubeProgrammer через UART или ST-LINK в STM32F103,
не забывая включить перемычку `boot0` в 1.
Если через UART:
Соединяем UART конвертер (можно использовать Arduino вместо конвертера) и STM следующим образом:
Конвертер RX <-> PA9 STM
Конвертер TX <-> PA10 STM
Конвертер GND <-> GND STM
Подключаем конвертер и STM к компьютеру.
3. Затем прошиваем то что хотим залить в STM32F103 через usb, установив в настройках Arduino IDE:
- Upload method: "Maple DFU Bootloader 2.0" (у меня такой сработал). Возможно, у вас сработает другой выбор "Maple DFU Bootloader original".
- Выбираем порт: "COM какой у вас", прошиваем и все, если ошибка com порта, посмотрите у вас должен появиться другой порт укажите его и все получится, возможно это в первый раз такое будет.
4. Но если не получилось, то далее. И кстати, в диспетчере задач вы увидите типа - STM Serial (COM 15).
5. Если ком-порт не появился, то пробуем пере подключить питание и другой порт USB.
6. Если не появилось, возможно у вас не установлен драйвер который бы видел типа (STM Serial (COM 15)) в диспетчере задач когда вы подключили STM32F103, а если появилось в диспетчере задач типа (STM Serial (COM 15), то не надо устанавливать драйвера.
7. Я устанавливал драйвера из примера сайта https://www.electronicshub.org/how-to-u ... ootloader/, где автор установил драйвера, скачав их с GitHub: https://github.com/rogerclarkmelbourne/ ... rivers/win. Это файл `Arduino_STM32.zip`.
8. Скачали, разархивировали, зашли в папку `win`, запустили командную строку от имени администратора, вводим `ls`, и запускаем `.bat` файлы, введя: `./install_drivers.bat` и `./install_STM_COM_drivers.bat`.
9. Кстати, в `STM32duino-bootloader-master.zip` тоже есть `generic_boot20`.
Вопрос №2: Думаю на картинке все понятно что надо сделать. По дефолту установить другой параметр чтобы при вызове Arduino ide были настроены необходимые параметры и не требовалось каждый раз переключать?

Ответ на вопрос №2: не найден
СпойлерПоказать
Вопрос №3: Что означают другие настройки?
Enabled (generic ‘Serial1)
Enabled (no generic ‘Serial’)
Disabled (no Serial support)
Ничего
CDC (generic 'Serial' supersede U(S)AF CDC (no generic 'Serial')
HID (keyboard and mouse)
Low/Full Speed High Speed
High Speed in Full Speed mode
Smallest (-Os default) Smallest (-Os) with LTO Fast (-01)
Fast (-01) with LTO Faster (-02)
Faster (-02) with LTO Fastest (-03)
Fastest (-03) with LTO Debug (-Og)
No Optimization (-00)
Ничего
Symbols Enabled (-g)
Core logs Enabled
Core Logs and Symbols Enabled (-g)
Ничего
Symbols Enabled (-g)
Core logs Enabled
Core Logs and Symbols Enabled (-g)
Newlib Nano (default)
Newlib Nano + Float Printf Newlib Nano + Float Scant Newlib Nano + Float Printf/Scanf Newlib Standard
STM32CubeProgrammer (SWD) STM32CubeProgrammer (Serial) STM32CubeProgrammer (DFU)
BMP (Black Magic Probe)
HID Bootloader 2.2 <
Maple DFU Bootloader 2.0 Maple DFU Bootloader original

Ответ на вопрос №3: не найден
Вложения
010.png
Последний раз редактировалось tol123 01.05.2024{, 07:18}, всего редактировалось 5 раз.

aidar_i
Полковник
Сообщения: 3140
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 679
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользование и настройка STM32F103C8T6 в Flprog 9..

#2

Сообщение aidar_i » 27.04.2024{, 08:39}

tol123 писал(а):
26.04.2024{, 11:15}
Здравствуйте.
Вопрос №1: Правильно ли я понимаю чтобы прошить STM32F103C8T6 через программатор st link необходимо установить драйвер и/ или программу STM32CubeProgrammer?
Да, правильно.
Лучше прошейте для работы с USB. У меня запустился, прошить это с помощью STM32CubeProgrammer через UART или ST LINK:
generic_boot20_pc13.rar
(11.67 КБ) 12 скачиваний
Если через UART :
Соединяем UART конвертер (можно использовать Ардуино вместо конвертера) и STM следующим образом…
Конвертер RX <-> PA9 STM
Конвертер TX <-> PA10 STM
Конвертер GND <-> GND STM
и подключаем конвертер и STM к компьютеру.
Смотрите ниже скриншоты, в Ардуино Иде правильно поставьте метод прошивки Maple DFU Bootlooader original (не ставить STM32CubeProgrammer(DFU)!).
После прошивки появляется порт, у меня COM23, после прошивки он становится COM24.
СпойлерПоказать
Прошивка STM32 USB ST LINK.png
Прошивка STM32 USB UART.png
Можно по UART прошить с помощью этой программы:
stsw-mcu005.zip
(6.38 МБ) 10 скачиваний

tol123
Рядовой
Сообщения: 63
Зарегистрирован: 16.07.2021{, 11:34}
Репутация: 7
Имя: Anatoly

Пользование и настройка STM32F103C8T6 в Flprog 9..

#3

Сообщение tol123 » 03.05.2024{, 08:31}

пытаясь прошить новые платы по той же схеме выдало ошибку. через st link прошивается.
Lost Device after reset, assuming prod_id was incremented by oneNo DFU capable USB device found

aidar_i
Полковник
Сообщения: 3140
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 679
Откуда: Уфа
Имя: Айдар
Контактная информация:

Пользование и настройка STM32F103C8T6 в Flprog 9..

#4

Сообщение aidar_i » 03.05.2024{, 08:51}

tol123 писал(а):
03.05.2024{, 08:31}
Lost Device after reset, assuming prod_id was incremented by oneNo DFU capable USB device found
Такую ошибку дает , если порт неправильно ставите.
Поставьте порт в Arduino Ide, который появился после прошивки generic_boot20_pc13.bin. После первой прошивки посмотрите снова порт, у меня он изменился с 23 на 24.
СпойлерПоказать
Прошивка STM32 USB настройка платы.png
Дисп устр.png
Дисп устр.png (21.4 КБ) 239 просмотров

tol123
Рядовой
Сообщения: 63
Зарегистрирован: 16.07.2021{, 11:34}
Репутация: 7
Имя: Anatoly

Пользование и настройка STM32F103C8T6 в Flprog 9..

#5

Сообщение tol123 » 03.05.2024{, 14:37}

Скорее всего платы такие проблемные.
generic_boot20_pc13.bin 8 кб - заработало, а одна из этой партии не заработала через usb, в ПК не появляется, даже порты когда меняешь местом. А первые прошивались из другой партии прошились generic_boot20_pc13.bin 22 кб.
Вложения
171472846023.gif
usb 0.png
generic_boot20_pc13.zip
generic_boot20_pc13.bin 8 кб
(4.97 КБ) 4 скачивания

Ответить

Вернуться в «Не могу найти тему ...»