工程师笔记|STM32G0 复位后死机

发布者:TranquilBreeze最新更新时间:2023-02-02 来源: zhihu关键字:STM32G0  复位  死机 手机看文章 扫描二维码
随时随地手机看文章

引言

有客户反映,STM32G071RBT6 在使用 STM32CubeProgrammer 烧录完程序后只能运行一次,复位后,程序无法运行,如果掉电后重新上电,程序恢复正常。


问题描述

根据客户描述,该问题可通过以下步骤复现:


2.1. 测试代码的功能流程图


准备测试代码 App1 和 App2:








2.2. 问题复现步骤

操作步骤

(1) 在 STM32CubeProgrammer 中下载

应用程序 App1(如图 3),并设置 RDP=1(如图 4);然后断开 STM32CubeProgrammer 的连接,板子断电后重新上电;






(2) 根据 log 提示(如图 5),按下用户按键,板子会在 RDP 降级的过程中,产生全片擦除的动作,等待 10s,确保芯片擦除完成后从板子再断电并重新上电;





(3) 使用 STM32CubeProgrammer 重新连接板子,在下载界面选中“Run afterprogramming”后,下载应用程序 App2(如图 6),下载完成后,可以看到板子执行闪灯的效果,并从 App2 的 log 信息可知,此时的 empty check 位被置起(如图 7)。








(4) 在不断电的情况下,如果直接按下外部复位按钮,程序将出现无法执行的现象。



问题解决

通过问题的复现,我们注意到,程序无法正常运行时,实际进入了内置的 ISP 程序,即内置的 bootloader 程序。为什么会进入 bootloader 呢?在 G0 的参考手册中,我们注意到 empty check 的描述如下:




这里的描述有两点是很重要的。


A :出厂的芯片,因为是没有程序的空片,empty check 位是被置位的,但实际电路中因 boot 管脚定义的程序从 Main Flash 启动的场景时,程序会由于 empty check 位而强制从内置的 bootloader 启动。


B :empty check 只会在加载 OptionByte 时更新,所以在空片上下载完程序后,应当通过 power on reset 或者手动清除该位,程序才可以正常运行。


我们来验证一下,在复现问题的第(4)步中,如果先按下用户按钮,应用程序 App2会通过软件清除 empty check 位,再通过外部复位按钮,则程序正常运行, 根据 log 信息可以看到 empty check 位被清除(如图 9),且程序运行恢复正常。




小结

本文描述的问题虽然隐藏的比较深,但规律还是很明显的,只要重新上电即可恢复,说明很可能和 power on reset 有关。在参考手册中搜索 power on reset 关键字,可以很快的找到一些线索。所以分析问题时,要多关注这样的有规律的问题信息。


关键字:STM32G0  复位  死机 引用地址:工程师笔记|STM32G0 复位后死机

上一篇:工程师笔记|使用 HSE 时钟源对 LSE 精度进行测量
下一篇:工程师笔记|STM32G4 Advanced Timer Break 功能

推荐阅读最新更新时间:2024-11-07 09:31

