历史上的今天

今天是:2024年11月25日(星期一)

2019年11月25日 | AVR 单片机学习笔记 – ADC

发布者:二进制心灵 来源: 51hei关键字:AVR  单片机  ADC 手机看文章 扫描二维码
随时随地手机看文章

一、AVR单片机片内ADC简介


模数转换器即A/D转换器,或简称ADC(Analog Digital Converter),它是一种将输入模拟量转变为输出数字量的器件,是连接模拟和数字的桥梁。通常是指一个将模拟信号转变为数字信号的电子元件。


通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。


模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。


A/D转换一般要经过采样、保持、量化及编码4个过程。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。


模数转换器的分类

A/D转换器的种类很多,并且有多种分类方法,下面做简单介绍:

1)从原理上通常可分为以下4种:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行A/D转换器。

计数式A/D转换器结构很简单,转换速度很慢,现在很少采用。

双积分式A/D转换器抗干扰能力强,转换精度高,但转换速度不够快,一般用于数字式测量仪表中。


逐次逼近式A/D转换器结构不太复杂,转换速度很高,一般应用于微机接口电路中。并行A/D转换器的转换速度最快,但结构复杂,成本高,一般只应用于那些转换速度极高的场合。

2)从输出代码的有效位数可分为8位,10位,12位,14位,16位,24位及BCD码输出的3位,4位,5位等多种不同的位数。

3)从数据输出的接口类型可分为并行接口型和串行接口型


二、

ATmega16单片机集成了一个10位的逐次逼近型A/D转换器,A/D转化器与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。

特点:

8路可选的单端输入通道,占用PA0 – PA7引脚,由于只有一个ADC核,所以只能一次采集一路通道;

7路差分输入通道;

ADC转换结果的读取可以设置左端对齐(默认右端对齐),因为该ADC是十位的,需要两个寄存器才能存储完整的转换过后的数据;

在最高精度下可达到15KPS/s的采样速率;

可选择的ADC内部2.56V的ADC参考电压源;

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

ADC自动选择转换触发模式选择;

ADC转换完成可触发中断;


二、ADC的供电和参考电压

ADC功能单元由独立的专用模拟电源引脚AVCC(第30引脚)供电,AVCC与VCC的电压差别要小于或等于0.3V。

ADC转换的参考电源可采用芯片内部的2.56V参考电源,或采用AVCC,也可采用外部参考电源。使用外部参考电源时,外部参考电源有引脚AREF接入。使用内部电压参考电源时,可以通过在AREF引脚外部并接一个电容提高ADC的抗噪性能。


三、与ADC有关的寄存器
1、ADC多路复用器选择寄存器ADMUX

      

ADC多路复用器选择寄存器ADMUX

   
      

   
      

7

   
      

6

   
      

5

   
      

4

   
      

3

   
      

2

   
      

1

   
      

0

   
      

名称

   
      

REFS1

   
      

REFS0

   
      

ADLAR

   
      

MUX4

   
      

MUX3

   
      

MUX2

   
      

MUX1

   
      

MUX0

   
      

读/写

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

初始值

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

功能

   
      

参考电源选择

   
      

对齐方式

   
      

指定使用通道及增益

   










位【7-6】— REFS[1-0] :ADC参考电源选择位。是用来指定ADC的参考电源采用
何种参考电源,有三种参考电源:内部2.56V、AREF、AVCC。如果在转换过程中改变了设置,则只有等到当前转换结束后新的设置才会起作用。内、外部参考电压不能同时被选择,否则会短路损坏芯片。

具体设置表:

      

ADC参考电源选择位设置表

   
      

REFS1

   
      

REFS0

   
      

参考电压选择

   
      

0

   
      

0

   
      

选择AREF,内部基准源关闭

   
      

0

   
      

1

   
      

选择AVCC,AREF外接滤波电容

   
      

1

   
      

0

   
      

保留

   
      

1

   
      

1

   
      

2.56V内部基准电压源,AVREF外接滤波电容

   


位【5】— ADLAR:ADC转换结果对齐选择位。这一位可以选择ADC转换的结果在ADC数据寄存器中存放形式。ADLAR置位时(为1)转换结果位左对齐,否则右对齐(默认)。一般左对齐是在只需要8位精度的情况下才设置,这样只需要读取一次ADCH就OK了。

      

ADLAR = 0   ADC以右端对齐的方式存储数据(默认)【只读,初始值全0】

   
      

ADCH

   






      

ADC9

   
      

ADC8

   
      

ADCL

   
      

ADC7

   
      

ADC6

   
      

ADC5

   
      

ADC4

   
      

ADC3

   
      

ADC2

   
      

ADC1

   
      

ADC0

   
      

