【2017年整理】Dsp 的adc转换模块

上传人:豆浆 文档编号:989054 上传时间:2017-05-24 格式:DOC 页数:9 大小:71KB
返回 下载 相关 举报
【2017年整理】Dsp 的adc转换模块_第1页
第1页 / 共9页
【2017年整理】Dsp 的adc转换模块_第2页
第2页 / 共9页
【2017年整理】Dsp 的adc转换模块_第3页
第3页 / 共9页
【2017年整理】Dsp 的adc转换模块_第4页
第4页 / 共9页
【2017年整理】Dsp 的adc转换模块_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《【2017年整理】Dsp 的adc转换模块》由会员分享,可在线阅读,更多相关《【2017年整理】Dsp 的adc转换模块(9页珍藏版)》请在金锄头文库上搜索。

1、 在现实世界中,许多量都是模拟量,例如电压、电流、温度、湿度、压力等信号;而在 DAP 等微控制器世界中,所有的量却都是数字量,那如何实现将现实世界的模拟量提供给 DSP 等微控制器呢?模/数转换器 ADC 模块就是连接现实世界和微控制器的桥梁,它可以将现实世界的模拟量转换成数字量,提供给控制器使用。本章将详细介绍 X281x 内部自带 ADC 模块的性能、特点及其工作方式,并从硬件和软件两方面的角度来探讨如何提高内部 ADE 二的采样精度。13. 1 X281x 内部的 ADC 模块X281x 内部的 ADC 模块是一个 12 位分辨率、具有流水线结构的模/数转换器,其结构框图如图 13 一

2、 I 所示。从图 13 一 1 可以很清楚地看到,X281x 的 ADC 模块一共具有 16 个采样通道,分成两组:一组为 ADCINA0ADCINA7;另一组为 ADCINB0ADCINB70. A 组的采样通道使用采样保持器 A,也就是图中的 S/ H-A;B 组的采样通道使用采样保持器 B,也就是图中的 S/ H-B。虽然 ADC 模块具有多个输人通道,但是它内部只有 1 个转换器,也就是说同一时刻只能对 1路输人信号进行转换。当有多路信号需要转换时,ADC 模块通过前端模拟多路复用器 Analog MUX 的控制,在同一时刻,只允许 1 路信号输入到 ADC 的转换器中。如图 13-2

3、 所示,假设现在对 ADCINA0 , ADCINA2 , ADCINA3、ADCINA5 这 4 路输人信号进行 A/D 转换,转换的顺序为 ADCINA0 , ADCTNA3 , ADCINA2 , ADCINA5,则第 1 次 Analog MUX 中 ADCINAO 通道的开关闭合,ADCINAO 信号输人至转换器中,转换的结果存放于结果寄存器 ADCRESULTO 中;第 2 次 Analog MUX 中 ADCINA3 通道的开关闭合,ADCINA3 信号输人至转换器中,转换的结果存放于结果寄存器 ADCRESUI.II 中;第 3 次 Analog MUX 中 ADCINA2 通

4、道的开关闭合,ADCINA2 信号输人至转换器件,转换的结果存放于结果寄存器 ADCRESULT2 中;第 4 次 Analog MUX 中 ATOCINA5 通道的开关闭合,ADCINA5 信号输人至转换器中,转换的结果存放于结果寄存器 ADCRESUlT3 中。至此,完成一个序列的转换。可见,同一时刻,ADC 模块只能对 1 个通道的信号进行转换。上面的例子中是对 4 个通道进行采样并转换,转换的顺序为 ADCINAO , ADCINA3 , ADCINA2,ADCINAS,那 ADC 模块是如何来实现预定的转换顺序呢 ?换句话说,如何才能让 ADC按照用户指定的顺序对各个通道进行采样并转

5、换呢?如图 13-2 所示,ADC 模块内部具有自动序列发生器,用户可以通过编程为序列发生器指定需要转换的通道顺序。这里,序列发生器中第 1 个通道为 ADCINA0,然后是 ADCINA3,ADCINA2 和 A DCINA 5,一启动转换,ADC 便按照序列发生器中通道的顺序对指定的输人信号进行转换。从图 13-1 可以看到,X281x 的 ADC 模块具有 2 个 8 状态的序列发生器:SEQ1 和 SEQ2。这 2个序列发生器分别对应于 2 组采样通道:A 组通道 ADCINA0ADCINA7 对应于序列发生器 SEQI,而 B 组通道 ADCINB0ADCINB7 对应于序列发生器

