This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于MSP430FE427的SD16,定时采样的速度问题。



1 sd16,手册上说是推荐使用1M速度,是不是最高就只能1M速度?

2 我现在需要利用定时器定时采样,想要1个周波采64个点,系统时钟为4M,定时器选用SMCLK,不分频,为4M,SD16选择SMCLK,4分频,为1M。

这样配置对不对?

部分程序如下:

int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

SCFI0|=FN_3 + FLLD_1; //选择频率范围fDCOCLK = 2.2-17Mhz FLLD_1 00 不分频
FLL_CTL0=XCAP18PF; //配置18pF电容
SCFQCTL=127; //(127+1)*32.768K=4.194304MHz(DOC)

SD16CTL = SD16REFON + SD16VMIDON + SD16SSEL_1 + SD16DIV_2;
SD16INCTL0 |= SD16INCH0 + SD16GAIN_1;
//单次转换 + 过采样率256 + 双极性 + 中断使能
SD16CCTL0 |= SD16SNGL+SD16OSR_256+SD16DF+SD16IE; //2

TACTL = TASSEL_2 + TACLR + ID_0 + MC_1;          //SMCLK 4MHz 不分频 
//TACCTL0 = CCIE;           //enable interrupt
CCR0 = 1310-1;            //313us中断一次
TACTL |= MC0;               //开始计数
while(1); 

}

#pragma vector=SD16_VECTOR
__interrupt void SD16_ISR(void)
{
//在缓冲区中存放采集结果

SampleBuffer[SampleDotIdx] = SD16MEM0;
SampleDotIdx++;

CalcWaveCnt++;

if(SampleDotIdx >= SAMPLEBUFFER_MAXNUM)
{
SampleDotIdx = 0;
Test_End = 1;
}

}

#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0_ISR( void )
{
SD16CCTL0 |= SD16SC;

}

3 SD16初始化时,选择256过采样,默认延时3个采样周期,单次转换,那么用1M的频率,采1个周波64个点,需要多长时间,如何计算的?

如果用连续采样,时间会差多少,差在哪里了??

希望大家能够帮帮忙,这些问题困扰我好久了。