看门狗低功耗,哥已经实现了,只是摆在面前一个“血淋淋”的问题

2020-02-08 09:12发布

看门狗溢出唤醒实现了,功耗可以降低到10uA,但是这个看门狗时间不准,怎么办才好呢?
7分钟在不同电压下会有30s左右的误差,实在是有点失望,没有办法解决了?大伙有办法吗?

datasheet上说
在最坏的情况下(VDD = 最小值且温度 = 最大值并且
WDT 预分频比最大),在发生WDT 超时溢出之前会有
几秒钟的延迟。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
29条回答
bbsniua
2020-02-10 10:14
508可以休眠唤醒?
12F508的规格书说明如下:

7.6 看门狗定时器 (WDT)
看门狗定时器(WDT)是自由运行的片上 RC 振荡器,
它不需要任何外部组件。 此 RC 振荡器独立于 (GP5/
RB5)/OSC1/CLKIN 引脚外接的 RC 振荡器和内部
4MHz 振荡器。 这意味着即使主处理器时钟已经停止
(如通过执行SLEEP 指令)WDT将仍然运行。 在正常
工作或休眠过程中, WDT 复位或唤醒复位都会产生器
件复位。
TO位(STATUS<4>)将在看门狗定时器复位时清零。
可以通过将配置位WDTE编程为 “0” 来永久禁止WDT
(见第7.1节 “配置位”)。  如需确定访问配置字的方法,
请参见“PIC12F508/509/16F505 Programming
Specifications” 。

我做过那个看门狗后休眠,唤醒后就复位了,根本无法工作,

12F629我就弄过看门狗唤醒继续工作的,
12F629规格书说明如下:

9.6 看门狗定时器 (WDT)
看门狗定时器是可自行运行的片上 RC 振荡器,它无需
任何外接元件。该RC振荡器与CLKIN引脚上的RC振
荡器和INTOSC是相互独立的。 这就意味着即使停止器
件 OSC1 和 OSC2 引脚上的时钟 (如执行 SLEEP 指
令) ,WDT仍可工作。正常工作情况下,WDT 超时将
导致器件复位。如果器件处于休眠模式,WDT 超时将
唤醒器件并使其继续在正常状态下工作。通过将配置位
WDTE编程为 0可永久禁止 WDT(第 9.1 节) 。


区别在那句休眠后的看门狗.


还有那个看门狗时间你可以用32768的晶振在定时器1启动LP振荡后对看门狗计时得到时间,
在温度和电压不变的情况下误差不会很大!

还有楼主的了解也错误,
人家规格书说是溢出时间(也就是本身的振荡频率随着温度和电压改变后造成定时的时间也改变) 而不是溢出之前的延迟时间(正确点叫定时时间),
你需要稳定那么就稳压和恒温,稳压比较容易实现,
看门狗工作电流大概1uA左右,
跑的程序不多的话大概几个uA搞定了,
如果你还想更省电那么就用带低功耗唤醒的PIC,
在那个脚串一个电阻(一般都在编程脚,如果不加电阻会编程不了)和一个电容到地,
那个定时的功耗是nA级的

一周热门 更多>