第 10 章 模拟比较器和 ADC 接口模拟比较器和模数转换 ADC 是单片机内部最常见的两种支持模拟信号输入的功能接口
大部分 AVR 都具备这两种类型的接口
本章将以 ATmage16 芯片为例,介绍这两种模拟接口的原理和应用设计方法
1 模拟比较器ATmega16 的模拟比较器可以实现对两个输入端:正极 AIN0 和负极 AIN1(对应于ATmage16 的引脚 PB2、PB3)的模拟输入电压进行比较
当 AIN0 上的电压高于 AIN1 的电压时,模拟比较器输出 ACO 被设为“1”
比较器的输出还可以被设置作为定时计数器 1 输入捕获功能的触发信号
此外,比较器的输出可以触发一个独立的模拟比较器中断
用户可以选择使用比较器输出的上升沿、下降沿或事件触发作为模拟比较器中断的触发信号
比较器的方框图和周围电路如图 10-1 所示
图 10-1 模拟比较器的方框图10
1 与模拟比较器相关的寄存器和标志位与模拟比较器相关的寄存器是 SFIOR、ACSR
用户通过这两个寄存器的相关位实现对模拟比较器的设置和控制
1) 特别功能 IO 寄存器—SFIOR寄存器 SFIOR 中的第 3 位 ACME 为模拟比较器多路使能控制位
当该位为逻辑“1”,同时模数转换(ADC)功能被关闭(ADCSRA 寄存器中的 ADEN 使能位为“0”)时,允许使用 ADC 多路复用器选择 ADC 的模拟输入端口作为模拟比较器反向端的输入信号源
当该位为零时,AIN1 引脚的信号将加到模拟比较器反向端
2) 模拟比较器控制和状态寄存器—ACSRACSR 是模拟比较器主要的控制寄存器,其中各个位的作用如下:位 7—ACD:模拟比较器禁止当该位设为“1”时,提供给模拟比较器的电源关闭
该位可以在任何时候被置位,从而关闭模拟比较器
在 MCU 闲置模式,且无需将模拟比较器作为唤醒源的情况下,