ADLAR = 1   ADC以左端对齐的方式存储数据 【只读,初始值全0】

   
      

ADCH

   
      

ADC9

   
      

ADC8

   
      

ADC7

   
      

ADC6

   
      

ADC5

   
      

ADC4

   
      

ADC3

   
      

ADC2

   
      

ADCL

   
      

ADC1

   
      

ADC0

   






位【4-0】— MUX[4-0]:模拟通道与增益选择位。这几位选择 当前要使用的ADC模拟输入通道,也可以对差分通道增益进行设置。如果在转换过程中改变了设置,则只有等到当期转换结束之后新的设置才会生效。

2、ADC控制和状态寄存器ADCSRA

      

ADC控制和状态寄存器ADCSRA

   
      

   
      

7

   
      

6

   
      

5

   
      

4

   
      

3

   
      

2

   
      

1

   
      

0

   
      

名称

   
      

ADEN

   
      

ADSC

   
      

ADATE

   
      

ADIF

   
      

ADIE

   
      

ADPS2

   
      

ADPS1

   
      

ASPS0

   
      

读/写

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

R/W

   
      

初始值

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

0

   
      

功能

   
      

AD
使能

   
      

启动
转换

   
      

自动
触发

   
      

中断
标志

   
      

中断
使能

   
      

ADC预分频设置

   










位【7】— ADEN:ADC使能位。启用ADC功能,否则关闭ADC功能。相当于ADC的总开关。

位【6】— ADSC:ADC开始转换。在单次转换模式下,ADSC置位将启动一次ADC转换。在连续转换模式下ADSC置位将启动首次转换。

位【5】— ADATE:ADC自动触发使能。ADATE置位将启动ADC自动触发转换功能,触发信号的上升沿启动ADC转换。

位【4】— ADIF:ADC中断标志位。ADC转换结束且数据寄存器被更新后,ADIF将被硬件置位。如果ADIE及SREG寄存器中的全局中断使能位I被置位,则ADC转换结束中断服务程序将被执行,同时ADIF硬件清零,也可以通过软件写“1”清零。当没有启用中断(ADIE)时,可以通过不停的查询此位获知ADC是否转换完毕好读取数据,此时应当软件将ADIF清零。

位【3】— ADIE:ADC中断使能位。若ADIE及SREG中的I置位,则ADC转换结束、数据寄存器被更新后会将ADIF中断标志位置位,同时会产生中断从而执行中断服务函数,进入中断服务函数后ADIF中断标志位将被硬件清零。

位【2-0】— ADPS[2-0]:ADC预分频器选择位。这3位决定ADC输入时钟与CPU时钟之间的分频系数,如分频系数为2,则表示是CPU时钟频率的1/2。
ADC分频系数如下表:

      

ADC分频系数设置表 (ADCSRA)

   
      

ADPS2

   
      

ADPS1

   
      

ADPS0

   
      

分频系数

   
      

0

   
      

0

   
      

0

   
      

2

   
      

0

   
      

0

   
      

1

   
      

2

   
      

0

   
      

1

   
      

0

   
      

4

   
      

0

   
      

1

   
      

1

   
      

8

   
      

1

   
      

0

   
      

0

   
      

16

   
      

1

   
      

0

   
      

1

   
      

32

   
      

1

   
      

1

   
      

0

   
      

64

   
      

1

   
      

1

   
      

1

   
      

128

   

3、ADC数据寄存器ADCL及ADCH

ADC转换结束后,转换结果将储存在ADCL/ADCH这两个寄存器中。因为一个寄存器只有8位,而ADC是10位,所以需要两个寄存器才能存储完整的10位结果。
因为需要用到两个寄存器,为了防止在上一次转换结果还没有完全被读走,下一次的转换结果就将其覆盖掉,造成数据错乱,AVR的ADC采取了一个保护策略:当程序语句读取ADCL寄存器时,ADCH的值将被锁定,直到程序读取了ADCH寄存器后,AD转化器硬件才能将下一次的转换数据更新到这两个寄存器中。因此,如果转换结果为左对齐而且只需要8位精度,那么仅需要读取ADCH就足够了。

4、特殊功能IO寄存器SFIOR

      

特殊功能IO寄存器SFIOR

   
      

   
      

7

   
      

6

   
      

5

   
      

4

   
      

3

   
      

2

   
      

1

   
      

0

   
      

名称

   
      

ADTS2

   
      

ADTS1

[1] [2]
关键字:AVR  单片机  ADC 引用地址:AVR 单片机学习笔记 – ADC

上一篇:和大家分享一个AVR单片机学习经验
下一篇:AVR内部EEPROM读写函数 EEPROM.H

推荐阅读