6、SEQ2。此时,ADC 工作于 2 个独立的 8 通道模块。当 ADC 级联成一个 16 通道的模块时,SEQ1 和 SEQ2 也级联成一个 16 状态的序列发生器SEQ。对于每个序列发生器,一旦指定的序列转换结束,已选择采样的通道值就会被保存到各个通道的结果寄存器中。对应于 16 个信号输人通道,X281x 的 ADC 模块总共有 16 个结果寄存器ADCRESULT0-ADCRESULT15.13.1.1 ADC 模块的特点X281X 内部自带 ADC 模块的特点如下共有 16 个模拟量输人引脚,将这 16 个输人引脚分成了 2 组:A 组的引脚为ADCINAOADCINA7,B 组的引脚

7、为 ADGINB0-ADCINB7.具有 12 位的 ADC 内核,内置有 2 个采样保持器 S/H-A 和 S/ H-B。从前面的学习可以知道,引脚 ADCINA0- ADCINA7 对应于采样保持器 S/H-A,引脚 ADCINB0 -ADCINB7 对应于采样保持器 S/H-B.ADC 模块的时钟频率最高可配置为 25 MHz,采样频率最高为 12. 5 MSPS,也就是说每秒最高能完成 12. 5 个一百万次的采样。 Arc 模块的自动序列发生器可以按 2 个独立的 8 状态序列发生器( SEQ1 和 SEQ2 )来运行,也可以按一个 16 状态的序列发生器(SEQ)来运行。不管是 S

8、EQ1 , SEQ2 或者是级联后的 SEQ,每个序列发生器都允许系统对同一个通道进行多次采样,也就是说允许用户执行过采样的算法。如图 13 一 3 所示,8 状态的序列发生器 SEQ1 中先对通道 ADCINA0 连续采样 3 次,然后再对ADCINA1 通道连续采样 3 次,最后对 ADCINA2 通道连续采样 2 次。以 ADCINA0 为例,3 次采样结果的平均值肯定要比单次采样结果的精度来得高。A DC 模拟输人的范围为 03 V。值得注意的是,ADC 采样端口的最高输人电压为 3V,实际设计中,通常需要考虑到余量,因此一般输人最大值设计在 3V 的 80%左右,也就是 5 V。如果

9、输人的电压过高,如超过 3 V,或者输人的电压为负电压,都会烧毁 DSP,因此,通常需要将采样输人的信号先经过调理电路进行调整,使其输人电压范围在 A DC 正常工作范围之内。例如输人的电压值范围为 O-X.X 大于 3v,则可以通过分压电路,使输人电压的最大值小于 3V;或者输人的电压范围为一 X -Y,则可以将电压整体抬高 X,使其电压范围变为 0 - (X 十 Y),然后再通过其他的方式,使得电压最大值小于 3V。如果将调整前的信号称为原始信号,而将调整后的信号称为调整信号,DSP 采样得到的是调整信号的值,但是最后可以在 DSP 程序中通过原始信号和调整信号的关系来还原原始输人信号的值

10、。为了保险起见,在输人信号(如果经过调理电路,则为调整信号) 进 DSP 的 ADC 端口时,最好加一个如图 13 一 q 所示的钳位电路。图中采用了一个双二极管,如英飞凌公司的 BAT68 -04。当输人电压超过 3. 3 V 时,二极管 D1 导通,ADC 输人引脚上的电平变为 3. 3 V ;当输人电压为负电压时,二极管 D2 导通,ADC 输人引脚上的电平变为 0,因此这个电路能够将 ADC 输出引脚上的电平稳定在 0 3. 3 V,从而保护了 A D;输人端口。这里大家可能会有疑问,不是说 A/D 端口的输人电压是 03 V 吗,怎么图 13-4 中设计的高电压是 3. 3 V 呢?

11、这是从工程设计的实际情况出发,选择最容易获得并且接近的电压,因为 nsP 的工作电压就是 3. 3 v 和工.8v,所以选择 3. 3 v .ADC 模块对一个序列的通道开始转换必须需要有一个启动信号,或者说是一个触发信号。当启动信号到来时,相应的序列发生器就开始对其内部预先指定的通道进行转换。当 ADC 工作于独立的 8 状态序列发生器 SEQ1,SEQ2 和工作一个级联的 16 状态序列发生器时,启动 ADC 转换的方式稍有不同,具体如表所列。软件立即启动,是指通过程序对 ADC 控制寄存器 ADCTRL2 的第I3 位,即 St)C SEQ1 位置 1,来立即启动 ADC 转换。EVA

