第10章模拟比较器和ADC接口_第1页
第10章模拟比较器和ADC接口_第2页
第10章模拟比较器和ADC接口_第3页
第10章模拟比较器和ADC接口_第4页
第10章模拟比较器和ADC接口_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、1第10章 模拟比较器和ADC接口2单片机内部常见的支持模拟信号输入 接口n模拟比较器和模数转换 ADC 3模拟量输入通道构成主要组成:主要组成: 信号处理装置、采样单元、采样保持器、数据信号处理装置、采样单元、采样保持器、数据放大器、放大器、AD转换器控制电路。转换器控制电路。任务:任务:完成模拟量的采集并转换成数字量送入计算机完成模拟量的采集并转换成数字量送入计算机。4AD转换及其应用n被测参数,如温度、流量、压力、液位、速度等都是连续变化的量模拟量n单片机只能处理数字量n把输入的连续变化的模拟电压信号转换成离散的数字量ADCnAVR ATmega16 内置10bit ADC5模拟比较器

2、10.1 模拟比较器模拟比较器610.1.1 与模拟比较器相关的寄存器和标志位 SFIOR、ACSR2模拟比较器控制和状态寄存器ACSRn1.特殊功能IO寄存器SFIOR为模拟比较器多为模拟比较器多路使能控制位路使能控制位7nACSR是模拟比较器主要的控制寄存器,各位的作用位位7ACD:模拟比较器禁止:模拟比较器禁止位位6ACBG:模拟比较器的能隙参考源选择:模拟比较器的能隙参考源选择位位5ACO:模拟比较器输出:模拟比较器输出位位4ACI:模拟比较器中断标志位:模拟比较器中断标志位位位3ACIE:模拟比较器中断允许:模拟比较器中断允许位位1、0ACIS1、ACIS0:模拟比较器中断模式选择:

3、模拟比较器中断模式选择位位2ACIC:模拟比较器输入捕获允许:模拟比较器输入捕获允许8表表9-1 9-1 模拟比较器中断模式选择模拟比较器中断模式选择ACIS1ACIS0中 断 模 式00比较器输出的上升沿和下降沿都触发中断01保留10比较器输出的下降沿触发中断11比较器输出的上升沿触发中断模拟比较器的多路输入 用户可以选择ADC7.0引脚中的任一路的模拟信号代替AIN1引脚,作为模拟比较器的反向输入端。 9模拟比较器的多路输入选择10n模拟比较器使用注意点包括:n芯片RESET后,模拟比较器为允许工作状态。如果系统中不使用模拟比较器功能,应将寄存器ACSR的ACD位置1,关闭模拟比较器,这样

4、可以减少电源的消耗。n使用模拟比较器时,应注意比较器的两个输入端口PB2、PB3的设置。当PB2/PB3作为模拟输入端使用时,PB2/PB3应设置为输入工作方式,且上拉电阻无效,这样就不会使PB2/PB3上输入的模拟电压受到影响。n当AIN0设置为使用芯片内部1.22V的固定能隙(Bandgap)参考电源时,PB2口仍然可以作为通用I/O端口使用,这样就能节省一个I/O引脚。在上面的例子里,AIN0就是设置为使用芯片内部1.22V的固定能隙(Bandgap)参考电源,这样就可将PB2口释放出来,作为普通I/O口用来驱动LED了 10.1.2 模拟比较器的应用设计模拟比较器的应用设计11系统电源

5、电压的监测12程序n #include n void main(void)nn PORTB.2=0 x01; /PC0设置为输出,控制LEDn DDRB.2=0 x01;nACSR=0 x40; /模拟比较器初始化,允许模拟比较器,AIN0设置为内部Bandgap参考电压1.22Vn while (1) /循环检测AC0位n n if (ACSR.5)n PORTB.2 = 0; / AIN0 AIN1,低电压报警n elsen PORTB.2 = 1; / AIN0 AIN1, 1310.2 模数转换器ADC外部的模拟信号量需要转变成数字量才能进一步的由MCU进行处理。ATmega16内部集

6、成有一个10位逐次比较(successive approximation)ADC电路。因此使用AVR可以非常方便的处理输入的模拟信号量。ATmega16的ADC与一个8通道的模拟多路选择器连接,能够对以PORTA作为ADC输入引脚的8路单端模拟输入电压进行采样,单端电压输入以0V(GND)为参考。另外还支持16种差分电压输入组合,其中2种差分输入方式(ADC1,ADC0和ACD3,ADC2)带有可编程增益放大器,能在A/D转换前对差分输入电压进行0dB(1),20dB(10)或46dB(200)的放大。还有七种差分输入方式的模拟输入通道共用一个负极(ADC1),此时其它任意一个ADC引脚都可作