工业机器人大厂KUKA的自动化生产系统名闻国际,除了是电动车制造商sla旗下车款Model 3生产线机器人的主要供应商,近日KUKA透露接获一笔来自美国汽车制造商的大订单,预计在2020开始进行生产。 KUKA近年不断透过收购或是与不同领域的产业合作来优化机器人自动化生产流程,在2016年被大陆企业美的收购后,更加速了在亚太地区的发展,而这次来自美国的大...
“在每个城市,路灯的分布十分密集,完全可以用来作为小型的5G基站,可以省下大量重复建设的成本。”11月21日,在“2019华创会·下一代汽车与信息技术武汉开发区专场”,来自澳大利亚的华人企业家刘帛鑫带来的“5G智能路灯”项目,引来了许多人的兴趣。 现场,来自德国、美国、法国、加拿大、比利时等37个国家的华侨华人汇聚一堂,展示项目,交流探讨...
近日,以“芯屏气 / 器和 智慧领航”为主题的京东方全球创新伙伴大会·2020(BOE IPC·2020)在京东方技术创新中心盛大开幕。会议期间,东软集团与 BOE(京东方)在智慧航空领域达成全面合作,并成立“智慧航空联合创新实验室”,为民用航空领域提供领先的信息交互产品和系统解决方案,全面助力航空装备行业发展。 据悉,本次合作双方将充分发挥各自...
STM8单片机源程序:/*PE6 信号选择 0:控制卡 1: CPUPB7 5V电源控制 O:关 1:开*/#include <iostm8s105s4.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned longuchar num;uchar flag=150;uchar tim;uchar bk;#def...

史海拾趣

问答坊 | AI 解惑

各大FPGA性能比较

国内用得较多的是xilinx, altera和lattice的片子。 xilinx的产品系列较多,还算好使,但开发环境稍显复杂。 XILINX的东东内部是用三态连线的,虽然实现总线容易,但延迟特性不太好。 altera的开发环境我感觉最为简洁,但片子 ...…

查看全部问答∨

面试时农村生源该注意些什么

首先申明这绝不是歧视。        而是看到zqzq501311的回贴说自己家在农村,而且坚决不啃老,很感动。也希望自己的帖子能够帮到那些同样家在农村的。        面试前要明白自己的优势和劣势所在。   ...…

查看全部问答∨

请教硬件专家:配合P4 CPU(2.4G)的最高档主板是什么型号,其所用的内存条是什么型号,内存最多能扩充到多少G

请教硬件专家:配合P4 CPU(2.4G)的最高档主板是什么型号,其所用的内存条是什么型号,内存最多能扩充到多少G …

查看全部问答∨

如何让编译的程序加载到qvfb中

安装了tmake 1.11       qt/Embedded2.3.7       QT2.3.2for x11 环境是redhat9 自带qmake3.1版本       发现qt/E下的例子可以加载到qvfb中运行。        ...…

查看全部问答∨

USB数据传输求助~~

我想写一个程序实现将开发板上的图像数据通过USB传输到电脑上,大概思路应该怎么样来实现呀,谢谢了~…

查看全部问答∨

编码器如何算长度?速度?

电机连着主轴,主轴带个增量式旋转编码器,已知编码器为1600线,主轴直径为150mm, 主轴为变速转动。 求1、主轴的当前时刻转速是多少?2、编码器一个脉冲所对应的长度是多少?3、当长度为2000mm时,编码器输出多少个脉冲? 如果所列的已知条件不充分 ...…

查看全部问答∨

OpenCV移植到WindowsCE的问题

初次接触WindowsCE开发, 使用的是eBox. 需要移植OpenCV到WindowsCE上. 请问除了http://blog.csdn.net/hellogv/archive/2010/07/08/5721129.aspx这个以外, 有没有移植高版本OpenCV的资料? 有哪些书籍可以参考?…

查看全部问答∨

模拟电路反馈电阻取值

问一个弱弱的问题,在图里的放大电路,Vout=-(Rf/R1)*Vin,我不理解R1与Rf一般如何取值。如果是放大100倍,由公式只要使Rf/R1=100就行,根据P=U*U/R可以知道电阻越大消耗的功率就越小。可不可以由我这种分析使两个电阻越大越好呢,希望大家能给我讲 ...…

查看全部问答∨

和大家交流一个GCC编程中的问题##

问题1:double类型的范围?     double          +/- 1.79769e+308      中的e表示什么意思     这里是10的308次方吗,还是2.81 ...…

查看全部问答∨

主流的手机屏幕材质科普贴

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 手机屏幕作为手机组成中重要的一部分,其显示效果会直接影响到整机的体验。目前关于屏幕的概念名词非常多,让人难以区分。比如:IPS、 Retina、ASV等,很多人会认为它们代表屏幕的材质,其实不 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved