ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
WWDT 以 32kHz 低频时钟 (LFCLK) 运行。时钟分频器支持使用 WWDTCTL0 寄存器中的 CLKDIV 字段,将输入时钟从 /1(不分频)分频为 /8(8 分频)。默认 CLKDIV 设置为 0x03(32kHz 进行 4 分频,即 8kHz)。
通过从 LFCLK 运行,只要不将这些时钟配置为从 LFCLK 运行,WWDT 时基就与主时钟 (MCLK) 和 CPU 时钟 (CPUCLK) 时基无关。虽然时基可能被视为独立的并源自一个单独的振荡器源,但在提供 WWDT 之前,LFCLK 边沿会与 MCLK 同步,以实现从应用软件对存储器映射寄存器的简单访问。图 29-3 中提供了时钟方案的简化视图。在图 29-3 中,内部 LFOSC 配置为设置 LFCLK 速率,内部 SYSOSC 设置 MCLK/CPUCLK 速率。为了简化视图,图中不包括时钟选择多路复用器和分频器;节 2.3.3 中提供了完整的时钟树。
如果 MCLK 失败并且 LFCLK 与 MCLK 的同步丢失,则可以通过启用连续 MCLK 监测器来检测到该故障。当 MCLK 监测器被启用时,MCLK 的丢失始终是一个灾难性故障,它会在 12 个 LFCLK 周期内生成一个 BOOTRST。因此,MCLK 树的丢失和相应的同步丢失不会阻止生成 BOOTRST。
WWDT 有一个 25 位计数器,最初会在 SYSRST 之后停止。WWDT 周期(总时间间隔)由 WWDTCTL0 寄存器中的 PER 字段来设置。总 WWDT 周期的计算方法如下:
对于总计时器计数 PERCOUNT,选择 8 个可能的周期计数值之一,表 29-1 给出了相应的编码。
| PER | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 |
|---|---|---|---|---|---|---|---|---|
| PERCOUNT | 225 | 221 | 218 | 215 | 212 | 210 | 28 | 26 |
周期选择 (PER) 和时钟分频器 (CLKDIV) 的组合可实现宽范围的 WWDT 周期,范围从 1.95ms 到 136.53 分钟。表 29-2 给出了给定 PER 和 CLKDIV 组合的所有可能的 WWDT 周期。
| CLKDIV | PER | |||||||
|---|---|---|---|---|---|---|---|---|
| 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | |
| 分钟 | 分钟 | s | s | s | ms | ms | ms | |
| 0x0 (/1) | 17.07 | 1.07 | 8.00 | 1.00 | 0.13 | 31.25 | 7.81 | 1.95 |
| 0x1 (/2) | 34.13 | 2.13 | 16.00 | 2.00 | 0.25 | 62.50 | 15.63 | 3.91 |
| 0x2 (/3) | 51.20 | 3.20 | 24.00 | 3.00 | 0.38 | 93.75 | 23.44 | 5.86 |
| 0x3 (/4) | 68.27 | 4.27 | 32.00 | 4.00 | 0.50 | 125.00 | 32.25 | 7.81 |
| 0x4 (/5) | 85.33 | 5.33 | 40.00 | 5.00 | 0.63 | 156.25 | 39.06 | 9.77 |
| 0x5 (/6) | 102.40 | 6.40 | 48.00 | 6.00 | 0.75 | 187.50 | 46.88 | 11.72 |
| 0x6 (/7) | 119.47 | 7.47 | 56.00 | 7.00 | 0.88 | 218.75 | 54.69 | 13.67 |
| 0x7 (/8) | 136.53 | 8.53 | 64.00 | 8.00 | 1.00 | 250.00 | 62.50 | 15.63 |
当启动或重新启动 WWDT 计数器时,在 WWDT 计数器从零开始计数之前,可能会发生一个 32kHz 时钟周期 (30.5µs) 的最大同步延迟。表 29-2 中给出的周期不包括此同步延迟。
通过设置 WWDTCTL0 寄存器中的 WINDOW0 和 WINDOW1 字段,可以配置两个关闭窗口期。WWDTCTL1 寄存器中的 WINSEL 位决定运行窗口(WINDOW0 或 WINDOW1)。任一窗口都可以设置为 8 种可能的窗口设置之一。
| 窗口 | 0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 |
|---|---|---|---|---|---|---|---|---|
| 关闭窗口 | 0% | 12.5% | 18.75% | 25% | 50% | 75% | 81.25% | 87.5% |
将 WINDOWx 值设置为 0x0(0% 关闭,100% 打开)等效于禁用 WWDT 的窗口功能。在此配置中,可以在 WWDT 期间的任意时刻重新启动 WWDT。
启用 WWDT 后,可以更改活跃窗口选择。当向 WWDTCNTRST 寄存器写入数据以重新启动 WWDT 时,必须至少在四个 32kHz 时钟周期(约为 122µs)内更改关闭窗口选择 (WINSEL)。