7、为相应的正极。若增益为1或10,则可获得8位的精度。如果增益为200,那么转换精度为7位。14AVR的模数转换器ADC具有下列特点:n10位精度;n0.5LSB积分非线形误差n2LSB的绝对精度;n13s-260s的转换时间;n在最大精度下可达到每秒15kSPS的采样速率;n8路可选的单端输入通道;n7路差分输入通道;n2路差分输入通道带有可选的10和200增益;nADC转换结果的读取可设置为左端对齐(LEFT ADJUSTMENT);10.2.1 10位ADC结构15nADC的电压输入范围0Vcc;n可选择的内部2.56V的ADC参考电压源;n自由连续转换模式和单次转换模式;nADC自动转换

8、触发模式选择;nADC转换完成中断;n休眠模式下的噪声抑制器(NOISE CANCELER)。16nADC功能单元包括采样保持电路,以确保输入电压在功能单元包括采样保持电路,以确保输入电压在ADC转换过程中保持恒定转换过程中保持恒定。图10-3 ADC功能单元方框图17n10.2.2 ADC相关的I/O寄存器位 7 6 5 4 3 2 1 0 $07 ($0027) REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADMUX 读/写 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,6REFS1:

9、0:ADC参考电源选择 位5ADLAR:ADC结果左对齐选择 位4.0MUX4:0:模拟通道和增益选择n1ADC多路复用器选择寄存器ADMUX18n位7ADEN:ADC使能n位6ADSC:ADC转换开始n位5ADATE:ADC自动转换触发允许n位4ADIF:ADC中断标志位n位3ADIE:ADC中断允许n位2,0ADPS2:0:ADC预分频选择2.ADC控制和状态寄存器AADCSRA19n3ADC数据寄存器ADCL和ADCH位 15 14 13 12 11 10 9 8 $05 ($0025) - - - - - - ADC9 ADC8 ADCH $04 ($0024) ADC7 ADC6 A

10、DC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL 位 7 6 5 4 3 2 1 0 读/写 R R R R R R R R 读/写 R R R R R R R R 复位值 0 0 0 0 0 0 0 0 复位值 0 0 0 0 0 0 0 0 nADLAR = 0,ADC转换结果右对齐时,ADC结果的保存方式20nADLAR = 1,ADC转换结果左对齐时,ADC结果的保存方式位 15 14 13 12 11 10 9 8 $05 ( $0025) A D C 9 A D C 8 A D C 7 A D C 6 A D C 5 A D C 4 A D C 3 A D C 2

11、 A D C H $04 ( $0024) A D C 1 A D C 0 - - - - - - A D C L 位 7 6 5 4 3 2 1 0 读 /写 R R R R R R R R 读 /写 R R R R R R R R 复 位 值 0 0 0 0 0 0 0 0 复 位 值 0 0 0 0 0 0 0 0 21n当ADC转换完成后,可以读取ADC寄存器的ADC0-ADC9得到ADC的转换的结果。如果是差分输入,转换值为二进制的补码形式。一旦开始读取ADCL后,ADC数据寄存器就不能被ADC更新,直到ADCH寄存器被读取为止。因此,如果结果是左对齐(ADLAR=1),且不需要大于

12、8位的精度的话,仅仅读取ADCH寄存器就足够了。否则,必须先读取ADCL寄存器,再读取ADCH寄存器。ADMUX寄存器中的ADLAR位决定了从ADC数据寄存器中读取结果的格式。如果ADLAR位为“1”,结果将是左对齐;如果ADLAR位为“0”(默认情况),结果将是右对齐。读数注意读数注意22n4特殊功能I/O寄存器SFIOR位 7 6 5 4 3 2 1 0 $30 ( $0050) ADTS2 ADTS1 ADTS0 - ACM E PUD PSR2 PSR10 SFIOR 读 /写 R/W R/W R/W R R/W R/W R/W R/W 复 位 值 0 0 0 0 0 0 0 0 23

13、n位7.5ADTS2:0:ADC自动转换触发源选择,见表9-6表9-6 ADC自动转换触发源的选择ADTS2:0触 发 源000连续自由转换001模拟比较器010外部中断0011T/C0比较匹配100T/C0溢出101T/C1比较匹配B110T/C1溢出111T/C1输入捕捉24n n1预分频与转换时间n在通常情况下,ADC的逐次比较转换电路要达到最大精度时,需要50kHz200kHz之间的采样时钟。在要求转换精度低于10位的情况下,ADC的采样时钟可以高于200kHz,以获得更高的采样率。图10-4 带预分频器的ADC时钟源10.2.3 ADC应用设计要点25nAVR的ADC完成一次转换的时

