0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > AVR(ATmega 328P)单片机片内ADC的原理和使用

AVR(ATmega 328P)单片机片内ADC的原理和使用

来源:
2020-08-11
类别:基础知识
eye 278
文章创建人 拍明

原标题:AVR(ATmega 328P)单片机片内ADC的原理和使用

  

  ATmega328p内部集成了一个10位的逐次逼近的A/D转换器。该转换器与一个8通道的模拟多路复用器连接。它能够对来自端口A的8路单端输入电压进行采样。

  

  ADC转换模块的原理图

  看一下它的基本特性:

  10位分辨率

  0.5 LSB积分非线性

  ±2 LSB绝对精度

  13 -~260µs转换时间

  最高采样速率76.9 kSPS/s

  6路可选的单端输入通道

  2路额外多路复用单端输入通道(TQFP 、QFN/MLF)

  温度传感器输入通道

  ADC读取的结果可设置为左端对其

  0~Vcc ADC输入电压范围

  可选择1.1v ADC参考电压

  自由连续转换模式和单次转换模式

  在ADC转换完成时中断

  睡眠模式噪音消除

  ADC的供电和参考电压:

  ADC由独立的专用的模拟电压引脚AVCC供电,AVCC和VCC的电压差别不能大于±0.3V。

  ADC的参考电源可以是芯片内部的1.1v的参考电源,也可以是AVCC,也可以采用外部参考电源,使用外部参考电源的时候,外部参考电源可由引脚AREF接入,使用内部参考电压源的时候,可以通过在AREF引脚外部并接一个电容来提高ADC的抗噪性能。这个电容一般可为0.1uF

  与ADC有关的寄存器:

  ADMUX:多路复用选择寄存器

  

  bit6、bit7 :ADC参考电压选择。如果在转换过程中改变了设置,则只有等待当前转换结束后才起作用。如果在 AREF引脚上施加了外部参考电压,则内部参考电压将不能被选择。这个参考电压的选择见下图:

  

  还是解释一下:

  00 :AREF,内部基准源关闭

  01 :AVCC,AREF外接滤波电容

  10 : 保留

  11 :1.1v内部基准电压源,AREF外接滤波电容

  bit5:转换结果对齐位。置位左对齐,清位右对齐

  bit4:一个保留位

  bit3~bit0:模拟通道选择位

  就是选择连接到哪个通道上,这个没啥说的。看表就好了,如下:

  

  2. ADCSRA:ADC控制和状态寄存器A

  

小5带你飞(8)—AVR(ATmega 328P)<a target=单片机片内ADC的原理和使用(1)" src="https://supp.iczoom.com/images/public/202008/1597117267797572755.jpg" style="width: 723px; height: 102px;" width="723" height="102"/>

  bit7:ADC使能位。置位则启动ADC功能,清位ADC功能关闭

  bit6:ADC开始转换。

  在单次转换模式下,该位置位将启动一次ADC转换,在连续转换模式下,该位置位,将启动首次转换

  bit5:ADC自动触发使能位。

  该位置位,则启动ADC自动触发功能。

  bit4:ADC中断标志位

  ADC转换结束且数据寄存器被更新后该位置位,如果ADIE及SREG寄存器中的全局中断使能位I被置位,

  则ADC转换结束中断服务程序被执行,同时该位被硬件清零,也可以通过软件写1清零。

  bit3:ADC中断使能位。如果该位及SREG寄存器中的全局中断使能位I被置位,则ADC转换结束中断将被使能。

  bit2~bit0:ADC预分频器的选择。这三位决定ADC输入时钟与CPU时钟之间的分频系数,如下表:

  

  3. ADCL 、 ADCH :ADC数据寄存器

  

  分别是左对齐的和右对齐的数据

  ADC转换结束后,转换结果将存在这两个寄存器当中。首先ADMUX寄存器当中的ADLAR和MUXn影响转换结果在寄存器中的存放形式。当ADCL被读取时,ADC数据寄存器在读取ADCH之前不会更新,如果转换结果为左对齐且只需要8位的精度,那么仅需要读取ADCH就可以了,否则需先读取ADCL然后读取ADCH。

  4.ADCSRB :ADC控制和状态寄存器B

  

  bit2~bit0:ADC自动触发源的选择

  

  说明一下吧:

  000:连续转换模式

  001:模拟比较器

  010:外部中断请求0

  011:定时器/计数器0比较匹配A

  100:定时器/计数器0溢出

  101: 定时器/计数器0比较匹配B

  110:定时器DIDR0数器1溢出

  111:定时器/计数器1捕捉事件

  5. DIDR0:数字输入禁用寄存器0

  

  说明一下:

  bit5~bit0 :当这些位置位,相应的ADC引脚的数字输入缓存区被禁止,相应的PIN寄存器读取的时候都为0,

  模拟信号运用于ADC5~ADC0,是不需要这么做的,ADC6和ADC7是没有缓存区的。

  下面来看看ADC的基本使用步骤:

  ADC输入端口初始化

  基准电压的设置,数据对齐方式的设置,通道的选择。(ADMUX寄存器的配置)

  AD使能,启动装换,中断的设置(ADCSRA寄存器的设置)

  触发源的选择(ADCSRB寄存器的设置)

  选择中断号,编写中断服务程序,读取ADC的数据(ADCL 、 ADCH )



责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