Есть заводская плата STM32H750 которая подключается по DFU и прекрасно программируется. Программирую мигание светодиодом. Решил попробовать спаять типовую схему включения STM32H750 с USB разъемом. Вывод D+ USB подключил к +3.3 вольта через 1.5 КОм. Не уверен что правильно подпаял данные для USB разьема, но выводы можно менять между собой. Мог попутать между собой выводы D+ и D-. Кнопку сброс подпаял как в типовой схеме при нажатии кнопки вывод NRST замыкается на землю. Кнопка BOOT на выводе 94. Если делаю как по типовой схеме (вывод BOOT через резистор в 10 КОм на землю и кнопку на +3.3 в) то выдает ошибку
Selected interface: dfu
STM32CubeProgrammer v2.18.0
Error: Target device not found.
Establishing connection with the device failed.
Не удалась загрузка: ошибка при загрузке: exit status 1
Если кнопку BOOT подключаю неправильно (вывод BOOT через резистор в 10 КОм на +3.3 в а кнопку между выводом BOOT и землей) то устройство находится но выдает ошибку стирания флеш.
Selected interface: dfu
STM32CubeProgrammer v2.18.0
USB speed : Full Speed (12MBit/s)
Manuf. ID :
Product ID :
SN :
DFU protocol: 1.1
Board : –
IAP
Opening and parsing file: STM32H750_Blink.ino.bin
Схему выложу вечером. Есть подозрение что я какое то питание забыл подключить. 1 картинка когда на кнопки ничего не нажимаю. 2 Картинка нажимаю кнопки Boot и NRST а затем отпускаю NRST и затем BOOT.
Похоже вопрос решился. Кнопку BOOT повесил не на землю а на питание и все заработало. Вопрос конечно интересный, почему раньше не работало. Я так делал уже несколько раз до этого и не работало. Похоже нашел почему не работало раньше и заработало сейчас. Только непонятно почему так работает.
Когда не работало: Я программировал напрямую через Arduino.
Когда заработало: Захожу в CebeProgrammer. Нажимаю найти устройство. Открываю файл прошивки и нажимаю Download. После этого написало что все запрограммировалось но светодиод не мигает. Захожу в Arduino и нажимаю загрузить в плату. После этого микросхема прошивается и светодиод начинает мигать. Почему так все сложно я пока не знаю.
The fact that the MCU is detected in DFU mode means the chip is at least partially alive and the USB connection is probably close to correct. The flash erase failure usually points more toward hardware initialization or power-related problems than firmware itself.
A few important things to verify on STM32H750 boards:
BOOT0 should normally be pulled LOW with 10k and only go HIGH when the button is pressed. Your original wiring was actually correct.
Double-check that D+ and D− are not swapped. USB enumeration can still appear partially functional even with wiring mistakes.
Verify all VDD/VSS pins are connected. On STM32H7, missing even one supply pin can create very strange behavior.
Check the VCAP pins carefully. Incorrect or missing VCAP capacitors are one of the most common reasons H7 chips fail during flash erase/program operations.
Make sure NRST is not being held low accidentally and that the reset circuit is stable.
Also confirm the flash supply voltage is clean and stable during erase operations. Voltage dips can cause erase failures immediately.
Honestly, comparing every connection against the official ST reference schematic line-by-line is usually the fastest way to find the issue on first handmade H7 boards.