为什么时钟失效后CPU还在运行

发布时间:2023-10-19  

问题:

该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品的设计中,STM32 的 HSE 外接 8MHz 的晶体产生振荡,然后通过 STM32 内部的PLL 倍频到 72MHz,作为 STM32 的系统时钟,驱动芯片工作。在 STM32 片外有专用的看门狗芯片,监控 STM32 的运行。STM32 内部的软件会在 STM32 的某个管脚上产生脉冲来复位看门狗。一旦 STM32 没有及时的产生脉冲来复位门狗,则看门狗会认为 STM32 运行不正常,从而复位 STM32。在对该产品做可靠性测试时,进行了对看门狗监控时钟失效能力的测试。测试的方法是:将 HSE 外接的晶体的两个端子接地,使其停止振荡,从而验证看门狗能否做出对 STM32 的做出复位动作。试验结果表明,看门狗没有产生复位动作。进一步测试发现,STM32 在失效情况下仍在向看门狗发送复位脉冲。


调研:

重复测试,确认其所述现象属实。检查软件代码,确认其软件没有开启 STM32 的 CSS功能。修改代码,将 PLL 的二分频从 STM32 的 MCO 管脚送出,以方便用示波器观察。通过控制晶体的管脚是否接地来控制 HSE 是否振荡。当 HSE 正常振荡时,MCO 送出的信号频率为 36MHz,当 HSE 停止振荡时,MCO 送出的信号的频率在 1.7MHz 附近,如图(一)所示:

通过调试器观察寄存器 RCC_CFGR 中的 SWS 控制控制位,其值为[10],说明此时的系统时钟确实来自 PLL 的输出。

从 STM32F103VD 的数据手册中查找 PLL 相关的参数如表(一):

其中,PLL 的输出频率范围是 16MHz – 72MHz。也就是说,PLL 在处于相位锁定的状态下,可以输出 16MHz – 72MHz 的时钟信号。而当输入信号频率过低而导致输出信号频率低于 16MHz 时,将可能处于失锁的状态。在这状态下,它的输出信号的频率与输入信号的频率之间,不一定符合所设定的倍频与分频关系。更确切的说,不能通过公式:

得出“输入信号频率为零时,输出信号频率也为零”这样的结论。这一点与实测的结果相吻合。

结论:

STM32 的 PLL 在没有输入信号的情况下,仍能维持在最低的频点处振荡,产生输出。以至,CPU 及其它外设仍能在 PLL 送出的时钟的驱动下运行。所以,通过判断有无时钟来驱动 CPU 执行指令的方式来判断 HSE 是否失效是行不通的。

处理:

对软件做如下修改:

1. 在软件的初始化部分,开启 STM32 的 CSS 功能;

2. 修改 NMI 中断服务程序,加入 while(1) 陷阱语句;

开启 CSS 功能后,当 HSE 失效时,STM32 会自动开启 HSI,并将系统时钟的来源切换到HSI 的输出,同时产生 NMI 中断。这样,程序的流程将停留在 NMI 中而不能产生复位片外的看门狗的脉冲。当片外看门狗溢出后,就会复位 STM32,使其恢复到正常驻的状。

建议:

STM32 中的 CSS 功能是专门为检测和处理 HSE 失效而设计的。但该功能在 STM32 复位后是被禁止的,须要软件对其使能才会发挥作用。当 CSS 单元检测到 HSE 失效时,它会使能 HSI,并将系统时钟切换到 HSI。同时,它会关闭 HSE,如果 PLL 的输入信号来自 HSE的输出,它也会关闭 PLL。CSS 单元在做时钟调整的同时,也会产生一个 NMI 中断请求,和一个送给高级定时器的刹车信号。NMI 中断请求会产生一个 NMI 中断,以便用户程序可以在中断服务程序中做紧急处理,而刹车信号则是使高级定时器进入刹车状态,以防止由其控制的电机驱动桥臂由于失去控制而过流。用户程序可以在 NMI 中断服务程序中尝试恢复 HSE 及 PLL 的功能,也可以使用陷阱让程序的流程停留在服务程序中,从而等待看门狗复位整个系统。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    主板的“隐形管家”,为电脑提供开关机管理、低功耗管理、鼠标键盘管理、通信管理等功能,甚至在电脑关机后仍在不知疲倦的工作,其特色功能是笔记本厂商的发力重点。长期以来,全球EC芯片......
    电脑电源维修怎样学会(2024-12-03 19:29:04)
    电脑电源维修怎样学会; 现在电脑基本每家每户都有了,但现在手机的普及,电脑利用率也是越来越低了,但是当你想用电脑时,又发现它突然不开机了。 还有很多电脑时间都比较久了,电子......
    的大管家,系统耦合性极高,主要负责整机设备的开关机时序、热管理、键鼠管理、充放电管理、状态检测、通信接口管理等功能,即使在电脑关机后,它也需要不知疲倦的工作。 此外,EC及其相关产品的应用极为广泛,从日......
    的大管家,系统耦合性极高,主要负责整机设备的开关机时序、热管理、键鼠管理、充放电管理、状态检测、通信接口管理等功能,即使在电脑关机后,它也需要不知疲倦的工作。此外,EC及其相关产品的应用极为广泛,从日......
    小米固态电池技术来了:告别天冷关机;公布了正在预研的技术,这项技术的能量密度已经突破了1000Wh/L,并且有了更好的低温放电性能和安全性,意味着未来手机可以不会在天冷的时候关机了。本文......
    总评:   1) GPU性能提升81%,畅玩2K分辨率光追游戏大作;CPU单核提升6%,多核提升53%;   2) 2.5K分辨率最高画质下,3A游戏平均帧率60以上,运行十......
    上电后PLC显示stop处理步骤;今天一条生产线(plc柜据说已经有十几年了,CPU是去年换的,模块一直没换过)的PLC停机了,生产线不经常开,所以一般是断电状态,这里说的停机指的是上电后PLC一直......
    东透露了华为下一代折叠屏产品的消息,称这是一款别人都能想得到,但都做不出来的产品。华为已经想到5年了但之前做不到,现在终于快要出来了。这款三折叠的手机采用了双铰链设计,因为是三块屏幕展开,所以......
    状态下充电呢?如果是在关机状态下充电,肯定就需要单片机能够自己唤醒自己(不需要用户按下 PA0),然后才有可能在 OLED 上显示充电的信息(手机关机了,或者没有电了,接通电源以后,可以......
    持了出色的能效表现,日常使用中明显感觉到手机的运行更加流畅、响应迅速。游戏方面,天玑9400的图形处理能力进一步升级,无论是画质表现还是帧率稳定性,都表现出了强劲的优势。影像部分,用户......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>