教学材料《AVR单片机》-第六章_第1页
教学材料《AVR单片机》-第六章_第2页
教学材料《AVR单片机》-第六章_第3页
教学材料《AVR单片机》-第六章_第4页
教学材料《AVR单片机》-第六章_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章ADC接口第五节ADC应用要点第六节编写ADC转换程序第七节实例10简易数字电压表第八节ADC噪声抑制第一节逐次比较式

A/D转换器的工作原理

逐次比较型A/D转换器,就是将输入模拟信号与不同的参考电压作多次比较,使转换所得的数字量在数值上逐次逼近输入模拟量对应值。如图6一1所示电路,它由启动脉冲启动后,在第一个时钟脉冲作用下,控制电路使时序产生器的最高位置1,其他位置0,其输出经数据寄存器将1000..0,送入D/A转换器。输入电压首先与D/A器输出电压VRFF/Z相比较,如:vi>VFFF/Z,比较器输出为1,若<,则为0。比较结果存于数据寄存器的Dn-1位。上一页下一页返回第一节逐次比较式

A/D转换器的工作原理

为了进一步理解逐次比较A/D转换器的工作原理及转换过程。下面用实例加以说明。设图6一1电路为8位A/D转换器,输入模拟量,vi=6.84V,D/A转换器基准电压VEF=10V。根据逐次比较D/A转换器的工作原理,可画出在转换过程中CP、启动脉冲、D7~D0及D/A转换器输出电压v0的波形,如图6-2所示由图6-2可见,当启动脉冲低电平到来后转换开始,在第一个CP作用下,数据寄存器将D7~D0=10000000送入D/A转换器,其输出电压V0=5V,vi与v0比较,vi>v0存1;下一页返回第一节逐次比较式

A/D转换器的工作原理第二个CP到来时,寄存器输出D7~Do=11000000,v0为7.5V,vi再与7.5V比较,因Vi<7.5V,所以D6存。;

……如此重复比较下去,经8个时钟周期,转换结束由图中v的波形可见,在逐次比较过程中,与输出数字量对应的模拟电压逐渐逼近Vi值,最后得到A/D转换器转换结果D7~D0为10101111,该数字量所对应的模拟电压为6.8359375V,与实际输入的模拟电压6.84V的相对误差仅为0.06%上一页返回第二节ATmega48的A/D转换器片内集成A/D转换器的各项特性

1)10位精度

2)O.SLSB的非线性度

3)12LSB的绝对精度

4)13一260μs的转换时间

5)最高分辨率时的采样率高达15kS/s6)6路(或8路)复用的单端输入通道

7)可选的左对齐ADC读数

下一页返回第二节ATmega48的A/D转换器

8)0~Vcc的ADC输入电压范围

9)可选的1.1VADC参考电压

10)ADC车令换结束中断11)基于睡眠模式的噪声抑制器

上一页返回第三节ATmega48单片机

中与A/D相关的引脚一、A/D输入引脚ADCO~7ATmega48的ADC输入通道ADCO一5分别与PCO一PCS复用。采用TQFP和MLF封装的ATmega48单片机还另外有ADC6和ADC7两个独立的输入引脚,并不与其他端口复用。二、A/D模拟供电端AVcc这是一个电源输入引脚,位A/D模块和PCO至PC3端口提供电源。在不使用A/D模块的情况下,该引脚可直接接至Vcc引脚上;当使用A/D模块时,应通过一个低通滤波器将该引脚与Vcc:连接起来。这样做的目的是为了避免数字电路运行时引入的噪声通过电源线对A/D部分造成干扰。一个典型ADC滤波电路如图6一3所示。下一页返回第三节ATmega48单片机

中与A/D相关的引脚三、A/D参考电压AREF这个引脚上所接入的电压将会被作为参考电压,作为A/D转换的基准源,ATmega48的A/D模块还可以使用AVcc、或内部的1.1V电压基准源作为参考源,三者的选择关系如图6-4所示。由图可知,AREF引脚直接与最终选定的参考源相连,所以当选择A或内部1.1V电压基准源时,AREF引脚上的电压就是AVcc的电压值或1.1V,这时通常将该引脚通过一个0.1μF的电容接地;当选择AREF引脚上的电压作为参考电压时,该引脚可以接人任何满足要求的参考源。上一页返回第四节ATmega48

单片机中与A/D相关的寄存器一、ADC多路复用选择寄存器-ADMUXADMUX寄存器用于选择参考电压、转换结果的对齐方式和入通道。1)位7:6一REFS[1:0]:参考电压选择如表6一1所示,通过这几位可以选择参考电压2)位5一ADLAR:ADC转换结果左对齐3)位4一Res:保留位ATmega48中该位未使用,且读返回值为“0”。4)位3:0一MUX「3:0」:模拟通道选择位通过这几位的设置,可以对连接到ADC的模拟输入进行选择,细节见表6-2下一页返回第四节ATmega48

