STM32F10x时钟安全系统详解:确保微控制器在外部振荡器失效时的稳定运行

需积分: 10 20 下载量 170 浏览量 更新于2024-08-02 收藏 2.55MB PDF 举报
STM32技术要点详解主要聚焦于STM32系列微控制器,特别是STM32F10x系列,它在2008年9月举行的意法半导体全国巡回研讨会上受到了深入讨论。研讨会的核心议题是系统时钟的监控和切换,这是由于在实际应用中,微处理器时钟源的稳定性对系统运行至关重要。如果外部高速振荡器(HSE)在运行过程中失效,可能导致微处理器死机,进而引发监控系统失效和无法挽回的损失。 STM32设计中引入了时钟安全系统(CSS)来解决这个问题。CSS的主要功能是在HSE发生故障时,自动切换到备用的稳定时钟源,如内部RC振荡器,以确保系统能继续工作并执行必要的保护措施。CSS被激活后,会监控HSE状态,并在HSE故障时产生CSS中断,通过连接至Cortex-M3的NMI中断来触发系统切换。NMI中断在CSS中断未清除前会被持续执行,这就要求开发者在NMI处理程序中通过设置RCC_CIR寄存器中的CSSC位来清除该中断。 举例来说,当系统需要启动CSS以增强时钟安全性时,可以通过调用RCC_ClockSecuritySystemCmd(ENABLE)函数来启用,但需要注意的是,NMI中断在此过程中是不可屏蔽的,因此中断处理需要特别关注。 此外,研讨会还详细介绍了不同时钟源的频率范围,例如HSE的4-16MHz可提升到高达72MHz,而SYSCLK则可以通过x2或x16倍频,以及PLL(锁相环路)提供的PLLCLK,而当HSE失效时,时钟频率会降为8MHz的HSIRC。 这次研讨会提供了关于STM32如何应对时钟失效风险的关键技术和实践经验,强调了在系统设计中考虑时钟安全的重要性,尤其是在处理高精度和实时性要求的应用中。