原因

在实际应用中,经常出现由于晶体振荡器在运行中失去 作用,造成微处理器的时钟源丢失,从而出现死机的现象,导致系统出错。严重时,由于系统的死机造成监控失效, 导致无法挽回的损失!

目的 

STM32作为一个可靠稳定的微处理器,但是不能排除由于某些外界特殊因素可能造成STM32的外部振荡器失效,所以在芯片中需要一种包含机制能够在STM32运行时,一旦外部晶体振荡器(HSE) 失效,切换STM32的系统时钟源到一个稳定的时钟源,以保证STM32能够继续运行,并进行相应的保护操作。

原理

时钟安全系统被激活后,时钟监控器将实时监控外部高速振荡器;如 果HSE时钟发生故障,外部振荡器自动被关闭,产生时钟安全中断,此中断被连接到Cortex-M3的NMI的中断;与此同时CSS将内部RC振荡器切换为STM32的系统时钟源。( 对于STM32F103 ,时钟失效事件还将被送到高级定时器TIM1的刹车输入端,用以实现电机保护控制)

 注意

一旦CSS被激活,当HSE时钟出现故障时将产生CSS中断,同时自动产生 NMI。NMI将被不断执行,直到CSS中断挂起位被清除。因此,在NMI的处理程序中必须通过设置时钟中断寄存器(RCC_CIR) 里的CSSC 位来清除CSS中断。

应用

1、启动时钟安全系统CSS:

RCC_ClockSecuritySystemCmd(ENABLE);     // (NMI 中断是不可屏蔽的!)

2、外部振荡器实现时,产生中断,对应的中断程序:

void NMIException(void)
{if (RCC_GetITStatus(RCC_IT_CSS) != RESET){    // HSE、PLL 已被禁止(但是PLL 设置未变)/* …… */ // 客户添加相应的系统保护代码处// 下面为HSE恢复后的预设置代码RCC_HSEConfig(RCC_HSE_ON);  // 使能HSERCC_ ITConf ig(RCC_IT_HSERDY, ENABLE); // 使能HSE就绪中断RCC_ ITConfig(RCC_IT_PLLRDY, ENABLE); // 使能PLL 就绪中断RCC_ClearITPendingBit(RCC_IT_CSS );  // 清除时钟安全系统中断的挂起位// 至此,一旦HSE时钟恢复,将发生HSERDY中断,//在RCC中断处理程序里, 系统时钟可以设置到以前的状态 }
}

3、在RCC的中断处理程序中,再对HSE和PLL 进行相应的处理。

STM32的时钟安全系统(CSS)系统相关推荐

  1. STM8s外部时钟晶振失效时钟安全系统CSS启动演示

    使用的最小系统晶振是8m的. 这里说下配置过程: 时钟自动切换,开启切换中断 在中断里面清除中断标志,使能CSS并开启CSS中断 CSS中断发生,清除CSS中断标志,将HSI二分频,即16M/2=8M ...

  2. STM32的时钟系统RCC详细整理

    一.综述: 1.时钟源 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz: ②HSE是高速外部时钟,可接石英/陶瓷谐 ...

  3. STM32的时钟系统RCC详细整理(转)

    一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...

  4. 【STM32】时钟系统RCC

    目录 一.时钟树 1.时钟源 2.高速外部时钟信号(HSE) 3.低速外部时钟信号(LSE) 4.系统时钟(SYSCLK) 5.时钟输出(MCO) 6.AHB 参考文献 一.时钟树 本文以STM32F ...

  5. 【STM32】时钟系统知识

    基础知识 1. STM32 有5个时钟源:HSI.HSE.LSI.LSE.PLL. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz,精度不高. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或 ...

  6. STM32—时钟树(结合系统时钟函数理解)

    时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...

  7. STM32使用内部时钟HSI作为系统时钟及配置Systick定时器

    参考:https://blog.csdn.net/huangyangquan/article/details/78790443 https://www.cnblogs.com/dustinzhu/p/ ...

  8. stm32的时钟系统

    这个图说明了STM32的时钟走向,从图的左边开始,从时钟源一步步分配到外设时钟. 从时钟频率来说,又分为高速时钟和低速时钟,高速时钟是提供给芯片主体的主时钟,而低速时钟只是提供给芯片中的RTC(实时时 ...

  9. STM32直接用寄存器设置系统时钟

    时钟对单片机的重要性,就如同心脏对人的重要性,它能驱动处理器内核完成指令,外设也在它的驱动下完成动作.总而言之,时钟是单片机里很重要的一项.那么,我们为什么要设置系统时钟呢?有的外设需要的工作频率不一 ...

最新文章

  1. android软件查找号码位置,如何在Android中通过GPS获取位置时获取卫星名称或号码?...
  2. python代码写入方式_【Python 1-17】Python手把手教程之——文件的读写以及I/O操作...
  3. C++友元与输出运算符重载
  4. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python异常处理)
  5. OpenCV-怀旧色滤镜
  6. as 插件GsonFormat用法(json字符串快速生成javabean)
  7. 理解深度学习的局限性
  8. 程序读取凡人修仙传热度数据
  9. 错误: 找不到或无法加载主类 org.sang.BlogserverApplication
  10. 【Eclipse IDEA】IDEA 导入 eclipse Web项目
  11. 多线程爬取wall.alphacoders壁纸
  12. AI人工智能技术在车载监控系统中有哪些应用?
  13. 数据分析36计(23):长期转化率 A/B 实验的问题,用边际结构模型纠正后结论反转...
  14. Combined attach
  15. LPC1768 PWM单边沿触发
  16. 问题解决29:微信获取高清图像
  17. 响应式五金机械网站pbootcms模板,蓝色营销型五金配件网站源码下载
  18. 小学计算机面试试讲题目,小学数学教师资格证面试试讲题目
  19. linux设置java环境变量_linux配置java环境变量
  20. 2022中国健康展,睡眠健康,生活健康展,药食同源,大健康展

热门文章

  1. FANUC机器人使用U盘进行文件备份的操作步骤
  2. 面壁人VS智子 --- 搜索排序的作弊和反作弊
  3. 购买李宁Cocos2d-x套餐,送最新出的《Cocos2d-x游戏实战指南》签名书一本
  4. Open BMC开发系列(九)ipmi 入门
  5. PolynomialFeatures进行逻辑回归拟合
  6. 电机与运动控制笔记整理(六)——步进电机
  7. php网站 类设计,PHP网站开发与设计
  8. B2C电子商务能否通吃线上线下?
  9. WebDriver 上传下载文件---(虫师《selenium3自动化测试实战--基于Python语言笔记22》)...
  10. 如何成为技术领袖(转载)