问题:
该问题由某客户提出,发生在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附近,如图(一)所示:
通过调试器观察寄存器 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的功能,也可以使用陷阱让程序的流程停留在服务程序中,从而等待看门狗复位整个系统。
设计资源 培训 开发板 精华推荐
- MC34072VDR2G 运算放大器用作 LED 驱动器的典型应用
- LT8315IFE 20 至 450Vin 隔离式 12Vout 隔离反激式转换器的典型应用电路
- EVAL-CN-304-SDZ,用于评估 AD9834 20 mW 功率、2.3V 至 5.5V、75 MHz 完整 DDS 的评估板
- MIC2537 的典型应用:四路配电开关最终信息
- EVALSF3-ICE3DS01G,用于 LCD 显示器的 34W、5V、12V AC 到 DC 多输出电源的评估板
- 使用 ROHM Semiconductor 的 BU4917 的参考设计
- HomeKit三速风扇(ESP8266)
- 坤坤与可莉PCB尺子
- ESP8266-01s 继电器(LTV-817S-B)
- 18.1W, 3.4V, 5.1V, 12V, 16V AC 转 DC 多输出 DVD 播放器电源
- 发帖赢好礼 | MPS 工程师为您解决DC-DC设计难题
- 用“ADI实验室电路”讲故事,正式启动!
- nanoPower技术:延长电池寿命,提升传感器性能 2021年1月20日 上午10:00在线研讨会
- 高性能 i.MX RT 处理器助力智能节点无需联网实现机器学习
- TI MCU 常见问题(FAQ)大搜集
- Keysight教你如何提高测试精度,答对问题还有礼品相送,速速参与!
- Molex紧凑型Type-C连接器 为您的设计节约宝贵空间!下载好礼送!
- 9月24日 直播|Microchip mSiC™产品及其在电动出行中的典型应用方案
- 创通联达高通 IOT 平台解决方案及成功案例|报名直播赢【蓝牙耳机、音箱、京东卡】等好礼
- 创新驱动变革,R&S示波器助力功率电子测试