秋名山最速传说
除了该搞的啥都搞 邮箱:li_yi_liang@qq.com
文号925638
29035
12
收藏(1)

[提问][悬赏30r]stm32f407烧录后复位异常问题

问题简述:

使用ST link v2或者正点原子无线dap下载程序进stm32f407ZET6里面时,出现程序无法运行问题,无法运行是指使用debug在void main第一行打断点,无法进入断点,查看汇编语言那一栏,发现在启动文件里面循环,无法跳出。


问题详述:

点击烧录按钮,烧录进度条正常跑完(debug设置是烧录完自动运行),程序不能自动运行(指正常运行到main),按第1次复位之后,程序不能正常运行(指运行到main),部分端口出现电平异常。第2次按复位按键的时候,程序大概率能进入main运行(led正常闪烁),小概率还是有问题。(但是偶尔第一次烧录就能正常运行,无须复位,led闪烁)

在部分pcb板中,多次(几次不等,时间间隔为1s左右)重复复位,led无法闪烁。

在程序正常运行时,反复点击(时间间隔为2s左右,反复次数为2次以上,具体次数不等)options-debug-debug和options-debug-flash download,也能复现问题,具体现象为,程序无法进入main(也可能进入了,但led不闪烁)。


需求:

程序下载进去芯片立即能正常运行(指运行到main)



补充:

上述的程序是指led闪烁程序。

上述的复位均是短按,时间0.5s以内。

pcb重新焊过两块,还是有这个问题,有块板长按复位问题显著改善,有块板要多次复位(五六次,但不绝对)才能偶尔正常运行一次。

主控芯片也换过一批,问题依旧。

不同电脑烧录,问题能复现

main里面只有gpio初始化和delay初始化以及while里面直接对io口电平拉高拉低并延迟。

能提供pcb工程和源代码。

这个pcb有两版,新版和旧版相比是改了部分io口(一些串口,iic),但测试时(烧录闪灯程序)已去掉外设(除烧录器)

回复提供思路或方法无论能否解决问题都有0.5kcb(评论区首次提出),0.5kcb奖励和30kcb悬赏截止时间是2023.12.1

旧版(之前能用的没有改版的)实物图如下,两块pcb通过排针连接,上面是主控,下面是驱动板。

mmexport1695780748008.jpg

新版(问题板实物图)

40633928849e4f59201134cc677ce67.jpg

新板(有问题板)的原理图

attachment icon 疑似有问题主板.pdf 736.21KB PDF 27次下载 预览

旧板(无问题板)的AD工程文件

attachment icon 主板pro.zip 17.92MB ZIP 8次下载

有问题板的AD工程文件

attachment icon 疑似有问题主板.zip 17.93MB ZIP 2次下载

测试的led闪烁程序

attachment icon 2.28_工程代码_点led.zip 10.21MB ZIP 3次下载

[修改于 1 年前 - 2023/09/27 13:27:35]

12
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
信仰は儚き人間の為に
1年3个月前 IP:广东
925641

看循环处调用栈

+0.5
科创币
全桥整流
2023-09-27
感谢
amo
1年3个月前 IP:广东
925642

先验证时钟问题:到官网下载个led_blink例程,打开工程,检查是否使用外部振荡器,如果是,则改为使用内部RC振荡器。

+0.5
科创币
全桥整流
2023-09-27
感谢
m24h
1年3个月前 IP:上海
925645

示波器检查电源质量 是否有波动 检查option字 看看是不是被烧了什么不对的bor/por wdg之类的东西

修改.s启动代码 将所有中断死循环取消 可以方便调试

更换芯片 排除芯片问题 检查关键引脚的波形 

+0.5
科创币
全桥整流
2023-09-28
谢谢
+25
科创币
全桥整流
2024-04-26
现在看来这个是最正确的
+5
科创币
全桥整流
2024-04-26
同上
全桥整流作者
1年3个月前 修改于 1年3个月前 IP:广东
925662

回上一楼

请问您说的关键引脚是指?我目前只排查了晶振输入引脚,boot0,boot1引脚,这几个引脚的输入是正常的

