Microchip PIC16F1619随记:故障保护时钟监视器(FSCM)

标签:PICPIC16FSCM
分享到:

我在使用外部时钟源提供时钟信号的时候,可能会遇到一种尴尬的情况,就是外部时钟源突然就崩溃了,没有一点点预兆。这样就相当于系统就崩了。所以一个健康茁壮的系统,必须要有一个监测调度机构,就像守夜人一样。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超时后,时钟模块将切换到外部晶振且故障保护条件将被清除。

 

继续阅读
简述Microchip PIC16F87XA与PIC16F88X的五点不同之处

除了配备中文版数据手册以外,PIC16F88X系列单片机较之前的PIC16F87XA系列有了不少的改进,以PIC16F877A与PIC16F887粗略对比发现有以下几点不同

基于Microchip Curiosity PIC32MX470的温湿度计+RTOS+GUI:第一步,点灯

首先下载官方的开发工具,包括MPLAB、XC32、Harmony,但是要想在MPLAB中创建Harmony的工程,得按照help_harmony_vol_I.pdf中的说明,先在MPLAB中安装harmony的plug-in

基于Microchip Curiosity PIC32MX470的温湿度计+RTOS+GUI:第二步,Harmony

uCOS-III跑起来了,但是温湿度计和OLED还没到,打算用这段空窗期把串口调出来,顺便熟悉一下这块板卡的外设。

基于Microchip Curiosity PIC32MX470的温湿度计+RTOS+GUI:第四步,点灯

温湿度可以正常读取了,接下来就是调SPI和OLED显示,尝试将数据通过OLED屏显示出来。

基于Microchip Curiosity PIC32MX470的温湿度计+RTOS+GUI:温湿度计

串口可用之后,很多debug信息就可以通过串口打印输出了,所以我打算先把读到的温湿度数据通过串口打印出来,然后再调OLED显示,之后再将数据通过OLED屏显示,一步一步来。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss