其中测试管脚的信号为:周期为2.4S 高电平时间为0.3s
设置AD时:P6SEL |= 0x08;
ADC12CTL0 = ADC12ON+MSC+REFON+REF2_5V + SHT0_8;
ADC12CTL1 = SHP + CONSEQ_2 + ADC12SSEL_3 +ADC12DIV_7;
ADC12MCTL0 = SREF_1 + INCH_3;
ADC12IE = 0X01;
ADC12CTL0 |= ENC;
ADC12CTL0 |= ADC12SC;
即采用第3通道,选用SMCLK(DCO) 并对其进行8分频,SHT0_8(256)选用内部参考电压2.5v
测试1,基于DCO进行的测试
经过实际测试:
周期:869 高电平:108 占空比:108/869 = 0.124
周期:870 高电平:109 占空比:109/870 = 0.125
标准:300/2400 = 0.125
理论分析:初始DCO为800K,8分频为:100K,周期为:10us
而转换一个数需要的周期数据为256+13+3=272个ADC12CLK ,
SO 转换一个数的时间为2.72ms
综上,2.4s内能完成2400/2.72=882.35个数的转换,与实测的870基本吻合。
若不考虑Tsync:则转换一个数需要的周期数据为256+13=269个ADC12CLK ,
SO 转换一个数的时间为2690ms
从而2.4S内能完成2400/2.69 = 892 (与实测的相差大)
测试2,基于外部8MHz晶体进行的测试
设置AD时:
BCSCTL1 &= ~XT2OFF; // 打开XT2高频晶体振荡器
do
{
IFG1 &= ~OFIFG; //清除晶振失败标志
for (i = 0xFF; i > 0; i--); // 等待8MHz晶体起振
}
while ((IFG1 & OFIFG)); // 晶振失效标志仍然存在?
BCSCTL2 = SELM_2+DIVM_3; //select XT2,并对其进行8分频,然后供给MCLK;
ADC12CTL0 = ADC12ON+MSC+REFON+REF2_5V + SHT0_8; // Turn on ADC12, extend sampling timeSHT0_8
ADC12CTL1 = SHP + CONSEQ_2 + ADC12SSEL_2 +ADC12DIV_7;// Use sampling timer, repeated sequence,并对ADC时钟进行8分频
ADC12MCTL0 = SREF_1 + INCH_3;
ADC12IE = 0X01;
ADC12CTL0 |= ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conversion
理论分析:
初始XT2为8MHz 8分频为1MHz ,再对其进行8分频为125KHz 所以ADC12CLK的周期为8us
so 转换一个数的时间为:(256+3+13)* 8 = 2.176ms
SO 2.4S的周期能转换2400/2.176=1102.9 也即1102个数
若不考虑Tsync 则转换一个数的时间为:(256+13)* 8 = 2.152ms
SO 2.4S的周期能转换2400/2.152=1115.2 也即1115个,与实际测试仅差一个数。
实际测试:
周期:1114 高电平:139 占空比:139/1114 = 0.12477
标准:300/2400 = 0.125
2、把周期为2.4ms 高电平为300ms的脉冲信号加到另一块板子上
另一块板子采用DCO800k ,其余设置参数同上 其测试结果是:
周期:801 高电平:100 占空比:100/801 =0.1248
周期:799 高电平:99 占空比:99/799 = 0.1239
标准:300/2400 = 0.125
另一块板子采用XT2=6MHz时的测试结果:
周期:836 高电平: 104 占空比:104/836 = 0.1244
周期:836 高电平: 104 占空比:104/836 = 0.1244 可以看出(利用外部晶体重复性好)
标准:300/2400 = 0.125
理论分析:
初始XT2为6MHz 8分频为750KHz ,再对其进行8分频为93.75KHz 所以ADC12CLK的周期为10.7us
so 转换一个数的时间为:(256+3+13)* 10.7 = 2.91ms
SO 2.4S的周期能转换2400/2.91=824.7 也即824个数 {与实际测试的836基本相符}
若不考虑Tsync 则 2.4S的周期能转换2400/(269*10.67)=836.2 也即836 与实际测试完全相符
总结:就以上测试分析,可知,基本达到要求,但对DCO来说,稍有偏移,
根据DATASHEET:采样的总时间为Tsample +Tsync 但如果,不考虑Tsync,则对上面的采用外部晶体采集数据时
理论与实际完全相符。
但对DCO就不同,并且DCO,对不同的板子,虽然占空比相同,但采集数据个数也有很大的差别。这可能与DCO本身,所以为了把2.4S内的数据都采集到,应该取较大的采样数据。
随温度及环境而变化有关。
上一篇:MSP430AD转换
下一篇:利用MSP430调采集脉冲程序(疑问+解答)
推荐阅读最新更新时间:2024-03-16 15:05