12、或者 EVB 的多种事件启动方式是指用通用定时器的周期匹配、比较匹配和下溢匹配这 3 个事件来启动 ADC 转换,而究竞采用哪个事件来启动 ADC 转换,取决于事件管理器寄存器 UPT-C/3. 0 X 65 520 (13 一 1)式中,ADResult 是结果寄存器中的数字量,Voltlnput 是模拟电压输人值,ADCLC) 是 ADC 转换的参考电平,实际使用时,通常将其与 AGND 连在一起,因此此时 ADCL()的值为 O.还有一种关系表达式,其结果是一样的,只是表达的方法不一样。由于 ADC 结果寄存器中的数字量位于高 12 位,低 y 位是无效的,那是不是可以将 ADResul

13、t 中的值先右移 4 位,然后再进行计算。同样的,当输人的电压为v 时,ADResult 右移 4 位后,值为 OxOFFF,也就是 4 095。当输人的电压为。V 时,结果寄存器的值依然为 0。根据图 13 一 6 所示的线性转换关系,则:( ADResult4) _ (Voltlnput 一 ADCLO)/3. 0 X 4 095 (13-2)在实际应用中,通常都是通过读取 ADC 结果寄存器中的值,然后求得实际输人的模拟电压值。下面来详细分析 ADC 模块的时钟 ADCLK。图 13 一 7 中的 CLKIN 是指外部输人的时钟,这里也就是外部晶振所产生的时钟。假设外部晶振的频率为()S

14、CCLK Hz,通过前面的介绍可以知道,通常选用的是 30 MHz 的晶振。外部晶振经过 PLI_模块产生 GPU 时钟 SY-SCLK()UT,如果 PL.T.模块的值为 m,则有:SYSCLK()UT=OSCGLK*m./ 2(。 ,!=0)SYSCLKUUT = USCCLK(m = 0) (13-3)然后,CPU 时钟信号经过高速时钟预定标器 HISPCP 之后,生成高速外设时钟 H SP-CLK.假设 HISPCP 寄存器的值为 n,则有 :I-I SPCL.K-HSPCIK=SYSCLKOUT/2n(n!SYSCLKC)UT(n = 0)= 0) (13 一 4)如果外设时钟控制寄

15、存器 PCLKCR 的第 3 位,也就是位 ADCENCLK 置位,则 HSPCLK 输人到 ADC 模块:否则,HSPCLK 不向 ADC 模块提供时钟,ADC 也就不能正常工作。ADC 控制寄存器 ADCTRL3 的第 0-3 位,也就是功能位 ADCL.KPS,可以对 H SPCLK 进行分频。此外,ADC控制寄存器 ADCTRLI 的 CPS 位还可以提供一个 2 分频,因此,可以得到 ADC 模块的时钟ADCL.K 为:ADCLK = HSPCLK/(CP5+1)(ADCLKPS=0)ADCI_K =i-iSPCLK2 X ADCLKPS X COPS+1)(ADCLKPS!= 0)

16、 (13 一 5)X2$lx 的 A DC 时钟频率最高为 25 MHz,因此在设置 ADC 的时钟 ADCLK 时,不能超过 25 MHz。在设置完 ADCLK 之后,需要选定采样窗口的大小。首先,什么是采样窗口?对于 S/ I-I 电路来说,采样窗口其实就是采样时间,或者说是采样脉冲的宽度。为了能够更好地理解采样窗口的概念,这里再来补充介绍一下 ADC 的模拟输人阻抗模型,如图 13 -8 所示。图 1-8 中, CI,是采样电容, Ra,、是多路复)_ 日器 MUX 的导通电阻,C是和 ADCIN 引脚连接的寄生电容。对于每一次采样,采样脉冲为高电平,采样/保持开关 S 在 t,时间是闭合的,在这段时间内,采样电容 Ln、在不断充电,直至电容上的电压等于 ADC;IN 引脚上的电压。这里,t 、就是采样窗日的时间,很显然,采样窗

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号