微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR单片机(学习ing)—(九)、ATMEGA16的模数转换器—01

AVR单片机(学习ing)—(九)、ATMEGA16的模数转换器—01

时间:11-27 来源:互联网 点击:

意以下指导方针:
工作于单次转换模式时,总是在启动转换之前选定通道。在ADSC 置位后的一个ADC 时
钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通
道。
在连续转换模式下,总是在第一次转换开始之前选定通道。在ADSC 置位后的一个ADC
时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变
通道。然而,此时新一次转换已经自动开始了,下一次的转换结果反映的是以前选定的模
拟输入通道。以后的转换才是针对新通道的。
当切换到差分增益通道,由于自动偏移抵消电路需要沉积时间,第一次转换结果准确率很
低。用户最好舍弃第一次转换结果。

8、ADC 基准电压源

ADC的参考电压源(VREF)反映了ADC的转换范围。若单端通道电平超过了VREF,其结果将
接近0x3FF。VREF 可以是AVCC、内部2.56V 基准或外接于AREF 引脚的电压。
AVCC通过一个无源开关与ADC相连。片内的2.56V参考电压由能隙基准源(VBG)通过内部
放大器产生。无论是哪种情况,AREF 都直接与ADC 相连,通过在AREF 与地之间外加
电容可以提高参考电压的抗噪性。VREF 可通过高输入内阻的伏特表在AREF 引脚测得。
由于VREF 的阻抗很高,因此只能连接容性负载。
如果将一个固定电源接到AREF 引脚,那么用户就不能选择其他的基准源了,因为这会导
致片内基准源与外部参考源的短路。如果AREF 引脚没有联接任何外部参考源,用户可以
选择AVCC 或1.1V 作为基准源。参考源改变后的第一次ADC 转换结果可能不准确,建
议用户不要使用这一次的转换结果。

9、相关寄存器

1)ADMUX



• Bit 7:6 – REFS1:0: 参考电压选择
如Table 83 所示,通过这几位可以选择参考电压。如果在转换过程中改变了它们的设置,
只有等到当前转换结束(ADCSRA 寄存器的ADIF 置位) 之后改变才会起作用。如果在
AREF 引脚上施加了外部参考电压,内部参考电压就不能被选用了。



• Bit 5 – ADLAR: ADC 转换结果 左对齐
ADLAR影响ADC转换结果在ADC数据寄存器中的存放形式。ADLAR置位时转换结果为左
对齐,否则为右对齐。ADLAR 的改变将立即影响ADC 数据寄存器的内容,不论是否有
转换正在进行。

• Bits 4:0 – MUX4:0: 模拟通道与增益选择位
通过这几位的设置,可以对连接到ADC 的模拟输入进行选择。也可对差分通道增益进行
选择。细节见Table 84。如果在转换过程中改变这几位的值,那么只有到转换结束
(ADCSRA 寄存器的ADIF 置位) 后新的设置才有效。






2)ADC控制和状态寄存器—ADCSRA


• Bit 7 – ADEN: ADC 使能
ADEN置位即启动ADC,否则ADC功能关闭。在转换过程中关闭ADC将立即中止正在进行
的转换。
• Bit 6 – ADSC: ADC 开始转换
在单次转换模式下,ADSC 置位将启动一次ADC 转换。在连续转换模式下,ADSC 置位
将启动首次转换。第一次转换( 在ADC 启动之后置位ADSC,或者在使能ADC 的同时置
位ADSC) 需要25 个ADC 时钟周期,而不是正常情况下的13 个。第一次转换执行ADC
初始化的工作。
在转换进行过程中读取ADSC 的返回值为"1”,直到转换结束。ADSC 清零不产生任何动
作。
• Bit 5 – ADATE: ADC 自动触发使能
ADATE置位将启动ADC自动触发功能。触发信号的上跳沿启动ADC转换。触发信号源通
过SFIOR 寄存器的ADC 触发信号源选择位ADTS 设置。
• Bit 4 – ADIF: ADC 中断标志
在ADC 转换结束,且数据寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局
中断使能位I 也置位,ADC 转换结束中断服务程序即得以执行,同时ADIF 硬件清零。此
外,还可以通过向此标志写1 来清ADIF。要注意的是,如果对ADCSRA 进行读-修改
-写操作,那么待处理的中断会被禁止。这也适用于SBI 及CBI 指令。
• Bit 3 – ADIE: ADC 中断使能
若ADIE 及SREG 的位I 置位, ADC 转换结束中断即被使能。
• Bits 2:0 – ADPS2:0: ADC 预分频器选择位
由这几位来确定XTAL 与ADC 输入时钟之间的分频因子。



3)ADC 数据寄存器- ADCL 及ADCH



ADC 转换结束后,转换结果存于这两个寄存器之中。如果采用差分通道,结果由2 的补码
形式表示。
读取ADCL 之后,ADC 数据寄存器一直要等到ADCH 也被读出才可以进行数据更新。因
此,如果转换结果为左对齐,且要求的精度不高于8 比特,那么仅需读取ADCH 就足够
了。否则必须先读出ADCL 再读ADCH。
ADMUX 寄存器的 ADLAR 及MUXn 会影响转换结果在数据寄存器中的表示方式。如果
ADLAR 为1,那么结果为左对齐;反之( 系统缺省设置),结果为右对齐。
• ADC9:0: ADC 转换结果
ADC 转换的结果。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top