AVR单片机(学习ing)—(九)、ATMEGA16的模数转换器—01
1、介绍
1)特点:
• 10 位 精度
• 0.5 LSB 的非线性度
• ± 2 LSB 的绝对精度
• 65 - 260 μs 的转换时间
• 最高分辨率时采样率高达15 kSPS
• 8 路复用的单端输入通道
• 7 路差分输入通道
• 2 路可选增益为10x 与200x 的差分输入通道
• 可选的左对齐ADC 读数
• 0 - VCC 的 ADC 输入电压范围
• 可选的2.56V ADC 参考电压
• 连续转换或单次转换模式
• 通过自动触发中断源启动ADC 转换
• ADC 转换结束中断
• 基于睡眠模式的噪声抑制器
Note: 1. 在PDIP封装下的差分输入通道器件未经测试。只保证器件在TQFP 与MLF封装下正常
工作。
2)介绍和框图
ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能
对来自端口A 的8 路单端输入电压进行采样。单端电压输入以0V (GND) 为基准。
器件还支持16 路差分电压输入组合。两路差分输入(ADC1、ADC0 与ADC3、ADC2)
有可编程增益级,在A/D 转换前给差分输入电压提供0dB(1x)、20dB(10x) 或46dB(200x)
的放大级。七路差分模拟输入通道共享一个通用负端(ADC1), 而其他任何ADC 输入可做
为正输入端。如果使用1x 或10x 增益,可得到8 位分辨率。如果使用200x 增益,可得
到7 位分辨率。
ADC 包括一个采样保持电路,以确保在转换过程中输入到ADC 的电压保持恒定。ADC 的
框图如 Figure 98 所示。
ADC 由AVCC 引脚单独提供电源。AVCC 与VCC 之间的偏差不能超过± 0.3V
标称值为2.56V 的基准电压,以及AVCC,都位于器件之内。基准电压可以通过在AREF
引脚上加一个电容进行解耦,以更好地抑制噪声。
2、ADC的工作过程
ADC 通过逐次逼近的方法将输入的模拟电压转换成一个10 位的数字量。最小值代表
GND,最大值代表AREF引脚上的电压再减去1 LSB。通过写ADMUX寄存器的REFSn位
可以把AVCC 或内部2.56V 的参考电压连接到AREF 引脚。在AREF 上外加电容可以对
片内参考电压进行解耦以提高噪声抑制性能。
模拟输入通道与差分增益可以通过写ADMUX 寄存器的MUX 位来选择。任何ADC 输入
引脚,像GND 及固定能隙参考电压,都可以作为ADC 的单端输入。ADC 输入引脚可选
做差分增益放大器的正或负输入。
如果选择差分通道,通过选择被选输入信号对的增益因子得到电压差分放大级。然后放大
值成为ADC 的模拟输入。如果使用单端通道,将绕过增益放大器。
通过设置ADCSRA 寄存器的ADEN 即可启动ADC。只有当ADEN 置位时参考电压及输
入通道选择才生效。ADEN 清零时ADC 并不耗电,因此建议在进入节能睡眠模式之前关
闭ADC。
ADC转换结果为10位,存放于ADC数据寄存器ADCH及ADCL中。默认情况下转换结果为
右对齐,但可通过设置ADMUX 寄存器的ADLAR 变为左对齐。
如果要求转换结果左对齐,且最高只需8 位的转换精度,那么只要读取ADCH 就足够了。
否则要先读ADCL,再读ADCH,以保证数据寄存器中的内容是同一次转换的结果。一旦
读出ADCL, ADC 对数据寄存器的寻址就被阻止了。也就是说,读取ADCL 之后,即使
在读ADCH 之前又有一次ADC 转换结束,数据寄存器的数据也不会更新,从而保证了转
换结果不丢失。ADCH 被读出后, ADC 即可再次访问ADCH 及ADCL 寄存器。
ADC转换结束可以触发中断。即使由于转换发生在读取ADCH与ADCL之间而造成ADC无
法访问数据寄存器,并因此丢失了转换数据,中断仍将触发。
3、启动一次转换
向 ADC 启动转换位ADSC 位写"1” 可以启动单次转换。在转换过程中此位保持为高,直
到转换结束,然后被硬件清零。如果在转换过程中选择了另一个通道,那么ADC 会在改
变通道前完成这一次转换。
ADC转换有不同的触发源。设置ADCSRA寄存器的ADC自动触发允许位ADATE可以使能
自动触发。设置ADCSRB 寄存器的ADC 触发选择位ADTS 可以选择触发源( 见触发源
列表中对ADTS 的描述)。当所选的触发信号产生上跳沿时, ADC 预分频器复位并开始
转换。这提供了一个在固定时间间隔下启动转换的方法。转换结束后即使触发信号仍然存
在,也不会启动一次新的转换。如果在转换过程中触发信号中又产生了一个上跳沿,这个
上跳沿将被忽略。即使特定的中断被禁止或全局中断使能位为0,中断标志仍将置位。这
样可以在不产生中断的情况下触发一次转换。但是为了在下次中断事件发生时触发新的
转换,必须将中断标志清零。
使用ADC 中断标志作为触发源,可以在正在进行的转换结束后即开始下一次ADC 转换。
之后ADC 便工作在连续转换模式,持续地进行采样并对ADC 数据寄存器进行更新。第
一次转换通过向ADCSRA 寄存器的ADSC 写1 来启动。在此模式下,后续的ADC 转换
不依赖于ADC 中断标志ADIF 是否置位。
如果使能了自动触发,置位ADCSRA 寄存器的ADSC 将启动单次转换。ADSC 标志还
可用来检测转换是否在进行之中。不论转换是如何启动的,在转换进行过程中ADSC 一
直为1。
AVR单片机ATMEGA16模数转换 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)