一、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。…
查看全部问答>
|
|
|
|
|
GPRS MODEM自动连接网络的问题
已经新建立了一个连接,使用RasDial()函数连接到了 输入 at 指令的模块,问题是怎么让程序自动输入at指令 并且自动 按继续按钮连接上网呢?谢谢大家了. at指令是:at+cgdcont=1,\"ip\",\"cmnet\" 和 atdt*99# ,我 ...…
查看全部问答>
|
|
|
|
|
如何跟随单片机入门
跟随单片机入门可以遵循以下步骤:选择学习资源:寻找一些高质量的学习资源,如教材、在线课程、视频教程等,用于学习单片机的基础知识和编程技能。选择适合自己水平和学习方式的资源,例如初学者可以选择一些针对入门者的教程和实验项目。学习基本 ...…
查看全部问答∨
|
机器学习编程如何入门
学习机器学习编程是一个很有前景的方向。以下是你可以入门学习机器学习编程的一些步骤:建立数学基础:机器学习涉及到很多数学知识,包括线性代数、概率论和统计学等。确保你具备了这些数学基础知识,可以通过在线教程、教材或者课程进行学习。学习 ...…
查看全部问答∨
|
|
|
对于pcb锣板操作入门,请给一个学习大纲
学习 PCB 锣板操作是电子工程师掌握 PCB 制造工艺的重要一环。以下是一个学习 PCB 锣板操作的简单大纲:第一阶段:理论基础和准备工作理解 PCB 制造工艺学习 PCB 制造的基本原理、工艺流程和关键环节。认识 PCB 锣板工艺了解 PCB 锣板工艺在整个 PC ...…
查看全部问答∨
|
对于机器学习的入门,请给一个学习大纲
以下是一个适用于机器学习入门的学习大纲:1. 了解机器学习基础概念介绍机器学习的定义、分类和基本原理。理解监督学习、无监督学习和强化学习的基本概念。2. 学习编程基础学习一门编程语言,如Python或R,包括基本语法、数据类型和控制流。熟悉使 ...…
查看全部问答∨
|
fpga初学者买什么板子
我会建议FPGA初学者选择一款适合入门的开发板,具有良好的性能和丰富的资源,以下是几款推荐的开发板:Xilinx Basys系列: Basys系列是Xilinx推出的入门级FPGA开发板,价格适中,适合初学者和教育用途。其中,Basys 3是一款性能良好、资源丰富的开 ...…
查看全部问答∨
|
|
|
|
|
对于单片机c语言液晶编程入门,请给一个学习大纲
以下是一个适用于电子领域资深人士入门单片机液晶(LCD)编程的学习大纲:1. 了解液晶显示器基础知识学习液晶显示器的基本工作原理,包括液晶原理、驱动方式等。了解不同类型的液晶显示器,如字符型LCD、图形型LCD等。2. 掌握液晶显示器的连接方法 ...…
查看全部问答∨
|
请推荐一些pcb教程入门
以下是一些适合初学者的PCB基础入门教学资源:《PCB设计入门与提高》(作者:张志强):该书介绍了PCB设计的基本原理、常用软件工具和实践技巧,包括PCB画图的基本概念和操作方法。《PCB设计从入门到精通》(作者:周健雄):该书系统地介绍了PCB设 ...…
查看全部问答∨
|
|