单片机PIC16的外设--故障保护时钟监视器解析

控制/MCU

1883人已加入

描述

我在使用外部时钟源提供时钟信号的时候,可能会遇到一种尴尬的情况,就是外部时钟源突然就崩溃了,没有一点点预兆。这样就相当于系统就崩了。所以一个健康茁壮的系统,必须要有一个监测调度机构,就像守夜人一样。PIC16就提供了有这样功能的外设------故障保护时钟监视器(FSCM)。

故障保护时钟监视器(FSCM)使得器件在出现外部振荡器或外部时钟故障时,自动调度到内部时钟源继续进行工作。如果选择了振荡器模式,FSCM能在振荡器起振定时器(OST)延时结束后的任一时刻检测振荡器故障。当选择了外部时钟模式时,FSCM能在器件从复位释放后立即检测振荡器故障。

FSCM通过将配置字中的FCMEN位置1来使能。FSCM可用于外部振荡器模式(HS)、外部时钟模式(ECH、ECM、ECL和EXTRC)和辅助振荡器(SOSC)。

故障保护时钟监视器(FSCM)

SCS(在OSCCON寄存器中)= 00,由配置字中的FOSC<1:0>决定时钟来源。

配置字CONFIG1的bit 13(FCMEN)置1,使能故障保护时钟监视器;bit 2-0(FOSC<2:0>)= 010,选用外部晶振作为时钟源。

故障保护条件清除

SCS<1:0> = 1x:

修改OSCCON寄存器中SCS位,以选择内部振荡器模块。这会复位振荡器起振定时器OST并允许其重新工作。

OSFIF = 0:

将PIR2寄存器的OSFIF位清零(发生故障时OSFIF会被硬件置1,触发中断,这里先略过不提)。

SCS<1:0> = 00:

修改OSCCON寄存器的SCS位,以选择FOSC配置字时钟选择。这会启动振荡器起振定时器OST。CPU将继续依靠内部振荡器工作,直到达到OST计数。当OST超时后,时钟模块将切换到外部晶振且故障保护条件将被清除。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分