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”,后来就变成检测不到设备了
[*]后面的想法
个人目前打算后面换个电脑继续试一试,但是没有更多的想法了
哭泣,求大佬们捞一下,帮忙提点儿意见
原理图没传上来 先检查硬件。
可以试试用STM32CubeProgrammer从串口烧一个常规一点的程序进去,再用调试器烧你的程序。
eric2013 发表于 2024-4-18 09:07
原理图没传上来
我再传一下 原理图如图;我自己看不出来问题在哪里。
tovinz 发表于 2024-4-18 09:29
先检查硬件。
可以试试用STM32CubeProgrammer从串口烧一个常规一点的程序进去,再用调试器烧你的程序。
我没留USART1的串口,应该没办法用串口烧程序进去,只留了SW的调试接口 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安装的时候有什么支持包不对劲?
纯纯新手 发表于 2024-4-18 11:17
[*]我用STM32CubeProgrammer试了下,刚开始连接正常:
有很多可能吧,
跟调试器有关,我看你的原理图接口没有VCC连接调试器,我自己画板都是vcc-gnd-dio-clk四个都用上了。
也有可能swd接口被锁住了。烧一个简单的没有锁swd接口的程序之后swd接口就正常放开了。
也有可能进低功耗了,我调沁恒的ch32f208的时候都要通过串口烧一个程序退出低功耗才能正常用swd访问。
反正调试器烧不起程序的情况见多了{:16:} tovinz 发表于 2024-4-18 14:26
有很多可能吧,
跟调试器有关,我看你的原理图接口没有VCC连接调试器,我自己画板都是vcc-gnd-dio-clk四 ...
请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗? 纯纯新手 发表于 2024-4-18 14:38
请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗?
接一起就行了。最好用 5pin 端子把复位引脚也引出来 纯纯新手 发表于 2024-4-18 14:38
请教VCC给进来的话和原来板子内3.3V怎么处理呢?两个接一块儿吗?
你板子带电烧程序?有的片子要电源重启才能正常烧录,板子一直有电可能没法百分百重启,除非你RST引脚也接出来。我一般是板子断电,烧录器给vcc供电,除非烧录器电压不够才会考虑上电烧录,或者把rst引出来,板子上电,烧录器接rst不接vcc 烧录器不接vcc和rst的话是靠swd来控制片子重启进入烧录模式,如果swd被锁住或者程序跑飞就大概率没法正常通过swd重启片子进入烧录模式,烧录器接管片子的vcc或者rst就能避免掉大部分无法正常烧录的情况 skyshine 发表于 2024-4-18 15:37
烧录器不接vcc和rst的话是靠swd来控制片子重启进入烧录模式,如果swd被锁住或者程序跑飞就大概率没法正常通 ...
感谢,确实没有考虑到这一点,后面新一版设计的时候还需要改进,确实板子断电然后靠烧录器供电并控制reset要好
页:
[1]