单片机中与A/D相关的寄存器二、ADC控制和状态寄存器A-ADCSRA寄存器ADCSRA各位定义如下:1)位7一ADEN:ADC使能2)位6一ADSC:ADC开始转换3)位5一ADATE:ADC自动触发使4)位4一ADIF:ADC中断标志5)位3一ADIE:ADC中断使能6)位2:0一ADPS「2:0]:ADC预分频器选择位表6一3ADC预分频选择

上一页下一页返回第四节ATmega48

单片机中与A/D相关的寄存器三、ADC控制及状态寄存器B-ADCSRB寄存器ADCSRB各位定义如下:1)位7,5:3一Res:保留位2)位2:0-ADTS2:0:ADC自动触发源表6-4ADC自动触发源选择上一页下一页返回第四节ATmega48

单片机中与A/D相关的寄存器四、ADC数据寄存器一ADCL和ADCHADC转换结束后,转换结果存于这两个寄存器之中。读取ADCL之后,ADC数据寄存器一直要等到ADCH也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于8比特,那么仅需读取ADCH就足够了。否则必须先读出ADCL再读ADCHADMUX寄存器的ADLAR及MUXn会影响转换结果在数据寄存器中的表示方式。如果ADLAR为1,那么结果为左对齐;如果ADLAR为。(系统默认设置),结果为右对齐上一页下一页返回第四节ATmega48

单片机中与A/D相关的寄存器五、数字输入禁止寄存器。0-DIDRO寄存器DIDRO各位定义如下:1)位7:6一Res:保留位2)位5..0一ADCSD..ADCOD:ADCS..0数字输入禁止上一页返回第五节ADC应用要点一、ADC转换的触发

ADC转换的触发主要有三种方式:单次触发、自动触发和连续触发,ADC的触发逻辑如图6一5所示二、预分频与转换时间

ADC模块包括一个预分频器(如图6-6所示),它可以由任何超过100kHz的CPU时钟来产生可接收的ADC时钟。

ADCSRA寄存器的ADS置位后,单端转换在下一个ADC时钟周期的上升沿开始启动。正常转换需要13个ADC时钟周期为了初始化模拟电路,ADC使能(ADCSRA寄存器的ADEN置位)后的第一次转换需要25个ADC时钟周期。下一页返回第五节ADC应用要点使用自动触发时,触发事件发生将复位预分频器。这保证了触发事件和转换启动之间的延时是固定的。在此模式下,采样保持在触发信号上升沿之后的2个ADC时钟发生。为了实现同步逻辑需要额外的3个CPU时钟周期。在连续转换模式下,当ADSC为1时,只要转换一结束,下一次转换马上开始。转换的时间见表6一5上一页下一页返回第五节ADC应用要点三、ADC的输入通道和参考电源选择可以通过ADMUX寄存器中的MUXn及REFS1:0来选择ADC的输入通道和参考电源,在AVR的实现中,ADMUX通过临时寄存器实现了单缓冲,CPU可对此临时寄存器进行随机访问。采用这种结构,保证了在转换过程中通道和基准源的切换发生于安全的时刻。在转换启动之前通道及基准源的选择可随时进行。一旦转换开始,通道和参考电源将被锁定,并保持足够时间,以确保ADC转换的正常进行。在转换完成(ADCSRA寄存器的ADIF置位)之前的最后一个ADC时钟周期,通道和参考电源的选择又可开始重新更新。转换的开始时刻为ADSC置位后的下一个时钟的上升沿。因此,建议用户在置位ADSC之后的一个ADC上一页下一页返回第五节ADC应用要点时钟周期里,不要将一个新的通道或参考电源写人到ADMUX寄存其中。若ADATE及ADEN都置位,则中断事件可以在任意时刻发生。如果在此期间改变AD-MUX寄存器的内容,那么用户就无法判别下一次转换是基于旧的设置还是最新的设置。在以下时刻可以安全地对ADMUX进行更新:(1)ADATE或ADEN为“0”。

(2)在转换过程中,但是在触发事件发生后至少一个ADC时钟周期。

(3)转换结束之后,但是在作为触发源的中断标志清零之前。上一页下一页返回第五节ADC应用要点四、模拟输入电路单端通道的模拟输入电路见图6-7不论是否用作ADC的输入通道,输入到ADCn的模拟信号都受到引脚电容及输入泄露的影响。用作ADC的输入通道时,模拟信号源必须通过一个串联电阻(输入通道的组合电阻)驱动采样保持(S/H)电容

