STM8L 微控制器独立看门狗功能详解

需积分: 16 30 下载量 13 浏览量 更新于2024-08-09 收藏 7.77MB PDF 举报
"STM8L15X系列微控制器的独立看门狗功能" STM8L15X系列微控制器提供了一种独立的看门狗(IWDG)功能,用于确保系统在出现故障或异常情况时能保持稳定运行。独立看门狗是一个硬件安全机制,即使主程序陷入无限循环或发生其他未预期的状况,也能强制系统复位,恢复正常工作状态。 25.2章节详细描述了独立看门狗的功能。该功能模块由一个计数器组成,当通过写入特定值(0xCC)到iwdg_kr寄存器启动后,计数器会从0xFF的预设值开始倒计数。一旦计数器减至0x00,它会产生一个复位信号,即IWDG复位,从而重启微控制器。 独立看门狗的配置可以通过iwdg_pr和iwdg_rlr寄存器完成。iwdg_pr寄存器用于设定分频器的分频因子,它决定了计数器时钟的速度。iwdg_rlr寄存器则用来设置计数器的重载值。为了防止看门狗计数器溢出导致复位,软件需要定期写入key_refresh值(0xAA)到iwdg_kr寄存器,这会将iwdg_rlr中的值加载到计数器,从而刷新计数器。 寄存器iwdg_pr和iwdg_rlr具有写保护机制,修改它们前需要先写入key_access代码到iwdg_kr寄存器。如果在写入key_access后的操作失败,如写入0xAA,看门狗将不会被正确刷新,这可能会触发复位。 硬件看门狗功能在STM8L15X微控制器上是自动启用的,如果在选项字节中启用了iwdg_hw。一旦电源接通,看门狗计数器开始计数,若在计数结束前没有进行刷新操作,系统将执行复位。 超时时间的计算取决于iwdg_pr和iwdg_rlr寄存器的设置。最大超时时间T可以通过以下公式确定: \[ T = \frac{TLSI}{flsi} \times P \times R \] 其中,TLSI是时钟源的周期,P是基于iwdg_pr的分频值,R是iwdg_rlr的值加1。如果在超时时间T到期前未刷新计数器,将会有一个延迟D后产生独立看门狗复位: \[ D = T + 3 \times TLSI \] D表示从上一次刷新操作到看门狗复位的延迟时间。 STM8L15X系列包括不同存储密度的微控制器,适用于低功耗应用。例如,STM8L151C2/K2/G2/F2等型号有4KB或8KB的Flash内存,而STM8L151x8和STM8L152x8型号则有64KB的Flash内存。每个型号都配备了不同的外设,满足不同应用的需求。 CPU方面,STM8L系列采用的是STM8核心,其包含多个寄存器,如全局配置寄存器(cfg_gcr),用于配置系统级的参数。通过配置这些寄存器,开发者可以精细控制微控制器的工作模式和特性,以优化性能和能耗。 STM8L15X系列的独立看门狗功能是确保系统可靠性和稳定性的关键部分,它通过精确的计时和刷新机制,为嵌入式系统提供了一层额外的安全保障。