APM32的ADC模拟看门狗(Analog Watchdog,简称AWD)是一种硬件监控机制,用于实时监测ADC转换的模拟信号是否超出预设的阈值范围。其核心作用在于提高系统对关键模拟信号的响应效率和可靠性。
主要特点与作用:阈值监控
- 用户可设置高阈值(HTR)和低阈值(LTR),当ADC转换结果超过高阈值或低于低阈值时,触发模拟看门狗事件。
自动触发中断/事件
- 超出阈值时,硬件自动触发中断或事件,无需软件轮询ADC数据,节省CPU资源。
应用场景
- 安全监测:如电池电压、温度传感器信号超出安全范围时触发保护机制。
- 异常检测:快速响应传感器故障或信号异常,提升系统鲁棒性。
- 低功耗优化:通过事件触发唤醒CPU,替代持续轮询,降低功耗。
配置关键步骤:- 设置阈值寄存器:通过ADC_AnalogWatchdogHighThreshold(awhtVoltage);和ADC_AnalogWatchdogLowThreshold(awltVoltage);定义监控范围。
- 选择监控通道:通过ADC_AnalogWatchdogSingleChannel(ADC_ANALG_WDT_CHANNEL_0);配置需监控的ADC通道(单通道模式)。
- 使能中断:开启模拟看门狗中断(ADC_EnableInterrupt(ADC_INT_AWD);),并在NVIC中配置中断优先级。
- 处理中断服务程序(ISR):在中断中读取ADC值并执行保护逻辑(如关闭设备、报警等)。
注意事项:- 阈值精度:阈值范围为12位(0-4095),需根据ADC参考电压(VREF+)换算为实际电压值。
- 抗干扰设计:合理设置迟滞区间或软件滤波,避免噪声导致的误触发。
在APM32各系列的SDK例程中都有ADC模拟看门狗的例程可以直接参考使用。
例如:APM32F0xx_SDK_v1.7\Examples\ADC\ADC_AnalogWindowWatchdog
|