ADC针对那些输出阻抗接近于10kSZ或更小的模拟信号做了优化。对于这样的信号采样时间可以忽略不计。若信号具有更高的阻抗,那么采样时间就取决于对S/H电容允电的时间。这个时间可能变化很大。建议用户使用输出阻抗低且变化缓慢的模拟信号,因为这可以减少对S/H电容的电荷传输频率高于奈奎斯特频率(八pc/2)的信号源不能用于任何一个通道,这样可以避免不可预知的信号卷积造成的失真。在把信号输入到ADC之前最好使用一个低通滤波器来滤掉高频信号。上一页下一页返回第五节ADC应用要点五、ADC转换结果

A/D转换结束后(ADIF=1),转换结果被存入ADC结果寄存器(ADCL,ADCH)。单次转换的结果如下ADC=V1s*1024/Vref式中,VI、为被选中引脚的输入电压,VILEF为选定的参考电源的电压,nXnnn表示输入引脚的电压为模拟地,0x3FF表示输入引脚电压为参考电压值减去一个LSB上一页下一页返回第五节ADC应用要点六、禁止输入端的数字缓冲器从原理上说,普通CMOS数字电路的输入端是不能接模拟信号电平的,否则将造成其输入级过载。由于数字输入禁止寄存其DIDRO在上电后被初始化为0x00,即所有带有A/D输入功能的引脚都被开启了数字输入缓冲器,因此需要输入模拟信号的引脚应在上电后的初始化过程中,设置DIDRO的相应位禁止该引脚的数字输入缓冲器上一页返回第六节编写ADC转换程序一、怎样知道A/D转换完成

1.查询方式查询方式就是“忙等待”,CPU在查询过程中什么事情也不做,一直等待某个事件的发生,在事件发生后,对该事件进行处理。使用查询方式的好处是代码相对简单、容易理解;但查询过程中CPU处于一种“空转”的状态,白白浪费了CPU资源。实际应用中,应该根据具体情况来决定是否使用查询方式

下一页返回第六节编写ADC转换程序

2.中断方式采用中断方式时,CPU在启动转换后,可以转而去做其他的处理工作,当转换完成后,A/D模块通过中断的方式通知CPU,该方式提高了CPU的利用效率。中断方式下对A/D转换结果的处理,可以参考实例10上一页下一页返回第六节编写ADC转换程序二、A/D转换结果的读取当A/D车令换器完成一次转换后,转换得到的10hit结果存放在ADCH和ADCL中,程序需要将ADC转换得到的数据读入到某一个无符号整型变量中等待进一步的处理因为10hit的结果放在了两个寄存器中,为了避免数据读取过程中,一次结果还没有读完,下一次转换结果又更新数据,造成数据错误,AVR的A/D采取了一个保护策略:当程序语句读取ADCL时,ADCH的值将被锁定,直到程序读取了ADCH寄存器后,A/D转换硬件才能将下一次转换结果更新到ADCH中。因此,在数据读入时,需要遵循一个正确的读取顺序,先读取ADCL,再读取ADCH。上一页下一页返回第六节编写ADC转换程序当仅需要8位转换精度时,可以选择“转换结果左对齐”,而在结果读取时,仅需读取ADCH的值,而忽略掉ADCL

使用C语言编写读取ADC结果的代码时,因为GCC编译器会自动处理读取顺序的问题,使得我们可以直接使用ADC来一次将10hit的结果读入到一个无符号整型变量中。上一页返回第七节实例10简易数字电压表

1.实例目标本实例我们使用ATmega48的ADC来实现一个简易的数字电压表。通过ADC来测量一个。0~5V之间变化的电压,将测得的电压值通过4位数码管显示出来

2.硬件电路本实例我们采用如图6-8所示电路,途中PD口用于驱动数码管阳极,PB口的低四位用于驱动数码管的阴极。系统SV电源经过L,C1,C3滤波后到Acc,以提高Acc的稳定性。ADC的参考电压源采用AVcc,电容C2并接在AREF和地之间也进一步的提高参考电压的稳定。下一页返回

3.软件编写本实例没有复杂的程序流程,所需做的主要任务是启动ADC转换,并读取结果,将结果显示与数码管上。下面给出实现的代码:第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表上一页下一页返回第七节实例10简易数字电压表

4.实验效果将程序下载到实验板上,调节电位器W,我们可以看到在数码管上显示出测得的电压值。为了验证测得的电压值是否正确,我们可以使用万用表测量该电压,并将测得的结果与数码管上显示的值进行比较。另外,采用本实例给出的代码,我们可能会看到数码管上显示的末位数字不断的跳动,这是因为在A/D输入端上有干扰造成的。上一页返回第八节ADC噪声抑制一、休眠功能的开启和关闭为了介绍ADC噪声抑制模式,我们先简要介绍一下AVR的休眠模式。所谓休眠是指在系统空闲时,为了降低系统能耗而停止全部或者部分外设,并暂时停止运行程序的一种系统状态。处于休眠状态时,当有某种事件(例如,外中断或串口中断)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论