模拟数字转换器的使用.docx
《模拟数字转换器的使用.docx》由会员分享,可在线阅读,更多相关《模拟数字转换器的使用.docx(33页珍藏版)》请在冰豆网上搜索。
![模拟数字转换器的使用.docx](https://file1.bdocx.com/fileroot1/2022-10/26/7602b3e8-0192-4c1e-a180-8fa2240cc943/7602b3e8-0192-4c1e-a180-8fa2240cc9431.gif)
模拟数字转换器的使用
第9章模拟/数字转换器的使用——模拟信号采集与回放电路的设计
目标
通过本章的学习,应掌握以下知识
●斜坡型(计数型)模拟/数字转换器的工作原理
●逐次逼近型模拟/数字转换器(Successive-ApproximationADC,SAC)的工作原理
●MSP430G2xx芯片内部的模拟/数字转换模块(ADC10)
●模拟/数字转换中的采样——保持过程
●实际模拟/数字转换关系的非理想
●MSP430F2xx芯片内部的模拟/数字转换模块(ADC12)
引言
模拟/数字转换器是对模拟信号进行数字化处理所需要的另外一种接口。
使用模拟/数字转换器能够将幅度连续、时间连续的模拟信号,转换为幅度离散、时间离散的数字信号,建立起模拟信号数字化处理的基础。
相对基于运算放大器实现数字/模拟转换器的工作原理,模拟/数字转换器的工作原理比较复杂。
虽然微控制器芯片对其外围模块的控制都是通过访问相关寄存器来实现,但是了解具体电路的工作过程将能够更加清晰地理解不同的寄存器配置条件下的工作特点,更好地使用这些外围模块。
MSP430系列微控制器中包含模拟/数字转换模块具有多种类型,而且具有不同的技术指标。
本章分别介绍包含在MSP430G2231芯片内部,具有10位分辨率的模拟/数字转换模块(ADC10);以及包含在MSP430F2619芯片内部,具有12位分辨率的模拟/数字转换模块(ADC12)。
如果使用MSP430F2619微控制器芯片,使用12位分辨率模拟/数字转换模块(ADC12)将能够把信号产生器输出的正弦信号转换为对应的数字信号,使用上一章学习的数字/模拟转换模块(DAC12)将能够把数字信号转换为模拟信号。
通过示波器观察数字/模拟转换模块(DAC12)输出的信号波形,这时将可以发现恢复的正弦信号波形是由许多小台阶所组成。
提高信号产生器输出正弦信号的频率,将可以发现波形失真加大,直到波形变得杂乱无章;继续提高信号产生器输出正弦信号的频率,将会发现在一些频率点上,示波器又将出现一个完整的正弦信号波形。
9.1模拟/数字转换器的工作原理
MSP430系列微控制器中的模拟/数字转换器涉及多种类型、且具有不同的技术指标。
例如MSP430G2231芯片具有10位分辨率的模拟/数字转换模块(ADC10),MSP430F2619芯片具有12位分辨率的模拟/数字转换模块(ADC12),有的芯片还具有24位分辨率的模拟/数字转换模块。
本节介绍模拟/数字转换器的基本工作过程,以便了解决定其性能的因素。
图9.1为MSP430G2231芯片和MSP430F2619芯片中的模拟/数字转换模块的工作原理图。
这种类型的模拟/数字转换器把数字/模拟转换器(DAC)作为其电路的组成部分。
图9.1模拟/数字转换器的工作原理图
完成模拟/数字转换过程需要一个“启动信号”来触发转换电路进行初始化。
这个初始化使图中的“计数器”输出的“数字量”为全零,使得图中的“DAC”输出模拟电压VAX为0V,这样模拟电压VAX将小于输入模拟电压VA,因此图中“比较器”将输出高电平。
当“比较器”输出高电平,控制电路将在“时钟信号”的驱动下不断修正“计数器”输出的“数字量”。
最简单的“数字量”修正方式为每来一个时钟脉冲其内容加1。
“计数器”输出的“数字量”不断进行地加1操作,使得模拟电压VAX不断地增加。
模拟电压VAX小于输入模拟电压VA时,“比较器”将输出高电平;模拟电压VAX大于输入模拟电压VA时,“比较器”将输出低电平。
一旦“比较器”输出为低电平,“计数器”输出的“数字量”将停止变化,同时控制电路输出“转换结束信号”。
这时就可以读取由“计数器”输出的“模拟/数字转换结果”。
如果“计数器”输出“数字量”的变化方式为每来一个时钟脉冲其内容加1,直到DAC输出的模拟电压VAX大于输入模拟电压VA,这样模拟电压VAX的波形形状为斜波,因此称此类型模拟/数字转换器为斜坡型模拟/数字转换器,也称为计数型模拟/数字转换器。
输入模拟电压VA的比较基准VAX是一个准模拟电压,因为VAX是数字/模拟转换器的输出电压。
输入模拟电压VA能够在从0V到满量程之间取无数多个数值,数字/模拟转换器的输出电压VAX只能取有限数量的离散值,这就意味着小范围变化的输入模拟电压VA的转换结果可能是相同的。
内部“DAC”的分辨率决定了这种模拟/数字转换器的分辨率。
斜坡型模拟/数字转换器转换时间不确定,输入模拟电压VA越大,完成转换所需要的时间越长。
如果输入模拟电压VA刚好低于满刻度电压将会出现最大转换时间,即“计数器”输出“数字量”到最后一步才能结束转换过程。
对于一个N位分辨率的斜坡型模拟/数字转换器,最大转换时间可以由下式计算。
tC(max)=(2N-1)时钟周期(9-1)
对于一个10位分辨率的模拟/数字转换器,如果时钟信号的周期为1us,这时
tC(max)=(210-1)×1us=1023us
斜坡型模拟/数字转换器工作速度低,但是利用它非常容易说明模拟/数字转换器的工作原理。
MSP430G2231芯片和MSP430F2619芯片内部采用逐次逼近型模拟/数字转换器(Successive-ApproximationADC,SAC)来提高转换速度。
它的“计数器”输出“数字量”的修正采用逐位修改。
图9.2给出一个4位这种类型模拟/数字转换器的原理图和时序图。
图9.2逐次逼近型模拟/数字转换器的工作原理图
在图9.2中,设DAC的步长为1V,这样输入4位数据的权值分别为8V、4V、2V和1V;再假设输入待转换的模拟电压VA=10.4V。
在t0时刻转换过程开始,寄存器输出清零,即Q3=Q2=Q1=Q0=0,表示为Q=0000。
这使得VAX=0V,由于VAX在t2时刻,控制信号使得寄存器的Q3置位,这时Q=1000。
这使得VAX=8V,由于VAX在t4时刻,控制信号使得寄存器的Q2置位,这时Q=1100。
这使得VAX=12V,由于VAX>VA,这时比较器输出将变为低电平。
由于比较器输出为低电平,在t5时刻,控制信号使得寄存器的Q2清零,这时Q=1000,这使得VAX=8V。
在t6时刻,控制信号使得寄存器的Q1置位,这时Q=1010。
这使得VAX=10V,由于VAX在t8时刻,控制信号使得寄存器的Q0置位,这时Q=1011。
这使得VAX=13V,由于VAX>VA,因此比较器输出为低电平。
由于比较器输出为低电平,在t9时刻,控制信号使得寄存器的Q0清零,这时Q=1010。
这使得VAX=10V。
到此时,转换结束,转换结果为1010。
逐次逼近型模拟/数字转换器的控制电路逐个将寄存器的每1位置位,并判断该位是否应该置位。
这样它比起斜坡型模拟/数字转换器每次仅加1的过程需要的时间小得多,而且转换时间固定,但是逐次逼近型模拟/数字转换器内部控制电路要复杂得多。
模拟/数字转换器还有其它的类型。
例如并行比较型在1个时钟周期就可以完成转换,但是电路更复杂;积分型的精度高,且抗干扰能力强,但是转换速度慢;Σ/Δ调制型电路复杂,但是可以获得高的精度,一些MSP430x2xx芯片包含这种类型的模拟/数字转换器,在数据手册中被称为SD16,或者SD24,分别具有16,或者24位分辨率。
9.2模拟/数字转换模块(ADC10)
9.2.1模拟/数字转换模块(ADC10)
MSP430G2231芯片内部包含10位模拟/数字转换模块(ADC10)。
该模块的工作原理属于逐次逼近型模拟/数字转换器(SAC),具有10位分辨率和200ksps的转换速率。
模拟/数字转换模块(ADC10)的组成方框图如图9.3所示。
图9.3模拟/数字转换模块(ADC10)的组成方框图
图9.3所示的方框图用于说明MSP430G2xx系列芯片的模拟/数字转换模块(ADC10)的工作,该系列不同型号的芯片可能会存在着一些差异。
通过多个通道,多个准备转换的模拟电压能够进入模拟/数字转换模块(ADC10)。
图中的模拟电压输入通道A0~A7、A12~A15分别可以与芯片的管脚相连接,模拟输入电压还包括芯片电源AVCC以及芯片内部温度传感器的输出电压。
对于MSP430G2231芯片,A0~A7分别对应芯片管脚P1.0~P1.7,A12~A15没有对应的芯片管脚。
所有的输入模拟电压通过多路选择开关共用一个模拟/数字转换器,因此1次只能完成1路模拟电压的转换,不过具有多个模拟电压输入管脚可以为电路板的设计提供方便。
在信号“INCHx”的控制下,多路选择开关选择1个通道的模拟电压进行采样。
信号“CONSEQx”能够实现对所有模拟输入电压的进一步的控制,控制内容包括完成一个通道输入电压的一次转换、按照通道的顺序完成数个通道输入电压的一次转换、一个通道输入电压的重复转换以及按照通道的顺序完成数个通道输入电压的重复转换。
通过多路选择开关的模拟电压将进入采样-保持电路“SampleandHold”,这里将幅度连续、时间连续的模拟电压转换为幅度连续、时间离散的信号。
采样-保持电路“SampleandHold”和模拟/数字转换器“10-bitSAR”共用一个时钟信号。
时钟信号源可以是模拟/数字转换模块(ADC10)内部时钟信号源“ADC10OSC”,也可以是MSP430芯片的系统时钟信号ACLK、MCLK或者SMCLK。
4种时钟信号源的选择通过信号“ADC10SSELx”实现。
内部时钟信号源ADC10OSC属于RC振荡器,工作频率约6MHz,具体工作频率参考芯片的技术手册,也可以通过输出管脚ADC10CLK进行测量。
时钟信号还能够利用分频电路“Divider/1…/8”,在信号“ADC10DIVx”控制下,实现直接通过,或者从2到8的分频。
采样触发信号为图中信号“SHI”的上升边沿。
触发源可以是ADC10控制寄存器0(ADC10CTL0)的位ADC10SC、定时器A(TimerA)的捕捉/比较模块1(CCR1)的输出、定时器A(TimerA)的捕捉/比较模块0(CCR0)的输出,或者定时器A(TimerA)的捕捉/比较模块2(CCR2)的输出。
信号“SHSx”完成采样触发信号的选择。
信号“ENC”使能选择的采样触发信号,即使能模拟/数字转换模块(ADC10)的工作。
信号“ISSH”能够实现采样触发信号的上升沿触发,或者下降沿触发。
信号“SHI”的上升边沿触发采样计数器“SampleTimer”的计数工作。
在信号“ADC10SHTx”的控制下,这个计数器实现对时钟ADC10CLK,范围为4、8、16或者64的计数过程。
在计数过程中,信号“SAMPCON”保持高电平;完成计数后,该信号为低电平。
信号“SAMPCON”处于高电平状态,采样-保持电路“SampleandHold”对输入的模拟电压进行采样;信号“SAMPCON”处于低电平状态,采样-保持电路“SampleandHold”维持采样电压的数值。
采样-保持过程的等效电路如图9.4所示。
图9.4采样-保持过程的等效电路图
图中的VS和RS为准备进行模拟/数字转换的模拟信号等效电路,Vpin为施加到MSP430芯片管脚的模拟电压值。
Rmux为包括多路开关导通电阻在内的芯片内部电阻,Csample为采样电容。
采样时,“采样-保持开关”置“采样”位置,模拟电压向采样电容Csample充电;采样结束以后,“采样-保持开关”置“保持”位置,由于运算放大器具有非常高的输入电阻,因此采样电容Csample上的电压在后面的工作期间可以维持不变。
即使不考虑信号源内阻RS的影响,芯