我引用维基百科:
看门狗定时器(WDT;有时称为计算机正常运行或COP定时器,或只是看门狗)是一个电子定时器,用于检测计算机故障并从中恢复。
在使用STM32F429I-Discovery时,我遇到一个[在"stm32f4xx.h"
]中使用寄存器来禁用看门狗的术语:
#define ADC_CR1_AWDIE ((uint32_t)0x00000040) //Analog Watchdog interrupt enable
在这里,我无法理解模拟看门狗
如果可能的话,
#define ADC_CR1_JAWDEN ((uint32_t)0x00400000) //Analog watchdog enable on injected channels
注入频道在这里是什么?
答案 0 :(得分:8)
看门狗定时器可以被认为是两个独立的电路,一个定时器电路和一个看门狗电路。定时器电路仅计算经过的时间。看门狗电路主动监视定时器,以查看是否已经过了一定的时间而没有被软件复位。如果是这样,则软件不再运行,并且看门狗通常执行自动功能,例如重置处理器。看门狗只需要在初始化时告知需要多长时间进行监控,并且无需额外的软件交互即可处理剩余的操作。
模拟看门狗以类似的方式操作。它不是监视定时器,而是监视模拟输入通道。在初始化时,您告诉看门狗要监视哪些模拟阈值。如果模拟输入上的转换值超过这些阈值之一,则会触发中断以处理信号样本。这意味着您不必编写代码来连续轮询模拟输入并检查其级别。它全部由模拟看门狗电路在后台自主处理。
注入的频道可以被视为高优先级转换频道。如果常规模拟输入正在执行转换并且在注入通道上触发转换(通过定时器或因为它以连续转换模式编程),则常规通道上的转换将停止并等待注入的通道在完成自己的转换之前被转换。如果您具有必须以实时方式响应的模拟输入,这将非常有用。
这是一个application note(由于一些奇怪的原因,在ST的网站上似乎没有提供),给出了一些使用各种ADC功能的例子。这里有another explanation这个问题的两个特征。
答案 1 :(得分:3)
术语"看门狗"在此上下文中指的是连续监视ADC通道的事实。
在此上下文中,该术语与处理器操作监视程序无关 - 它监视处理器操作。虽然您可以将它用作欠压检测或电源故障检测,但如果您的电源作为储能电容器或备用电池能够在供电侧断电后保持处理器足够长的时间。
STM32上的模拟看门狗只是在某些外部电压低于或超过可编程阈值电平时产生中断的一种方法。当ADC转换配置为自由运行时,这可以在没有软件干预的情况下完成,因此如果应用程序只需要响应阈值,则可以在零轮询的情况下实现ADC轮询。
您可以将此功能用于RF应用中的载波侦听检测,方法是使用它来监控来自FM解调器的RSSI信号。或者它可以用在bang-bang控制器中,例如锅炉恒温器。 AWD具有上限和下限阈值,因此可用于实现滞后,您可以动态修改阈值以在曲线上生成多个事件。