嵌入式学习小组
直播中

罗宗保

7年用户 236经验值
私信 关注

请问CSS如何检测HSE石英晶体失效?

CSS如何检测HSE石英晶体失效?

回帖(1)

马昆秀

2020-11-10 14:03:04
  时钟安全系统用于监控HSE时钟源是否失效。当fMASTER使用HSE做为时钟源时,如果HSE时钟由于谐振器损坏、断开或其它原因而失效,时钟控制器将激活安全恢复机制,将fMASTER自动切换到辅助时钟源HSI/8。STM8系统将一直使用辅助时钟源,直至MCU被复位。
  设置时钟安全系统寄存器CLK_CSSR中的CSSEN位,可使能STM8的时钟安全系统。为安全起见,CSS一旦使能就不能被关闭,直到下一次复位。
  必须满足下面的条件,CSS方可检测HSE石英晶体的失效:
  HSE晶体开:(外部时钟寄存器CLK_ECKR中的位HSEEN=1)
  HSE振荡器被置为石英晶体(选项位EXTCLK为1)
  CSS功能开:(寄存器CLK_CSSR中CSSEN=1)
  如果当前的主时钟源为HSE,当失效被检测到时,CSS将执行以下操作:
  寄存器CLK_CSSR中的CSSD位被置位,如果CSSIEN为1,则同时产生一个中断。
  CLK_CMSR,CLK_SWR,及CLK_CKDIVR中的HSIDIV[1:0]位被置为复位值(CKM[7:0]=SWI[7:0]=E1h)。HSI/8成为主时钟。
  内部时钟寄存器CLK_ICKR中的HSIEN被置位(HSI开)。
  外部时钟寄存器CLK_ECKR中的HSEEN被清除(HSE关)。
  AXU位被置位,用以指示辅助时钟源HSI/8被强制使用。
  用户可通过软件清除CSSD位,但AXU位只能由复位清除。为了提高时钟频率,用户在清除寄存器CLK_CSSR中的CSSD位以后,可修改寄存器CLK_CKDIVR中的HSIDIV[1:0]位。
  如果失效发生时HSE不是主时钟源,STM8主时钟将不会被切换到辅助时钟源,以上操作也不会发生,仅执行下面的操作:
  外部时钟寄存器CLK_ECKR中的HSEEN被清除,HSE关闭。
  寄存器CLK_CSSR中的位CSSD被置位,如果CSSIEN为1,则同时产生一个中断。
  如果HSE不是当前主时钟源,且主时钟正在被切换至HSE,则在清除CSSD位之前,必须先清除寄存器CLK_SWCR的SWBSY位。
  如果当失效被检测到时,HSE被CCOSEL选择为时钟输出模式(参见时钟输出功能(CCO)),则HSI(HSIDIV)将替代HSE,被自动强制选择为输出时钟。
  关键字: STM8 时钟安全系统 CSS 编辑:什么鱼 引用地址: http://news.eeworld.com.cn/mcu/ic504695.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分