TI中文支持网
TI专业的中文技术问题搜集分享网站

请问有用过MSP430F5529的AD的吗 对于它的采样周期 如果我使用计时器触发AD采样 比较值是200(即使算上AD采样加转换的时间也可以都按照8MHz计算) 计时器的时钟频率是8MHz(无分频) 那么我的采样频率是40K左右吗? 如果不是 我要怎么计算它的采样周期? 十分感谢 在我的程序中 经过测试 不是40K左右 通过看采样点数 在20K左右 是什么原因 十分感谢

请问有用过MSP430F5529的AD的吗 对于它的采样周期 如果我使用计时器触发AD采样 比较值是200(即使算上AD采样加转换的时间也可以都按照8MHz计算) 计时器的时钟频率是8MHz(无分频) 那么我的采样频率是40K左右吗? 如果不是 我要怎么计算它的采样周期? 十分感谢
在我的程序中 经过测试 不是40K左右 通过看采样点数 在20K左右 是什么原因 十分感谢
代码如下
WDTCTL = WDTPW + WDTHOLD;

//初始化时钟
UCSCTL3 = SELREF_2; UCSCTL4 |= SELA_2; UCSCTL0 = 0x0000; do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
SFRIFG1 &= ~OFIFG; }while (SFRIFG1&OFIFG);

__bis_SR_register(SCG0); UCSCTL1 = DCORSEL_5; UCSCTL2 |= 249; // (624 + 1) * 32768 = 20MHz
__bic_SR_register(SCG0); // Enable the FLL control loop

//初始化ADC
P6SEL = 0x10; //使能ADC输入通道6.4
REFCTL0 &= ~REFMSTR; ADC12CTL0 = ADC12ON+ADC12MSC+ADC12SHT0_1+ADC12REFON+ADC12REF2_5V; //打开ADC12 设置多次转换 设置采样间隔 打开参考电压 设置为2.5V
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2+ADC12SSEL_3; //是否分频注意 //选择采样定时器作为采样触发信号 采样模式单通道多次转换 ADC参考时钟源SMCLK
ADC12MCTL0 = ADC12SREF_1+ADC12INCH_4; // Vr+=Vref+ Vr-=AVSS 选择6.4通道
ADC12CTL2 = ADC12RES_2; //ADC12分辨率控制位 12位 需要13个时钟周期的转换时间 可以分频 delay(48); //延迟 是参考电压稳定
ADC12CTL0 |= ADC12ENC; //使能转换

//初始化TA0
TA0CCTL0 = CCIE; //比较器中断使能 时钟源选择SMCLK
TA0CCR0 = 200; //比较值设为200,
TA0CTL |= MC_1 + TASSEL_2 + TACLR; //时钟为SMCLK,比较模式,开始时清零计数器

xinxin mao:

首先要搞清楚什么是adc的采样率,并不是你读取的速度是20k就是20k的采样率,你非要要求的话 ,只有把adc的时钟分割,就可以了,其他的并不需要设置,不过按照我之前的经验的话,这个东西不是无限可以分频的,所以如果你要20k的  就只有买20k的adc  ,本身mcu的adc不能有那么低的采样率。

灰小子:

回复 xinxin mao:

建议参考http://www.ti.com/cn/lit/pdf/slau208,里面讲的比较详细。

SeaFesse:

采样率 是 1秒钟对信号进行的采样点数。你的采样保持时间必须是小于两个采样点的时间间隔。

其次,为了保证采样到的数据可以还原原始模拟波形,采样率必须是被采信号的2倍以上。 

真正理解这两句话,你就有答案了。

user2000895:

AD本身的采样率你设置了没有,你设置的这个只不过是你读数据的速度,并不能算真正的AD采样率!

赞(0)
未经允许不得转载:TI中文支持网 » 请问有用过MSP430F5529的AD的吗 对于它的采样周期 如果我使用计时器触发AD采样 比较值是200(即使算上AD采样加转换的时间也可以都按照8MHz计算) 计时器的时钟频率是8MHz(无分频) 那么我的采样频率是40K左右吗? 如果不是 我要怎么计算它的采样周期? 十分感谢 在我的程序中 经过测试 不是40K左右 通过看采样点数 在20K左右 是什么原因 十分感谢
分享到: 更多 (0)