Приобрёл сию плату. Неделю промучился, изучая возможности подключения. Результат: подключается, и можно залить прошивку, только через UART (через пины A9, A10). Через SWD вообще не подключается (программатор st-link v2), через usb подключается, но, при заливке прошивки (CubeProgrammer), всегда ошибка:
Error: Write failed at address: 0x8000000
Error: failed to download Segment[0]
Error: failed to download the File
Есть какие-то пути, заставить эту плату работать через SWD или usb? Или дохлый номер?
Взяли бы Nucleo или Discovery, тогда и мучений избежали бы. Да, дороже, зато воткнул шнурок в комп и плату- и поехал. Если покупаете для изучения STM32, то возьмите 446, а не 411. Деньги те же, но есть ЦАП.
[uquote="alsav22",url="/forum/viewtopic.php?p=4798769#p4798769"]но, при заливке прошивки (CubeProgrammer), всегда ошибка:
Error: Write failed at address: 0x8000000
Error: failed to download Segment[0]
Error: failed to download the File[/uquote]
1) stm32 st-link utility?
2) рабочий ли st-link? клон? какой чип?
У st-link'а точно распиновка рабочая? У меня есть несколько штук, где нарисованная на корпусе не совпадает с реальной.
Ну и незачем всяким дерьмом пользоваться: GUI — это для абдуринщиков. В командной строке запускать надо, там и сообщения более понятные: "st-flash wtite ..."
Кстати, у 411 ведь есть USB, и есть DFU. Можно еще такой способ попробовать. Заливать при помощи dfu-util. Только подтяжка должна быть 1.5кОм на USB DP (не помню, есть ли там внутренняя подтяжка).
Попробуйте SWD с "Connect under reset", есть в STM32 ST-LINK Utility: меню Mode.
Удерживайте кнопку NRST при подключении. Затем полное удаление МК: Erase Chip.
Можно проверьт с омметра:
SWDIO -> PA13, pin 34
SWCLK -> PA14, pin 37
NRST -> RESET, pin 7
Последний раз редактировалось veso74 Ср мар 18, 2026 11:23:39, всего редактировалось 1 раз.
[uquote="alsav22",url="/forum/viewtopic.php?p=4798769#p4798769"]), через usb подключается, но, при заливке прошивки (CubeProgrammer), всегда ошибка:[/uquote]
поменяйте кабель. если чип определяется в CubeProgrammer при прошивке по USB, то скорее всего чип жив.
[uquote="JackSmith",url="/forum/viewtopic.php?p=4798783#p4798783"][uquote="alsav22",url="/forum/viewtopic.php?p=4798769#p4798769"]но, при заливке прошивки (CubeProgrammer), всегда ошибка:
Error: Write failed at address: 0x8000000
Error: failed to download Segment[0]
Error: failed to download the File[/uquote]
1) stm32 st-link utility?
2) рабочий ли st-link? клон? какой чип?[/uquote]
1) да, через swd с помощью этой утилиты
2) st-link клон, чип неизвестен (маркировка стёрта), к плате с stm32f103c8t6 подключается и прошивки заливаются без проблем.
Когда сгенерировали Кубом проект, там у Куба в настройках конфига по умолчанию выключен SWD. Поэтому последующие прошивки и не получается заливать. Нужно включить у Куба этот SWD на вкладке System, а микроконтроллер стереть, подключившись через ST-Link Utility, в начале соединения удерживая кнопку Reset на плате. Надо поймать момент отпускания кнопки.
Дело в том, что при старте микроконтроллера SWD всегда включен, до тех пор, пока исполнение не дойдет до команд выключения SWD
Зачем ловить Reset
Вначале было сказано что ICSP работает
(Boot0, usart(pa9,pa10))
там и стирать скорее всего можно
А для надёжного захвата SWD при reset
лучше всего сделать таймаут на несколько (мс)
перед основной программой и настройкой портов
(если это не нарушит проектные нормы старта)
И в программе так-то можно найти где выключен SWD
Некоторые чипы (может и STM32 умеет ?)
позволяют программироваться по 3-м проводам
( без питания - только SWD, SWC, GND )
это как раз происходит включение чипа (тот же Reset)
и подключение сразу SWD
( обязательно конденсатор по питанию и питание как наводка по SWC )
[uquote="Zikon",url="/forum/viewtopic.php?p=4798960#p4798960"]Зачем ловить Reset[/uquote]
Затем, что это стандартная процедура и в ней нет ничего сложного.
А чтобы вообще не ловить Ресет при подключении, я уже написал ранее - в конфигурации Куба по умолчанию отключается SWD программно. Не помню, как называется эта функция, но в сгенерированных файлах конфигурации она есть. В противоположность тому, что у МК по умолчанию SWD таки включен.
[uquote="Zikon",url="/forum/viewtopic.php?p=4798960#p4798960"]без питания - только SWD, SWC, GND[/uquote]
Как так - без питания? Имеете ввиду внешнее питание? Ну да, с внешним питанием - да без проблем.
[uquote="Rapra",url="/forum/viewtopic.php?p=4798975#p4798975"]Как так - без питания? Имеете ввиду внешнее питание? Ну да, с внешним питанием - да без проблем.[/uquote]
Да, действительно только по 3-м проводам
Написал - же, питание наводкой
ошибся не от SWCLK, а от SWDIO
так как на SWDIO - pull-up на питание Vcc
или можете перепрошить ST-Link в JLink_OB и использовать JLinkExe .[/uquote]
F:\Desktop\Программирование\STM32\openocd-v0.12.0-i686-w64-mingw32\bin>openocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c "init" -c "reset halt"
Open On-Chip Debugger 0.12.0 (2023-01-14-23:37)
Licensed under GNU GPL v2
For bug reports, read http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : clock speed 2000 kHz
Info : STLINK V2J37S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.258523
Error: init mode failed (unable to connect to the target)
[uquote="Zikon",url="/forum/viewtopic.php?p=4798985#p4798985"]так как на SWDIO - pull-up на питание Vcc
Как это работает точно не скажу - но работает[/uquote]
Ну принцип питания давно известен - диод и конденсатор, предварительная зарядка конденсатора и затем передача сигнала. Так работают "таблэтки" и NFC-метки СКУД.
Однако, плата F411 BlackPill такого питания не имеет.
Оно конечно может быть и можно подать питание только через SWD, и произойдет самозапит через защитные диоды внутри МК и заряд конденсаторов на плате, но это недокументируемый и нерекомендуемый способ.
В целом, ведь нет проблем подать питание прямо с программатора. Либо, если у вас какое-то готовое устройство с собственным питанием, включите питание устройства и подключите ST-Link по трем проводам без VDD.
Кстати, правильно это питание называть VDD, поскольку в микроконтроллере стоят полевые транзисторы. VCC - это для биполярных (V collector-collector), а для полевых - V drain-drain.
alsav22, ваш куб заблокировал SWD интерфейс, поэтому у вас только два варианта - или напрячься и сделать стирание всего МК, или выбросить плату в помойку (и все последующие). Иного нет. Сидеть в интернете и ждать чюда - ну ждите.
Вариантов два - или сделать нормальное подключение под reset, что нудно, или выставить вывод boot0 в 1 (и включить в_таком_виде) на время перепрограммирования.
Проверил. Обнаружил, что SWDIO не доходит до чипа. Оказалось, что дорожка, от 34 пина, не доходит до контактной площадки, где гребёнка впаяна. Кинул перемычку, через SWD всё заработало.
Добавлено after 8 minutes 6 seconds:
Через usb (CubeProgrammer) по прежнему та же ошибка, при попытке залить прошивку:
06:33:01 : Memory Programming ...
06:33:01 : Opening and parsing file: sketch_mar17a.ino.bin
06:33:01 : File : sketch_mar17a.ino.bin
06:33:01 : Size : 13.06 KB
06:33:01 : Address : 0x08000000
06:33:01 : Erasing memory corresponding to segment 0:
06:33:01 : Erasing internal memory sector 0
06:33:01 : erasing sector 0000 @: 0x08000000 done
06:33:01 : Download in Progress:
06:33:01 : Error: Write failed at address: 0x8000000
06:33:01 : Error: failed to download Segment[0]
06:33:01 : Error: failed to download the File
Добавлено after 2 minutes 43 seconds:
Пробовал стирать чип (через st-link utility) перед заливкой через usb - не помогло. Кабели менял - не помогло.