m24h
1年3个月前 IP:上海
925663
引用全桥整流发表于4楼的内容
回上一楼请问您说的关键引脚是指?我目前只排查了晶振输入引脚,boot0,boot1引脚,这几个引脚的...

还有nrst V和A的电源和地 

全桥整流作者
1年3个月前 修改于 1年3个月前 IP:广东
925747

10.1进度:把有问题的pcb上的stm32f407芯片吹下来换成旧版批次的芯片就没问题了,目前怀疑是芯片有问题。

看看能不能(可能可以?)再定位一下,到底是芯片什么部分的问题

全桥整流作者
1年1个月前 IP:广东
926842

直接用全新的芯片程序都还没有烧进去都出问题

把旧版的芯片拆了,连同外围电路一起全部移到新版还是有问题

这下子是真绷不住啊,全新的芯片程序都还没烧都有问题


全桥整流作者
1年1个月前 IP:广东
926843
引用m24h发表于3楼的内容
示波器检查电源质量 是否有波动 检查option字 看看是不是被烧了什么不对的bor/por wdg...

用ST link把芯片flash的全部数据擦写再烧录还是会有问题

Ma3.02的守望
1年1个月前 修改于 1年1个月前 IP:四川
926845

3L(#925645)提到了Option字

最近在用STM8,这个Option Bytes写一些东西,会影响bootloader等内容,启动现象表现就不正常

并且Option Bytes是放在EEPROM里的,覆写flash未必能改变这些寄存器

可能和这些有关


(图中为STM8L的手册截图,不是STM32

F~A13X@NGTQ%1Z5A9EXGVRE.png


+0.5
科创币
全桥整流
2023-11-09
感谢提供思路
全桥整流作者
1年1个月前 修改于 1年1个月前 IP:广东
926851

真相了,是boot0和boot1的问题,手册上写,当使用用户闪存储存器启动模式时,boot0=0,boot1=x(我理解为任意电平的意思,直接浮空处理)

aHR0cHM6Ly9nc3MwLmJhaWR1LmNvbS8tdm8zZFNhZ194STRraEdrbzlXVEFuRjZoaHkvemhpZGFvL3doJTNENjAwJTJDODAwL3NpZ249ZTAyZDM1MzRhNDUxZjNkZWMzZTdiMTYyYTRkZWRjMjcvNTAwZmQ5ZjlkNzJhNjA1OTU4MTYxY2U0MjMzNDM0OWIwMjNiYmFjZS5qcGc.png

boot1的位置本来是有个下拉电阻的,我以为只要boot0=0即可,boot1电平不用管,负责硬件的队员就没有焊下拉电阻,后面我和他排查问题时根据对boot1的理解(boot0=0,boot1任意电平),也不以为然,昨天朋友排查问题把boot1下拉电阻焊了上去,问题完美解决(也可能不完美,只试了修复一块有问题的板,其他板尚未修复)。

那么问题来了:为什么boot0=0,boot1浮空会出现本帖的错误?boot0=0,boot1=x中的X不是任意电平的意思吗

第三态
1年0个月前 IP:四川
927552

当boot0为0的时候,是不需要关注boot1的,出现这种情况,只能觉得是在未焊接boot1时,你的boot0脚的电压不对。可以试着用示波器测量一下boot0,看看它是不是始终小于VInputLow。

+0.5
科创币
全桥整流
2023-12-30
谢谢
空格君
1年0个月前 IP:江苏
927713
引用全桥整流发表于10楼的内容
真相了,是boot0和boot1的问题,手册上写,当使用用户闪存储存器启动模式时,boot0=0,b...

boot1不接大概率不是问题来源,我基本都不接的

示波器打一下boot0看看,再就是,芯片哪买的,保真嘛

+0.5
科创币
全桥整流
2023-12-30
优信买的
主体信息
主体类型:个人
所属领域:无
认证方式:身份证号
IP归属地:广东
 内容统计
2024年12月
1 篇
2024年09月
2 篇
2024年08月
3 篇
2024年07月
2 篇
2024年03月
4 篇
2024年01月
8 篇
ID: {{user.uid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
回复
设为精选取消精选
评学术分
鼓励
编辑
查看历史
通过审核
移动文章
加入收藏取消收藏
退修或删除
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
回复
加入收藏取消收藏