纯纯新手 发表于 2024-4-18 08:56:22

STM32H750VBT6程序烧录不成功问题,求救

本帖最后由 纯纯新手 于 2024-4-18 10:49 编辑

自己设计了一块板子,单片机程序怎么都烧录不进去,原理图附图;

只用了一个8MHz的无源晶振作为HSE,BOOT通过0R电阻接地。电路实测+3.3VD的电压值均为3.3V,VCAP引脚电容电压值为1V;
使用SW方式调试和下载;
更换无源晶振起振电容为10pF,依然不行;

[*]环境:
使用STM32CubeMX进行外设等设置,Version 6.9.2;
使用Keil5进行程序编写与下载,Version 5.36.0.0


[*]程序:
使用CubeMX生成只有晶振输入和调试接口的程序,主频设置为100MHz


[*]Keil5下载设置见附图


[*]使用正点原子DAP下载器
报错“Can not load Flash Programming Algorithm”
在对应的实际文件夹位置有相应文件;
也经常报错 RDDI-DAP Error;Error: Flash Download failed-"Cortex-M7";


[*]使用ST-Link下载器
同样报错“Can not load Flash Programming Algorithm”;
使用ST-Link Utility,可以看到内部RAM的值,都是F;而且会出现突然断开连接的现象;
在ST-Link Utility下,无论是擦除还是烧写,都会报错:“Elf Loader could not be transfered to device”


[*]使用J-Link下载器,也报错,最开始报错“No Algorithm found for: 90000000H - 9000223FH”,后来就变成检测不到设备了


[*]后面的想法
个人目前打算后面换个电脑继续试一试,但是没有更多的想法了

哭泣,求大佬们捞一下,帮忙提点儿意见

eric2013 发表于 2024-4-18 09:07:43

原理图没传上来

tovinz 发表于 2024-4-18 09:29:39

先检查硬件。
可以试试用STM32CubeProgrammer从串口烧一个常规一点的程序进去,再用调试器烧你的程序。

纯纯新手 发表于 2024-4-18 09:52:18

eric2013 发表于 2024-4-18 09:07
原理图没传上来

我再传一下

纯纯新手 发表于 2024-4-18 09:53:22

原理图如图;我自己看不出来问题在哪里。

纯纯新手 发表于 2024-4-18 09:56:54

tovinz 发表于 2024-4-18 09:29
先检查硬件。
可以试试用STM32CubeProgrammer从串口烧一个常规一点的程序进去,再用调试器烧你的程序。

我没留USART1的串口,应该没办法用串口烧程序进去,只留了SW的调试接口

纯纯新手 发表于 2024-4-18 11:17:06

tovinz 发表于 2024-4-18 09:29
先检查硬件。
可以试试用STM32CubeProgrammer从串口烧一个常规一点的程序进去,再用调试器烧你的程序。


[*]我用STM32CubeProgrammer试了下,刚开始连接正常:



10:02:49 : STM32CubeProgrammer API v2.16.0 | Windows-64Bits
10:52:28 : UR connection mode is defined with the HWrst reset mode
10:52:29 : ST-LINK SN: 35FF6D063041533150291543
10:52:29 : ST-LINK FW: V2J38S7
10:52:29 : Board       : --
10:52:29 : Voltage   : 1.09V
10:52:29 : SWD freq    : 4000 KHz
10:52:29 : Connect mode: Normal
10:52:29 : Reset mode: Software reset
10:52:29 : Device ID   : 0x450
10:52:29 : Revision ID : Rev V
10:52:29 : Debug in Low Power mode is not supported for this device.
10:52:29 : UPLOADING OPTION BYTES DATA ...
10:52:29 :   Bank          : 0x00
10:52:29 :   Address       : 0x5200201c
10:52:29 :   Size          : 308 Bytes
10:52:29 : UPLOADING ...
10:52:29 :   Size          : 1024 Bytes
10:52:29 :   Address       : 0x8000000
10:52:29 : Read progress:
10:52:29 : Data read successfully
10:52:29 : Time elapsed during the read operation is: 00:00:00.008


[*]但是下载不了程序:

