[求助] 用MSP430F149采集数据,怎么计算采样频率?

glphighlj   2012-4-15 18:53 楼主
/*************************************初始化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,哪位高手帮忙计算下这样设置的采样频率啊?希望详细说明计算步骤,非常感谢!!

回复评论 (3)

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
点赞  2012-4-18 08:46

回复 沙发 Triton.zhang 的帖子

非常感谢您的帮助!!
有个问题“SHx为默认的0, 对应的N值为4”,为什么是4,不是N=2的SHx次方吗?如果SHx=2,N=多少啊?望指点下,谢谢!
点赞  2012-4-19 11:37

回复 板凳 glphighlj 的帖子

是4*n*adcclk
点赞  2012-7-9 15:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复