当系统时钟 SCLK 直接或间接使用外部振荡器时,故障保护时钟监视(FSCM)能使器
件在外部振荡器发生故障时继续运行,时钟故障检测需要使用内部低频时钟,其可以检测出
外部振荡器稳定后任何时刻发生的振荡器故障(外部振荡器稳定前不会)。
将 OSC_CTL1 寄存器的 FSCM 位置 1 使能时钟故障检测功能,通过 OSC_CTL1 寄存器
的 FSCMGAP<1:0>寄存器可以设置检测间隔,提高检测灵敏度。
图 时钟故障检测原理图
1、时钟故障保护检测
时钟故障检测模块通过使用外部时钟清除内部检测时钟的采样值的方式来监控外部时
钟的工作。
如下图所示为时钟故障检测的时序图。检测重置装置会不断使能检测计数,当外部时钟
有效时,则会不断清除检测计数,只有当外部时钟因故停止后,检测计数计数到一定的值就
会则系统检测到时钟故障。
检测重置装置在固定时间内重置(高电平有效)一次 EN 信号,使其保持为高电平(使
能状态),而当前采样时钟 1(SCLK)没有故障,则会在采样时钟 1 的上升沿时将 EN 清零,
表明当前时钟运行正常。若 SCLK 出现异常停止的情况时,EN 会持续保持高电平。检测重
置装置在检测到 EN 为高电平时在间隔最长 2 个 INTLF 的时间间隔内会重置一次,重置时
间最长为 2 个 INTLF 的时钟长度。
EN 为采样时钟 2(时钟故障间隔采样时钟)使能,EN 为低时清零采样状态,EN 为高
电平时故障间隔采样时钟开始工作,以 INTLF 为时钟,在 FSCMGAP<2:0>设置的采样间隔
内,如果 EN 保持为 1 则将 IF(时钟故障标志位)置 1,表明检测到时钟故障。
2、时钟故障保护处理
检测到时钟故障后,系统时钟将自动切换至内部高频时钟源(使用默认分频)继续工作,
并产生时钟故障中断信号,时钟故障中断连接到 NMI 中断,允许在发生时钟故障的时候进
行软件抢救。
发生时钟故障之后,只要标志位 CKFIF 为 1,则无法切换系统时钟(包括分频)。如果
需要切换时钟,需要先切换系统时钟源(如切换成内部高频时钟),然后清除标志位 CKFIF,
系统就会使用切换后的时钟工作。
|