外部看门狗在初始化里设置了slow模式,可以在程序运行过程中关闭看门狗吗
您好,
上面是看门狗寄存器(地址 13h、14h、16h 和 2Dh)的寄存器锁定/解锁状态图
进入待机模式后、看门狗寄存器解锁并且看门狗计时器启动。
如果您从重启模式进入待机模式、长窗口看门狗计时器会启动、如果您从正常模式进入待机模式、看门狗计时器将默认使用器件具有的任何看门狗编程设置。
在发送第一个看门狗触发信号后、或者器件在看门狗触发之前转换到正常模式后、看门狗寄存器将锁定并且除非它们再次解锁、否则无法更改。 进入待机模式时看门狗寄存器解锁。
因此、本质上、一旦器件上电并处于待机状态、如果您需要默认看门狗配置以外的其他配置、则在进入待机模式时应发送的第一个命令为:
1.自定义配置到地址 13h
2.自定义配置到地址 14h
3、自定义配置到地址 16h
4.地址 2Dh 的自定义配置
5.发送看门狗触发器
6、配置的其余部分
如果您不更改其中一个寄存器(即,假设您可以使用地址 14h 处的默认配置 — 您可以跳过该步骤-在本例中、这是步骤 2)。
如果您尝试在这些寄存器被锁定时对其进行写入、写入将失败。
如果您当时无法将看门狗更改为所需的模式、则可以将器件切换至正常模式、然后返回待机模式、再次解锁寄存器。
以上语句假设您尚未将 SW 引脚置为高电平有效(默认 SW 引脚为高电平有效)。 就像 SW 保持高电平一样、这将发生两个主要情况。 第一项功能是在软件置为有效运行状态时缺失的看门狗触发条件将被计数和跟踪、但 SBC 不会在看门狗触发丢失时采取任何操作。 另一种行为是看门狗寄存器将在器件处于待机模式的整个时间内被解锁。 一般来说、我不会真的建议将 SW 置为高电平来对看门狗计数器进行编程以用于生产级构建 — 对于开发,这是可以的-但他们应该尝试设计系统、以在 SW 未保持高电平时尊重边界。
另外、为清楚起见、我添加了看门狗状态图
如果您仍有任何疑问或需要进一步澄清、请告诉我!