复位 stm32_【电子干货268】STM32上电后不复位不工作问题分析及解决
STM32上电后不复位不工作问题分析及解决问题描述:最近做了一个项目,硬件由SMT32最小系统+DC/DC开关电源+2MHz信号驱动+运放放大及比较电路组成;设计过程中,因电源处理不当,出现干扰,导致在上电后SMT32时而可以工作,时而不能复位不可以工作。问题原因:最主要的原因就是电源不干净,有干扰。次要原因就是电源干扰不大,但布线不合理;这次我的问题就出在此,这会导致MCU上电不工作小...

STM32上电后不复位不工作
问题分析及解决
问题描述:
最近做了一个项目,硬件由SMT32最小系统+DC/DC开关电源+2MHz信号驱动+运放放大及比较电路组成;设计过程中,因电源处理不当,出现干扰,导致在上电后SMT32时而可以工作,时而不能复位不可以工作。
问题原因:
最主要的原因就是电源不干净,有干扰。
次要原因就是电源干扰不大,但布线不合理;这次我的问题就出在此,这会导致MCU上电不工作小概率出现,重新开断电源又可工作。
以下来自网友的分享:
复位时序图

PVD = Programmable Votage Detector 可编程电压监测器它的作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。在你列出的表格上方就是可编程的阀值数据。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD阀值由一个固定的差值,这就是你列出表的第1行(PVD hysteresis),通过PVD阀值数据你可以看到这个hysteresis。POR = Power On Reset 上电复位;PDR = Power Down Reset 掉电复位POR的功能是在VDD电压由低向高上升越过规定的阀值之前,保持芯片复位,当越过这个阀值后的一小段时间后(Reset temporization),结束复位开始取复位向量执行指令。这个阀值就是你列出表的第2行(min=1.8,typ=1.88,max=1.96)。POR的功能是在VDD电压由高向低下降越过规定的阀值后,将在芯片内部产生复位,这个阀值就是你列出表的第3行(min=1.84,typ=1.92,max=2.0)。可以看到POR比PDR大了0.04V,这就是你列出表的第4行,PDR hysteresis=40mV从你贴出的图可以看到,当VDD越过POR阀值时,内部并不马上结束复位,而是等待一小段时间(Reset temporization),这就是你列出表的最后一行。如果你的VDD上电比较缓慢或有抖动,上电时电压总是在POR阀值附近(上下)徘徊,则内部的复位电路有可能在复位与不复位之间动荡,造成不能有足够的时间复位。问题解决:
其实最根本的解决方法,就是想办法将电源弄干净;
以下是我的PCB走线示意图,发现有一点不太合理,走了近路。RC复位电路R端的电源,最好能从经过滤波电源后的MCU端取。
因复位电路其实内部有上拉电阻存在,故外部RC的R可以去掉,对于我的PCB板,我从两个方面来解决此问题:
-
调整DCDC电源参数,将纹波控制到最小;
-
直接去掉RC电路的R,直接使用MCU内部上拉
参考链接:
详细网友讨论,可参考以下链接查看,
https://blog.csdn.net/sagetom/article/details/9038823
完
电子干货交流平台:【电子干货214】电子干货交流微信群
【电子干货216】电子干货交流QQ②群
往期电子干货文章:
【电子干货267】串口调试助手果然是个好东西
【电子干货265】STM32学习笔记:TIM_DeInit()函数
【电子干货264】STM32学习笔记:TIM_TimeBaseInit()函数
【电子干货263】STM32学习笔记:定时器定时计算公式
【电子干货262】STM32学习笔记:定时器TIM操作步骤
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)