GD32 MCU的FWDG模块是一种独立看门狗定时器,具备12位向下计数功能,并在计数值减到0时产生系统复位信号。以下将详细解读GD32 MCU的FWDG模块:

  1. FWDG模块概述

    • 功能框图与应用:独立看门狗(FWDG)可以视为一个12位递减计数器,当计数器从预设值递减至0时,会输出一个系统复位信号FWDGTRSTF。若在计数过程中刷新计数器的值,即“喂狗”动作,则不会引发系统复位。
    • 独立时钟源:FWDG拥有独立的时钟源IRC40K,即使主时钟失效,FWDG仍能正常工作。这使得FWDG适用于那些需要独立运行且对计时精度要求不高的环境。
  2. FWDG外设原理
    主要特性:核心特性包括12位向下计数器、独立时钟源、硬件控制位、以及调试模式下可选择停止或继续工作。
    时钟与计数器:FWDG时钟源自IRC40K RC振荡器,其频率会有漂移,一般取40KHz。计数器的时钟经过8位预分频器得到,允许通过设置分频因子调整计数速度。

    • 重装载寄存器:该寄存器负责保存要重新装载到计数器的值,此值决定了FWDG的溢出时间。溢出时间Tout的计算公式为(42^prv) / (40 rlv)秒,其中prv是预分频器的值,rlv是重装载寄存器的值。
  3. FWDG控制与状态寄存器

    • 控制寄存器FWDG_CTL:这是FWDG的核心控制寄存器,能够实现三种控制方式,具体效果依据寄存器的具体写入值而变化。
    • 状态寄存器STAT:包含两位重要状态位PUD和RUD,它们由硬件操作且不能通过软件修改。只有在RUD/PUD为0的情况下,才能更新重装载寄存器或预分频寄存器。
  4. FWDG在不同系列的MCU中的差异

    • 各系列差异说明:不同系列的GD32 MCU中,FWDG的时钟频率可能有所不同,如F4xx系列的FWDG时钟频率为32KHz,这会影响到FWDG的定时时间。
  5. 硬件连接与软件配置

    • 硬件连接说明:FWDG作为单片机内部资源,无需外部电路支持。通常结合外部按键和LED使用,通过按键执行“喂狗”操作,成功则LED亮起,失败则程序重启。
    • 软件配置详解:配置FWDG涉及初始化并启动时钟,配置GPIO引脚,设置FWDG相关参数,并通过编程实现喂狗动作。

总的来说,GD32 MCU的FWDG模块为系统稳定性和自动复位提供了一种简易而有效的机制。设计人员应充分利用这一功能,增强产品的可靠性,同时注意根据不同型号的MCU调整FWDG的配置和期望。