历史上的今天
今天是:2024年09月11日(星期三)
2018年09月11日 | stm32处理器调试模式下运行正常,上电自启动后运行不正常
2018-09-11 来源:eefocus
最近负责一个项目,用到stm32f4的一款高性能芯片。研发过程中遇到一个很诡异的现象,前前后后折腾了两三天,最后才搞定。由于是新手,经验不足,排故过程很纠结~~
现象如下:
1.采用JLINK下载程序后,断电让其上电重新启动,发现有时可以正常运行,有时候无法正常运行,大约每两、三次就有一次无法正常上电启动。
2.通过JLINK调试程序,每次均正常运行。太诡异了!
发现问题后开始定位原因。首先考虑是BOOT启动出问题了,stm32f4启动方式分三种:User FLash、SystemFlash和EmbeddedSRAM,通过BOOT0和BOOT1管脚配置。程序正常运行时从User FLash启动,如果BOOT0和BOOT1配置不正确,会导致无法正常运行;而通过JLINK调试程序,程序直接下载到SRAM中运行,不存在此问题。于是,通过万用表测BOOT0和BOOT1管脚电平,都是低电平,没问题!于是,基本排除此原因了。
其次,考虑电源供电不稳定问题。通过万用表测量各个模块电压,发现电压均正常值。那也有可能是系统上电时刻,由于负载变化,导致电压跳变,之后电压又稳定了,所以测量不出来。通过示波器捕捉电压变化,未发现明显的异常跳变。通过万用表测电流为88mA,并不大。初步认为不是电源供电问题导致。
然后,考虑是否是由于复位信号不稳定的原因。板子采用了外置复位芯片,上电后会产生复位信号,此提供给处理器、蓝牙等模块。由于JLINK调试时会自动产生一个复位信号,让系统恢复默认状态,然后程序开始运行,因此调试下程序应该都能正常启动。但是如果程序断电后上电启动,如果复位信号过短或者不稳定,有可能导致无法正常启动了。完美的解释!哈哈,那一瞬间仿佛找到问题所在了。程序无法正常启动时,RESET信号手动接地(给一个低电平脉冲),处理器都开始工作了!这进一步验证了我的推断。于是锁定是复位信号不稳定导致的,开始折腾复位信号,通过示波器观察、隔离复位信号、加滤波电容、换复位芯片等方法进行定位。最后发现复位信号感觉也没有什么问题,真是怪了!纠结~~~~
后来有人建议是不是晶振不稳定。但是,晶振不稳定,调试程序时也应该出现同样现象啊,道理上解释不通啊。无解啊~~~
后来求助同事,他是电子硬件方面的专家。我们几人仔细琢磨了板子的原理图和实验现象后,他突然问你的BOOT0怎么没有接电阻到公共地啊?我说接了吧,之前还用万用表量过电平,是低电平。他说不对啊,就是没接地啊。我才猛地想起来,板子是另外一个同事焊的,交到我手里时说板子已经仔细检查过了,没问题。当时,由于项目紧张,就没有再仔细核实。我再仔细一看,确实没接地,也就是悬空状态!而之前测电压是低电平,有可能是由于下拉电阻的作用。崩溃了!这么粗心,居然没有自己检查。赶紧焊电阻接地,重新上电,发现正常了。测试了三四十次,都是正常的。看来这次真正找到原因了,就是由于BOOT0悬空而导致的。BOOT0悬空时,其状态是不确定的,会导致程序无法从UserFlash中正常启动,就可能出现时好时不好的现象了!哎,原来是这样。终于长嘘了一口气。
问题终于解决了,但是还是有一点无法理解:既然是BOOT0悬空引起的,但是为什么将处理器的RESET信号手动接地(给一个低电平脉冲),处理器又正常运行了?难道是因为再次复位上电重启时,恰好BOOT0又被识别为低电平?RESET信号影响了BOOT0的状态?看来还需要进一步做实验,才能解答此疑惑。
史海拾趣
|
【瑞萨 CPK-RA2L1 开发板】测评 - 1:安装 BSP 本帖最后由 MianQi 于 2022-11-12 20:34 编辑 从用户的角度来说,E2 Studio 中最重要的组成部分是两个: 1、 Flexible Software Package (FSP) ,下载地址:https://github.com/renesas/fsp;这个类似于Android 的 SDK - 软件开发包,它有版 ...… 查看全部问答> |
|
[RTT&瑞萨超低功耗MCU RA2L1开发板]测评之基于MDK+RT-Thread的开发环境搭建 本帖最后由 qinyunti 于 2022-11-12 10:27 编辑 准备 前提已经安装MDK和JLINK我这里 MDK版本 V5.37 JLINK版本 V7.82(V7.5以上) 开发板资料参考 https://www2.renesas.cn/cn/zh/products/microcontrollers-microprocess ...… 查看全部问答> |
|
[RTT&瑞萨超低功耗MCU RA2L1开发板]测评之SPI模块介绍驱动分析与测试 SPI模块介绍 参考<<Renesas RA2L1 Group User’s Manual: Hardware>>的章节<<28. Serial Peripheral Interface (SPI) >> 特征 2通道 支持全双工和仅发送模式,支持3线制和4线制 RSPCK极性反转,相位 ...… 查看全部问答> |
|
以前有一个树莓派: 但是。。。没有HDMI的小头的线。。。 这一次,又弄了线,又弄了盒子,甚至于还有天线,也许可以好好的玩玩树莓派了。。。 感谢电子工程世界(eeworld),感谢e络盟(element14) … 查看全部问答> |
|
开发一款小电机的有感驱动系统,在MPS看到MA735,封装2x2非常适合应用系统; 买了十片样品,回来测试一下效果。 只有十个样片,快递包装还是很严实:真空静电包和干燥剂都有。 还附赠了功率电感的选型手册哦 … 查看全部问答> |
|
一周工作终于结束,每天加班到很晚,都没有什么时间来学习行空板,赶紧趁着周末把玩一下。 所谓工欲善其事必先利其器,我玩任何开发板都有个习惯,那就是上手前先要熟悉一下该板子的硬件设计, ...… 查看全部问答> |
|
【行空板 Python编程学习主控板】评测三、开发板初探之连接方式介绍 在上篇测评二中,对行空板的硬件系统进行了初步的了解,这篇文章对行空板的几种连接方式进行介绍。 行空板支持四种连接方式与开发者的电脑进行连 ...… 查看全部问答> |




