
使用STM32F05xx模拟比较器的六个应用案例 简介 本文档介绍了超低功耗 STM32F05xx 产品系列内置的两个模拟比较器的六个应用实例。这些应用实例如下: ● 模拟电压监测 ● 停机模式下的模拟看门狗 ● 脉冲宽度测量 ● 脉冲宽度调制 (PWM) 信号控制 ● 电容测量 ● 使用光敏电阻 (LDR) 控制亮度 这六个应用实例演示了模拟比较器的用途,并介绍了它们与数模转换器 (DAC) 和定时器等其它外设联合工作的方式。 为确保用户快速入门,本文档介绍的四个应用实例均用 C 语言实现,并在STM32F0xx_StdPeriph_Lib 软件包的 Project\STM32F0xx_StdPeriph_Examples\COMP 中提供。 请注意,本文档不能替代 RM0091 产品参考手册(针对 STM32F05xx)中的比较器部分。有关外设的功耗,应参考器件数据手册。 ![]() 1 模拟电压监测 STM32F05xx 器件内置一个 12 位高速模数转换器 (ADC),其采样率可达 1 M/秒。但是,该转换器的典型电流消耗为 1.5 mA,如果连续通电,可能会缩短电池使用寿命。因此,建议在超出预定义阈值后需要立即测量模拟输入电压(传感器输出)的应用实例中使用模拟比较器。 在 STM32F05xx 器件中,可使用模拟比较器监视模拟输入电压并在需要时为 ADC 上电。监视模拟电压时,器件可以进入停机模式,同时,两个比较器仍处于通电状态。这样既可优化功耗,又可实现节能。 注: 模拟比较器由内部参考电压 VREFINT 供电,此电压在停机模式下仍处于通电状态。禁止VREFINT 后,便无法再使用比较器。 在模拟电压监测应用中,当传感器输出电压低于阈值时,MCU 可保持在停机模式下,从而实现节能。一旦传感器输出电压超过阈值,MCU 便会唤醒,ADC 通电并开始测量模拟输入电压。当传感器输出电压低于阈值时,MCU 会重新进入停机模式。 无论输入值如何,与连续测量模拟电压的应用相比,此应用的平均功耗都会显著降低。 图 1 介绍了如何将传感器输出(温度传感器、压力传感器、热电红外探测器或光电二极管传感器)连接到使用比较器 2 (COMP2) 的模拟电压监测应用中的 STM32F05xx 器件。COMP2在停机模式下监视模拟电压,而 ADC 在运行模式下测量模拟电压。 ![]() ![]() 输入模拟电压可连接到 COMP1 的 PA1 或 COMP2 的 PA3。模拟阈值可通过 VREFINT 及其因数从内部提供,也可通过 COMP1 的外部引脚 PA0 或 PA5 或者 COMP2 的外部引脚 PA2或 PA5 提供。由于 DAC 通道在停机模式下会断电,因此这类应用中不能使用 DAC 通道 1(DAC_OUT)。COMPx 通过外部中断线(EXTI 线 21 和 22)从停机模式唤醒器件。 |
好,不错不错! |