STM8应用笔记 STM8单片机内核剖析 STM8 时钟安全系统(CSS)

STM8 时钟安全系统(CSS)

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

时钟安全系统用于监控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)

——