微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430学习 - ADC12

MSP430学习 - ADC12

时间:11-25 来源:互联网 点击:
MSP430F2417的ADC12模块功能比较强大,因此也比较复杂。

ADC12共有8个模拟输入通道A0~A7,与通用IO口P6.0~P6.7共用相同的管脚。因此,如果想使用某一个模拟通道,必须先定义的管脚功能,这通过设置IO口的功能选择寄存器(Function Select Registers)PxSEL和PxSEL2来完成。比如,如果想选择A3通道,可以通过下面两条语句:

P6SEL |= (0x01 < 3);

P6SEL2 &= ~(0x01 < 3);

ADC12模块的工作时钟,可以用自己的时钟ADC12OSC(大概是5MHz的频率,精度不高),也可以使用系统时钟ACLK、MCLK或者SMCLK,这通过寄存器ADC12CTL1的ADC12SSELx标志位来设置,工作时钟可以分频,通过ADC12CTL1的ADC12divx位来设置。

所有的模数转换,都分为采样保持和转换两个步骤。外部的模拟信号总是在变化的,而模数转换需要稳定的电压,因此,在转换之前,需要先锁定(保持)信号。F2417通过一个电阻R1和一个对地的电容C1来进行采样保持(实际上就是对C1进行充电)。R1的最大值为2K,C1的最大值为40pF,这两个值决定了在保持一定的采样精度的前提下的最短的采样保持时间。但是,外部模拟信号总是有输出电阻的,因此,采样时间还与外部信号的输出电阻有关系。困难在于,我们有时候很难知道外部信号的输出电阻,因此就很难估计合适的采样保持时间。所以,根据阻容网络的充放电原理,采样保持时间越长,信号的误差就会越小,我们要尽量延长采样保持的时间。但这样又带来另外一个问题,根据奈奎斯特采样定理,只有采样频率大于信号中最高频率的2倍,采样之后的数字信号才能重现原始信号,一般实际应用中采样频率要是信号最高频率的5~10倍。所以,采样保持时间也不能太长。

ADC12有一个SHI信号,SHI信号的上升沿开启采样保持和模数转换过程。SHI信号可以有四种来源:ADC12CTL0寄存器的ADC12SC位,Timer_A1,Timer_B0,Timer_B1,这通过ADC12CTL1寄存器的SHSx位来选择。

ADC12有两种AD模式,逐次触发模式和连续模式,这通过ADC12CTL0的MSC位来确定。MSC=0,则每次AD过程都需要SHI信号来触发,MSC=1,则只有第一次需要SHI信号来触发,然后就连续不停的转换。

这两种AD模式适用于不同的情况:如果需要尽快完成AD转换,而不关心信号的频率,那么可选择连续模式。如果关心信号的频率,比如需要进行FFT变换,那么就要采用逐次触发模式,并且选择合适的SHI信号源,只有这种方式,才能保证准确的采用频率,也才能正确地重建新号。

在选择逐次触发AD模式时,又会有两种采样保持模式可选:扩展模式(Extended Sample Mode)和脉冲模式(Pulse Sample Mode)。这通过ADC12CTL1寄存器的SHP位来选择。

在扩展模式(SHP=0)中,SHI信号为1时,始终进行采样保持,在SHI信号的下降沿,采样保持停止,开始进行转换,再经过13个AD工作时钟周期,转换完成。

在脉冲模式(SHP=1)中,采样保持时间受ADC12CTL0寄存器的SHT1x位和SHT0x位来控制,可选择从4个AD工作时钟周期到1024个AD工作时钟周期。采样保持停止后,再经过13个AD工作时钟周期,转换完成。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top