STM32的时钟安全系统(CSS)系统

原因

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

目的 

    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);  // 使能HSE
       RCC_ 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 进行相应的处理。

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32系统时钟是指控制STM32芯片内部各个模块和外设运行的时钟信号。STM32时钟系统相对复杂,对于初学者来说可能会感到困惑。时钟系统的重要性不言而喻,它类似于人体的心脏脉搏,是整个系统的基础。\[1\] 为了更好地理解STM32时钟系统,初学者可以参考开发板的源码进行设置,但这种方法可能会导致在遇到问题或需要修改代码时感到困惑。要深入理解STM32时钟系统,以便进行底层驱动设计,需要对其有更深入的了解。\[2\] 在配置STM32时钟系统时,可以根据实际情况进行自定义设置。一般情况下,可以以大容量芯片72MHz的系统时钟为例进行讲解,原理都是一样的。\[3\] 总之,STM32系统时钟是控制芯片内部各个模块和外设运行的关键信号,对于深入理解和设计底层驱动非常重要。 #### 引用[.reference_title] - *1* *3* [STM32-时钟系统详解](https://blog.csdn.net/qq_44016222/article/details/123223733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【STM32】初学者必读STM32时钟系统详解](https://blog.csdn.net/m0_54916619/article/details/130182697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值