/*************************************初始化ADC12转换*************************************/
void init_ADC(void)
{
P6SEL = 0x38;
ADC12CTL0 &= (~ENC);
ADC12CTL0 = ADC12ON+MSC+SHT0_2;
ADC12CTL1 = ADC12SSEL_2+CSTARTADD_3+SHP+CONSEQ_3;
ADC12MCTL3 = INCH_3;
ADC12MCTL4 = INCH_4;
ADC12MCTL5 = INCH_5+EOS;
}
MCLK 8M,哪位高手帮忙计算下这样设置的采样频率啊?希望详细说明计算步骤,非常感谢!!
1.ADC的采样周期Tadc是由两部分组成,一是ADC的采样保持时间,这里我们用Th表示,二是ADC的转换时间,我们用Tt来表示.
即: Tadc = Th + Tt
2. MSP430的ADC采样保持时间一般是用如下的公式进行计算:
Th = 4 x ADCclk x N;
ADCclk 为 ADC的内核时钟源ADC12SSELx[2]和ADC的时钟分频比ADC12DIVx[0]参数决定,
例程中为ADC12SSEL_2 即选择MCLK[8M],ADC的时钟分频 为默认的0,ADCCLK即为8M;
N为ADC12CTL0中的SHTx的值,楼上的SHx为默认的0, 对应的N值为4.
这样一来 Th = 4 X 4 / 8000,000 = 2(us) ....500K
这里需要注意一下,MSP430是有最小采样保持时间的参数的,不同的芯片有不同的值,这个500k不能超过芯片给定的最大采样保持频率.
3. ADC的转换时间Tt.是ADC12模块将采样保持的模拟信号转换成数字信号的时间。
ADC的模块我们可以等效为一个电阻和一个电容串联,在MSP430的ADC12模块中,等效为一个2K电阻和30pF的电容。 这个等效电路的频率是
Fadc = 1 / (2 x 3.14 x R x c), 这里为 1/(2x3.14x2000x20)
ADC的转换时间的计算公式如下:
Tt = 13 x ADC12CLK x Fadc
4. 剩下就是楼主自己去计算了.
Triton.zhang
QQ:906411450
回复 沙发 Triton.zhang 的帖子
非常感谢您的帮助!!
有个问题“SHx为默认的0, 对应的N值为4”,为什么是4,不是N=2的SHx次方吗?如果SHx=2,N=多少啊?望指点下,谢谢!
回复 板凳 glphighlj 的帖子
是4*n*adcclk