0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

晶振损坏了,STM32还能正常运行?

jf_pJlTbmA9 来源:玩转单片机与嵌入式 作者:玩转单片机与嵌入 2023-09-21 17:10 次阅读

问题:

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

测试的方法是:将HSE外接的晶体的两个端子接地,使其停止振荡,从而验证看门狗能否做出对STM32的做出复位动作。试验结果表明,看门狗没有产生复位动作。进一步测试发现,STM32在失效情况下仍在向看门狗发送复位脉冲。详解STM32时钟的文章:详解STM32的时钟系统,收藏了。

调研:

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

wKgZomUD3uSAIIc6AAB0xGKdSdA325.jpg

wKgZomUD3uWASZ4VAABOPo7YW68587.jpg

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

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

wKgaomUD3uaALpH8AACNkoX34lQ814.png

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

wKgaomUD3uiATeKNAAARZddhK70351.png

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

结论:

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的功能,也可以使用陷阱让程序的流程停留在服务程序中,从而等待看门狗复位整个系统。

wKgZomUD3uyAKRcgAABk0EME7Dk698.jpg

来源:玩转单片机嵌入式
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 晶振
    +关注

    关注

    34

    文章

    2860

    浏览量

    68007
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355767
收藏 人收藏

    评论

    相关推荐

    故障排除指南:电路板损坏的诊断与修复

    影响整个电路系统的正常工作。掌握损坏的原因、判定方法和解决措施,有助于我们更好地应对故障
    发表于 04-26 15:45

    怎么判断坏了

    `  谁来阐述一下怎么判断坏了?`
    发表于 02-27 16:13

    stm32外部时钟源8M如何修改成12M

    stm32外部时钟源8M换成12M后程序修改说明▼标签: stm32外部时钟源8m
    发表于 08-12 08:30

    彩色损坏的修复

    彩色损坏的修复
    发表于 09-03 17:32 542次阅读
    彩色<b class='flag-5'>晶</b><b class='flag-5'>振</b><b class='flag-5'>损坏</b>的修复

    坏了会有什么现象

    本文首先介绍了主板故障现象,分别表现为表现为不能开机、启动显示器无反映、黑屏、开机后关机等故障。其次介绍了坏了的六种现象。
    的头像 发表于 09-10 18:08 8w次阅读

    损坏会有哪些特征现象

    在工作电路中,如果损坏会有哪些特征现象呢?损坏分为两大类,一是彻底停
    的头像 发表于 02-20 00:31 2.7w次阅读

    关于STM32 RTC时钟使用内部/外部的切换方法

    之前的项目中遇到一个问题,由于一些产品的外部损坏(时间长了有些外部容易坏掉),导致RTC实时时钟时间异常。为了降低公司的维护成本,所
    发表于 11-23 18:07 52次下载
    关于<b class='flag-5'>STM32</b> RTC时钟使用内部/外部<b class='flag-5'>晶</b><b class='flag-5'>振</b>的切换方法

    APM32F103RCT6_问题_使用LSE时RTC无法正常工作

    APM32F103RCT6_问题_使用LSE时RTC无法正常工作
    发表于 11-09 21:04 1次下载
    APM32F103RCT6_<b class='flag-5'>晶</b><b class='flag-5'>振</b>问题_使用LSE<b class='flag-5'>晶</b><b class='flag-5'>振</b>时RTC无法<b class='flag-5'>正常</b>工作

    在单片机中扮演着什么角色?坏了单片机还能运行程序吗?

    今天突然想到一个问题,如果一个单片机的坏了那单片机还能运行程序吗?带着这个问题我查询了很多的治疗发现对于这个问题的资料,发现网上关于这个
    的头像 发表于 12-06 13:44 5936次阅读

    STM32的那些小关系

    STM32 适配,以及解剖图
    的头像 发表于 03-25 09:58 3152次阅读
    <b class='flag-5'>晶</b><b class='flag-5'>振</b>与<b class='flag-5'>STM32</b>的那些小关系

    怎么判断坏了 坏了会有什么现象

    据应用领域的不同,选择合适激励功率的,切不可只为了改变的输出频率,任意改变电路输入给
    发表于 08-07 11:36 5798次阅读
    <b class='flag-5'>晶</b><b class='flag-5'>振</b>怎么判断<b class='flag-5'>坏了</b> <b class='flag-5'>晶</b><b class='flag-5'>振</b><b class='flag-5'>坏了</b>会有什么现象

    坏了可以短接吗?短接时需要注意的细节?如何正确短接

    坏了不建议进行短接** 。因为本身就是用来产生时钟信号的元件,短接会导致系统频率不稳定,容易出现异常情况。
    的头像 发表于 12-13 11:35 1397次阅读

    STM32使用内部还是外部

    STM32使用内部还是外部? 在设计和开发STM32应用时,有两种主要的时钟源选择可供选
    的头像 发表于 12-15 14:14 5899次阅读

    stm32 外部不振 程序能运行

    STMicroelectronics公司设计的32位ARM Cortex-M微控制器,广泛应用于各种嵌入式应用。当外部无法振荡时,可能会影响STM32正常工作。本文将探讨在外部
    的头像 发表于 01-04 09:33 2430次阅读

    引脚氧化了还能继续使用吗?

    引脚氧化了还能继续使用吗? 是一种常用的电子元件,特别是在数字系统中。它能够产生高稳定度的电信号,用于时钟信号、频率合成和定时器等功
    的头像 发表于 01-26 14:20 526次阅读