10:53:09 : Memory Programming ...
10:53:09 : Opening and parsing file: MagCtrlTest.hex
10:53:09 :   File          : MagCtrlTest.hex
10:53:09 :   Size          : 4.34 KB
10:53:09 :   Address       : 0x08000000
10:53:09 : Erasing memory corresponding to segment 0:
10:53:10 : Error: failed to erase memory
10:53:10 : Error: failed to erase memory
10:53:10 : Error: Unable to get core ID
10:53:10 : Error: Unable to get core ID
10:53:10 : Warning: Connection to device 0x450 is lost



[*]然后我试了下读取0x08000000-0x08003FF0的Flash数据,都是FFFF,没啥异常



[*]然后再试了两次,然后突然就可以下载简单的程序了

10:57:27 : Time elapsed during the read operation is: 00:00:00.066
10:57:47 : Memory Programming ...
10:57:47 : Opening and parsing file: MagCtrlTest.hex
10:57:47 :   File          : MagCtrlTest.hex
10:57:47 :   Size          : 4.34 KB
10:57:47 :   Address       : 0x08000000
10:57:47 : Erasing memory corresponding to segment 0:
10:57:56 : Download in Progress:
10:57:57 : File download complete



[*]再然后我自己的程序也可以下载了

10:57:57 : Time elapsed during download operation: 00:00:09.704
10:58:31 : Memory Programming ...
10:58:31 : Opening and parsing file: MagCtrlSTM32.hex
10:58:31 :   File          : MagCtrlSTM32.hex
10:58:31 :   Size          : 19.02 KB
10:58:31 :   Address       : 0x08000000
10:58:31 : Erasing memory corresponding to segment 0:
10:58:40 : Download in Progress:
10:58:41 : File download complete



[*]然后读取Flash数据,发现程序已经运行起来了


我现在又迷茫又开心又担心,到底是什么原因呢?会不会是我Keil5安装的时候有什么支持包不对劲?

tovinz 发表于 2024-4-18 14:26:14

纯纯新手 发表于 2024-4-18 11:17
[*]我用STM32CubeProgrammer试了下,刚开始连接正常:




有很多可能吧,
跟调试器有关,我看你的原理图接口没有VCC连接调试器,我自己画板都是vcc-gnd-dio-clk四个都用上了。
也有可能swd接口被锁住了。烧一个简单的没有锁swd接口的程序之后swd接口就正常放开了。
也有可能进低功耗了,我调沁恒的ch32f208的时候都要通过串口烧一个程序退出低功耗才能正常用swd访问。
反正调试器烧不起程序的情况见多了{:16:}

纯纯新手 发表于 2024-4-18 14:38:30

tovinz 发表于 2024-4-18 14:26
有很多可能吧,
跟调试器有关,我看你的原理图接口没有VCC连接调试器,我自己画板都是vcc-gnd-dio-clk四 ...

请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗?

tovinz 发表于 2024-4-18 15:25:26

纯纯新手 发表于 2024-4-18 14:38
请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗?

接一起就行了。最好用 5pin 端子把复位引脚也引出来

skyshine 发表于 2024-4-18 15:31:21

纯纯新手 发表于 2024-4-18 14:38
请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗?

你板子带电烧程序?有的片子要电源重启才能正常烧录,板子一直有电可能没法百分百重启,除非你RST引脚也接出来。我一般是板子断电,烧录器给vcc供电,除非烧录器电压不够才会考虑上电烧录,或者把rst引出来,板子上电,烧录器接rst不接vcc

skyshine 发表于 2024-4-18 15:37:43

烧录器不接vcc和rst的话是靠swd来控制片子重启进入烧录模式,如果swd被锁住或者程序跑飞就大概率没法正常通过swd重启片子进入烧录模式,烧录器接管片子的vcc或者rst就能避免掉大部分无法正常烧录的情况

纯纯新手 发表于 2024-4-18 20:29:34

skyshine 发表于 2024-4-18 15:37
烧录器不接vcc和rst的话是靠swd来控制片子重启进入烧录模式,如果swd被锁住或者程序跑飞就大概率没法正常通 ...

感谢,确实没有考虑到这一点,后面新一版设计的时候还需要改进,确实板子断电然后靠烧录器供电并控制reset要好
页: [1]
查看完整版本: STM32H750VBT6程序烧录不成功问题,求救