14、间见表10-7。从表中可以看出,完成一次ADC转换通常需要13-14个ADC时钟。而启动ADC开始第一次转换到完成的时间需要25个ADC时钟,这是因为要对ADC单元的模拟电路部分进行初始化。表10-7 ADC转换和采样保持时间转 换 形 式采样保持时间完 成 转 换 总 时 间启动ADC后的第一次转换13.5个ADC时钟25个ADC时钟正常转换,单端输入1.5个ADC时钟13个ADC时钟自动触发方式2个ADC时钟13.5个ADC时钟正常转换,差分输入1.5/2.5个ADC时钟13/14个ADC时钟26n输入通道:ADMUX写入n参考电源:AVcc或芯片内部的2.56V参考源2ADC输入通道和参

15、考电源的选择输入通道和参考电源的选择27n在单次转换模式下,总是在开始转换前改变通道设置。n在连续转换模式下,总是在启动ADC开始第一次转换前改变通道设置。改变改变ADC输入通道时,应该遵循的原则输入通道时,应该遵循的原则28n3ADC转换结果A/D转换结束后(ADIF = 1),在ADC数据寄存器(ADCL和ADCH)中可以取得转换的结果。对于单端输入的A/D转换,其转换结果为:ADC =(VIN1024)/ VREF其中VIN表示选定的输入引脚上的电压,VREF表示选定的参考电源的电压。对于差分转换,其结果为:ADC=(VPOS-VNEG) GAIN512/VREF说明:VPOS为差分正极

16、输入电压,VNEG为差分负极输入电压2910.2.4 ADC的应用实例30 本例利用ATmega16内部的ADC进行转换,转换后的结果换算成测量的电压值在4位LED数码管上显示。在数码管上显示AD采样值,实现和完成一个简易电压表的设计。通过调节W改变AD采样值n实例功能31程序#include flash unsigned char led_710=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;flash unsigned char position4=0 xfe,0 xfd,0 xfb,0 xf7;unsigned c

17、har dis_buff4=0,0,0,0,posit;bit time_2ms_ok;32/ ADC电压值送显示缓冲区函数void adc_to_disbuffer(unsigned int adc)unsigned char i;for (i=0;i=4 ) posit = 0;35void main(void)DDRA=0 x0f;PORTA=0 x0f;DDRC=0 xff; / LED显示控制I/O端口初始化PORTC=0 x00;/ T/C0 初始化初始化TCCR0=0 x0B; / 内部时钟,64分频(4M/64=62.5KHz),CTC模式TCNT0=0 x00; OCR0=0

18、 x7C; / OCR0 = 0 x7C(124),(124+1)/62.5=2msTIMSK=0 x02; / 允许T/C0比较中断 / ADC 初始化初始化 ADMUX=0 x47; / 参考电源AVcc、ADC7单端输入 SFIOR&=0 x1F; SFIOR|=0 x60; / 选择T/C0比较匹配中断为ADC触发源 ADCSRA=0 xAD; / ADC允许、自动触发转换、ADC转换中断允许、ADCclk=125Kz #asm(sei) / 开放全局中断36while (1) if (time_2ms_ok) display(); / LED扫描显示 time_2ms_ok = 0;

19、 3710.2.5 ADC的应用设计的深入讨论1AVcc的稳定性。的稳定性。 AVcc是提供给ADC工作的电源,如果AVcc不稳定,就会影响ADC的转换精度。 通常采用系统电源通过一个LC滤波后接入AVcc,抑制掉系统电源中的高频躁声,提高AVcc的稳定性。 必要时,PA口上的那些没被用做ADC输入的端口尽量不要作为数字I/O口使用。因为PA口的工作电源是由AVcc提供的,如果PA口上有比较大的电流波动,也会影响AVcc的稳定。38n2参考电压VREF的选择确定 ADC的参考电压VREF还决定了A/D转换的范围。如果单端通道的输入电压超过VREF,将导致转换结果全部接近于0 x3FF,因此ADC的参考电压应稍大于模拟输入电压的最高值。 ADC的参考电压VREF可以选择为AVCC,或芯片内部的2.56V参考源,或者为外接在AREF引脚上的参考电压源。外接参考电压应该稳定,并大于2.0V(芯片的工作电压为1.8V时,外接参考电压应大于1.0V)。要求比较高的场合,建议在AREF引脚外接标准参考电压源来作为ADC的参考电源。39n3. ADC通道带宽和输入阻抗 不管使用单端输入转换还是差分输入转换方式,所有模拟输入口的输入电压应在AVcc-GNG之间。40n通常条件下,AVR的ADC逐次比较电路要达到转换的最大精度,需要一个50K200KHz的采样时钟。一次正常的ADC转换

温馨提示

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

评论

0/150

提交评论