用户手册|STM32G0 系列安全手册
引言 本文档描述如何在安全相关系统的背景下使用 STM32G0 Series 微控制器,并指定了为达到目标安全完整性等级,用户需承担的安装和操作责任。本手册适用于 STM32G0 Series 微控制器和 X-CUBE-STL 产品编号。 目录预览 1. 关于本文档 2.STM32G0 Series 微控制器开发过程 3. 参考安全架构 4.安全结果 5.证据列表 2.STM32G0 Series 微控制器开发过程 对于严格要求安全性的应用所使用的微电子器件,它们的开发过程考虑了适当的管理,以降低设计阶段引入系统故 障的可能性。 IEC 61508:2 附录 F(ASIC 技术和措施 - 避免系统故障)作为
[单片机]
用户手册|<font color='red'>STM32G0</font> 系列安全手册
STM32窗口看门狗WWDG复位
STM32除了有一个独立看门狗外,还有一个窗口看门狗。窗口看门狗当然也能复位MCU,但是与独立看门狗复位不同。首先,窗口看门狗所需要的时钟源来自PCLK2,它时钟是经过PCLK2的4096分频后得到的,能够提供准确的计数。其次,复位的条件有要求:(1)当减计数器的值小于0x40,则产生复位;(2)当减计数值在窗口外被重新装载,则复位。接着,窗口看门狗的计数值与窗口值都只有7位,所以变化范围在0~127之间。还有,装载值一定要大于0x3F,否则就失去了看门狗的功能。 窗口看门狗,它的 窗口 可以有下图体现出来: 图中W 表示窗口值,当看门狗的减计数器不断递减,只有计数值到达窗口值与0x3F之间的时候 喂狗 ,才不会发生复位,
[单片机]
STM32窗口看门狗WWDG<font color='red'>复位</font>
单片机应用系统的抗干扰技术
随着工业控制的发展,单片机应用系统以其高性价比逐步取代模拟式控制系统,被广泛应用于各个领域。应用现场存在着各种干扰源,对单片机应用系统的工作影响很大,在实验室里设计好的控制系统,安装调试时完全符合设计要求,而置入现场后,系统常常无法正常稳定地工作。干扰虽不能直接造成硬件的损坏,但常使计算机不能正常运行以致控制失灵,造成设备和生产事故。因此,为了保证设备在实际应用中可靠地工作,从系统设计开始就必须充分考虑到对系统抗干扰性能的要求。 1 干扰源、干扰途径和干扰的影响 1.1 应用系统自身干扰源及干扰途径 应用系统自身干扰源是因在设计系统时对某些问题考虑不全面,如元器件布局不合理、电路工作不可靠、元器件质量差等,形成诸如电阻热噪声
[单片机]
单片机+数码管简单秒表程序,带停止启动复位
p0口是数码管的位选入口,P2口是数码管的段选用4位一体的数码管,P3.0 P3.1 P3.2分别是启动停止和复位按钮 #include reg51.h #define uchar unsigned char #define uint unsigned int #define DATA P2 sbit start=P3^0; sbit stop=P3^1; sbit reset=P3^2; //---------启停标志----- bit SAT=0; bit RST=0; //------------数码管码表---------- uchar tab ={0x3F, 0x0
[单片机]
Micrel新款电源管理芯片为便携设备提供高效电源管理方案
Micrel公司近日推出一款高效、灵活的电源管理芯片MIC2800。该芯片在微小的3mm×3mm MLF(r)-16封装中提供三个电压输出端和一个电源复位端,是手机、智能电话、PDA、照相机、便携式媒体播放器、无线LAN卡及蓝牙应用的理想选择。 MIC2800具有输入范围广(2.7V~5.5V)、三路电压输出、电源可复位等特点。输入端1为高频、高效直流-直流开关调节器,输出电流高达600mA;输出端2、3为低电压线性调节器。其中一个线性调节器由低输入电压控制,令其可以后调节开关调节器获得最佳效率。如,高速DC-DC转换器令锂离子电池输入电压降为1.8V,低压差线性稳压器(LDO)通过后调节1.8V电压轨以大于80%的效率提供1.
[新品]
简述判断数字电路中晶振和复位电压的经验
1.测晶振时钟:用数字万用表测晶振两端的电压,如果两端电压为电源电压一半或其中一端低于电源电压的一半(多见于频率较高的晶振),则晶振工作正常。如果,某一端高于电源工作电压一半,则晶振不正常;但判断其工作的频率是否符合标称值,可以用观察工作情况判定。例如,一台采用ES系列解码芯片的VCD,其27MHz晶振发生频偏时,就会出现无彩色或开机画面放大同时无彩色现象,VCD机伺服电路的16MHz不符,会发生碟片转而不读数现象,这时,可更换晶振试试。 2.复位电路的检测:这一项必须使用指针式万用表,因为用数字表无法看出瞬时的电压反应。测量时,万用表置于2.5V挡,用万用表的红表笔接电源的正极,黑表笔接复位脚,然后开机通电,这时若表针轻微摆
[测试测量]
智能手机白屏死机避免方法
3G手机领域的一大新兴发展趋势是应用软件(即所谓的“App”)的采用与不断发展,这些应用软件专门针对手机特定的功能而编写。定制应用软件发展迅猛,目前已出现许多在线“App商店”以供用户选择和购买。然而应用软件常常是在某一个应用平台上来开发和测试,因此可能无法以最佳状态运行在其它硬件/芯片组平台上,或与其他服务提供商协同工作,这时可能会带来通常被称为“白屏死机”的现象。本文将探讨这一问题,给出一些恢复手机正常工作可行的解决办法。    “白屏死机”的解决方案   PC用户已经知道,从蓝屏死机状态恢复的方法是彻底重启系统。很多时候,由于PC被锁定,必须退出这种冻结模式,然后再重新启动电源。在此情况下,如果导致蓝屏死机的可疑模式或功
[模拟电子]
STM32G0—外部中断
EXTI,即外部中断,这也是将系统或STM32从停止模式唤醒的一种方式,它能产生中断和事件。我们可以基于触发沿配置事件,有效触发沿可以是下降沿或上升沿,此外,还有一些直接的触发事件。 外部中断的功能框图 如图所示,任何GPIO都可以配置为外部中断或事件,STM32G0还提供了使用EXTI唤醒微控制器或微控制器电源模块的方法。因此,用户可以从低功耗模式唤醒系统,一些可配置事件和直接事件连接到NVIC和Cortex-M0+内核的事件输入。 EXTI的线路映射 如图所示,对于线路0-18,即GPIO、PVD和比较器而言,这些线路的事件时可配置的。然而,线路19至33是直接连接。举例来说,它们来自其他外设,例如RTC、TA
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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