历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-11-25 来源:51hei

一、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

推荐阅读

史海拾趣

Crosspoint Solutions公司的发展小趣事

在电子行业的激烈竞争中,Crosspoint Solutions公司凭借一项革命性的技术创新脱颖而出。公司研发出一款高度集成的交叉点开关芯片,该芯片在数据传输速度和稳定性上均达到了行业领先水平。这一创新迅速吸引了各大电子设备制造商的注意,公司因此获得了大量订单,市场份额迅速扩大。

海芯科技(AVIA)公司的发展小趣事

随着公司业务的不断拓展和市场份额的逐步扩大,海芯科技开始注重品牌建设和市场推广。公司积极参加各类行业展会和交流活动,与业内同行和客户进行深入交流和合作。同时,公司还加大了对品牌形象的宣传力度,通过广告、宣传册等多种方式提升品牌知名度和美誉度。这些举措不仅提升了公司的市场影响力,也为公司的长期发展奠定了坚实的基础。

FDI [Future Designs , Inc.]公司的发展小趣事

为了进一步扩大市场份额,FDI公司开始实施全球化战略。公司先后在欧美、亚洲等地设立了分支机构,并与当地企业建立了紧密的合作关系。同时,FDI还积极参与国际电子展会和论坛,与全球各地的行业精英交流学习。这些举措不仅提升了FDI的品牌影响力,也为其带来了更多的商业机会。

HN Electronic Components GmbH & Co Kg公司的发展小趣事

背景:2008年全球金融危机爆发,电子行业受到重创,市场需求大幅下降。

发展:面对严峻的市场环境,HN Electronics迅速调整战略,削减非核心业务,加强成本控制,并加大在研发领域的投入,以技术创新为突破口,寻找新的增长点。

关键事件:在金融危机期间,HN Electronics成功开发出具有更高性价比的物联网传感器芯片,满足了市场对智能家居、智慧城市等新兴领域的需求,从而实现了业绩的稳步增长。

Blue Giga公司的发展小趣事

收购后,Blue Giga在芬兰埃斯波的研发中心继续发挥其技术创新的优势,不断推出新产品和解决方案。同时,借助Silicon Labs的全球销售网络,Blue Giga的产品开始进入更多国家和地区的市场。公司的业务范围不断扩大,应用领域也更加广泛,涵盖了工业自动化、消费类电子产品、汽车等多个领域。

这五个故事描绘了Blue Giga从创立到发展的过程,展示了其在电子行业中的努力和成就。虽然每个故事都基于事实,但具体细节可能因缺乏详细资料而有所简化或推测。如需更深入的了解,建议查阅Blue Giga的官方资料或相关新闻报道。

昆泰(CHRONTEL)公司的发展小趣事

1982年,Dennis Gillings博士在美国北卡罗莱纳州创立了Quintiles Transnational Inc.(昆泰)。成立之初,昆泰只是一家为药企提供数据服务的美国本土公司。凭借其独特的数据处理能力和对市场的敏锐洞察,昆泰迅速在行业内树立了良好的口碑。

问答坊 | AI 解惑

IC设计?

面向客户的IC设计,已经和将来都会成为IC行业的主角。 对于半导体专业的小生,在IC设计中如何才能分得一杯羹? 请教IC资深人士…

查看全部问答>

收集的分立器件知识材料

本人收集的各种分立器件的基础知识,供大家参考!!…

查看全部问答>

6.2--DIY进展汇报--PCB画好了

两天时间,PCB就把线给布好了,而且很不错,感谢网友DS,现在就是认真核对电路,防止出错! 请大家帮忙仔细检查该板子的原理图,昨天我就检查出来两个很明显的错误。 学习的朋友也加油弄懂电路的原理,有问题大家多多讨论。 原理图链接:https://bbs. ...…

查看全部问答>

国赛C题??!!

本帖最后由 paulhyde 于 2014-9-15 09:02 编辑 今年的c题和03年的B题有什么区别?加了“直流”,怎么理解?  …

查看全部问答>

PCI32 IP CORE调试

在Xilinx PCI IPcore生成的user design里会在translate的时候出错, 错误内容:ucf中找不到相关的IP核的实例。 修改:synthesis-Properties-advanced-keep hierarchy-soft/yes 即可通过Implement。…

查看全部问答>

【求助】ARM控制SED1330LCD320*240出现这种现象是什么原因?

正常现象应该是:■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■填满一行 实际的现象是:  ■  ■■■■■■■■■    ■■■■■■■■■■■■■■  ■■■■随机的消失几个出现到 ...…

查看全部问答>

过年了,没啥事,散点分给大家吧!

祝大家牛年进步! 为了提倡环保,节省纸张,在春节千万别送我贺卡,请在尽可能大的人民币上写下祝福的话送我就可以了,节约是美德,祝春节快乐!…

查看全部问答>

GPRS MODEM自动连接网络的问题

     已经新建立了一个连接,使用RasDial()函数连接到了 输入 at 指令的模块,问题是怎么让程序自动输入at指令 并且自动 按继续按钮连接上网呢?谢谢大家了. at指令是:at+cgdcont=1,\"ip\",\"cmnet\" 和  atdt*99# ,我 ...…

查看全部问答>

6410按键处理,有时候按下键没响应,有时候按下出好几个字符,求助大家!

我把6410的按键驱动映射为我需要的字符了,可是总是响应时有些问题,有时候按下键不能响应,有时候会出好几个字符,这是怎么回事啊,我应该修改哪些地方啊?…

查看全部问答>