历史上的今天

今天是:2024年09月21日(星期六)

2019年09月21日 | stm32上电自启动后运行不正常的故障排查分析

发布者:月光男孩 来源: eefocus关键字:stm32  自启动  故障排查 手机看文章 扫描二维码
随时随地手机看文章

最近负责一个项目,用到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的状态?看来还需要进一步做实验,才能解答此疑惑。


关键字:stm32  自启动  故障排查 引用地址:stm32上电自启动后运行不正常的故障排查分析

上一篇:STM32的时钟系统RCC详细整理
下一篇: STM32 USART串口DMA 接收和发送的源码详解!

推荐阅读

  Moxi是一款医院机器人,它具有非凡的社交智能,这款机器人在9月19日上午,在美国德克萨斯州医院中亮相,这是它的首次试点项目。   这是一个有头有脸还有多功能机械手臂的机器人,它有四个轮子。机器人可以用它的机械手做一些事情,比如抓取和储存医疗用品,然后把它们交给护士或医生。   机器人的头部和底部都配有和摄像机来引导机器人的运动...
科创板在小编的印象中都是天天涨的存在,然而,不乏有几支掉队的股票,晶晨股份便是其中之一。 晶晨股份自上市以来股价大幅下滑,今天收盘也只是小幅反弹,上涨1.44%,报收84.80元。若以上市首日盘中最高的166元算起,晶晨股份近一个月的交易跌幅近50%,市值缩水近350亿元,是目前第一只也是唯一一只腰斩的科创板股票。 对于上市后的表现,晶晨股份证券事...
今年的中国国际工业博览会(下称工博会)上,库卡(KUKA)正式发布了机器人KR 4 AGILUS(下称KR 4)。这是这家德国进入中国市场20年以来,正式发布的第一款完全由中国团队自主研发,并在全球销售的机器人产品。 在库卡中国CEO王辉看来,这款针对3C市场所研发的小型机器人,可以视作是公司全面本土化战略从0到1的那一步跨越。 库卡有超过120年的,其...
英飞凌科技股份公司日前宣布,其位于奥地利菲拉赫的300毫米薄晶圆功率半导体芯片工厂正式启动运营。这座以“面向未来”为座右铭的芯片工厂,总投资额为16亿欧元,是欧洲微电子领域同类中最大规模的项目之一,也是现代化程度最高的半导体器件工厂之一。欧盟委员Thierry Breton、奥地利总理Sebastian Kurz、英飞凌科技股份公司首席执行官Reinhard Ploss博...

史海拾趣

问答坊 | AI 解惑

找了篇讲A/D噪声性能方面的资料,大家看下(2)

使用噪声抖动提高ADC的无杂散动态范围 无杂散动态范围(SFDR)是RMS信号幅度与最大杂散频谱分量RMS值的比率。在高速ADC中,使SFDR达到最大的两个基本限制是前端放大器和采样保持电路产生的失真,以及由于ADC编码器部分的传递函数的非线性产生的失真。 ...…

查看全部问答∨

了解ov7141的帮个忙

为什么我加的电源都对 输入时钟也对 reset置低 pwdn置高 时钟没有pclk信号呢 知道的朋友告诉我一下啊…

查看全部问答∨

请问谁有6410 H.264编码器初始化的示例代码

参考网上的例子对6410的MFC初始化,但取不到输入缓冲区的地址,希望能找到示例代码, 或者大家帮忙指点一下,先谢谢了。 函数SsbSipH264EncodeGetInBuf(mfcEncodeHandle, frame_size)返回值不正确。 代码如下: BOOL InitMFCEncode(){   ...…

查看全部问答∨

请教语句的含义

makeimg: run command: cmd /C C:\\WINCE600\\OSDesigns\\24501\\24501\\RelDir\\smdk2450_ARMV4I_Release\\PreRomImage.bat romimage C:\\WINCE600\\OSDesigns\\24501\\24501\\RelDir\\smdk2450_ARMV4I_Release\\ce.bib 请教上面语句的含义。是先 ...…

查看全部问答∨

信号完整性问题与S参数的关系

摘要:随着半导体工艺的不断发展,数字信号的速率也愈来愈高,Gbps以上的高速信号已经随处可见。面对高速设计的新领域,硬件设计工程师们需要改变传统的设计理念,他们需要以更加超前的思维去思考自己将要设计的信号的质量,或许在制定产品设计方案 ...…

查看全部问答∨

怎么判断ADC结束和ADC的转换周期对精度有什么影响?

1、我的程序用DMA1传输,怎么判断ADC结束? 是在 void DMA1_Channel1_IRQHandler(void) { } 这个函数里判断么? 该怎么做? 2、ADC的转换周期对精度有什么影响?…

查看全部问答∨

请教:Jtag仿真口还能不能用作通用IO?

当Jtag接口把程序下载到单片机之后,Jtag接口还能不能用作普通IO口?…

查看全部问答∨

分享BeagleBone简易Xds100V2

参考BeagleBone 原理图,去掉cpld,单ft2232 制作xds100V2,烧写beaglebone第五版程序, 制作成功。 所有原理图及烧写文件均在附件中。  …

查看全部问答∨

EKK-LM3S8962板SPI问题求助!

第一次用这个板子,现在想读一个32位SPI通信的陀螺仪的值,由于板子上的SPI口被SD卡和OLED占用了,想用IO口来模拟SPI。 谁有例程工程文件啊,跪求!官方的例程似乎不怎么好用。。。…

查看全部问答∨

广州诚聘LINUX嵌入式工程师(工作3年可技术入股)

职位名称: 嵌入式LINUX软件工程师工作地点:广州市荔湾区  薪酬面议 工作职责:1. 基于TI OMAP-L138芯片的嵌入式LINUX软件开发设计;2. 基于QT的图形界面开发设计;3. 嵌入式Linux驱动设计开发; 任职要求:1. 本科或者以上学历,计算机 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved