发明内容
设计目的:避免背景技术中的不足之处,设计一种用于MSP430参数校准的参数校正系统。
设计方案:由于MSP430的12bit A/D内部参考电压(简称Vref)、DCO和外部OSC的使用,在很大程度上都会出现偏差,主要体现在以下几个方面:
内部参考电压(简称Vref):以MSP430F449为例,内部的Vref在理论上应该是2.5V或1.5V,但实际上是每片内部都存在差异,其范围是2.4V-2.6V或1.44V-1.56V,为了减少使用中的误差,所以要对内部Vref进行校准。
内部DCO(简称DCO):MSP430内部DCO的频率会随环境温度和电压的变化而有所浮动,为了能使得内部的DCO频率更精确,所以也要对内部DCO进行校准。
外部晶体(简称OSC):对目前使用的外部晶体,尽管标称是5PPM、10PPM,但实际上本身误差就都比较大,再加外部环境的影响,尤其在使用外部晶体作为万年历的时钟源,那误差就相当大,为了得到精确的时钟源,就要求对外部OSC进行校准。
为了实现上述设计目的。本实用新型在使用目标MCU前根据需要先将Vref、DCO或OSC校准程序下载到目标MCU中,然后执行校准程序,并将校准后实际的Vref、DCO和OSC写到固定的Information A中,这样可以方便用户使用,提高测量误差和提高时钟精度。
技术方案:参数校正系统,它包括MSP430芯片,其特征是由MSP430-电压参数校准控制板、MSP430-DCO参数校准控制板、MSP430-OSC参数校准控制板构成,(1)MSP430-电压参数校准控制板中的MSP430F2121电压校准主控制器与REF3212标准电压发生器的信号端连接;(2)MSP430-DCO参数校准控制板中的标准频率发生器的信号端与DCO校准主控制器的信号端连接;(3)MSP430-OSC参数校准控制板中的标准频率发生器的信号端与MSP430的信号端连接。
本实用新型与背景技术相比,不仅内部Vref校准精确,而且内部DCO校准精确,同时外部OSC校准精确。
具体实施方式
实施例1:参照附图1~7。参数校正系统,它包括MSP430芯片由MSP430-电压参数校准控制板、MSP430-DCO参数校准控制板、MSP430-OSC参数校准控制板构成,(1)MSP430-电压参数校准控制板中的MSP430F2121电压校准主控制器与REF3212标准电压发生器的信号端连接;(2)MSP430-DCO参数校准控制板中的标准频率发生器的信号端与DCO校准主控制器的信号端连接;(3)MSP430-OSC参数校准控制板中的标准频率发生器的信号端与MSP430的信号端连接。
MSP430内部参考电压校准(以F449内部ADC12为例)。
MSP430内部的ADC12的参考电压有1.5V和2.5V,但因内部偏差的原因,1.5V的参考电压的范围在1.4V-1.6V,而2.5V的参考电压的范围在2.44V-2.56V,这样,在做AD采样前应该先对内部参考电压进行校准,这里我们采用的方法是:在AD的AO通道输入1.25V的标准电压信号,然后利用内部的1.5V或2.5V参考电压去采样标准的1.25V输入电压,然后通过AD采样值1.5_Value、2.5_Value,计算出当前MSP430内部ADC12的参考电压实际值,具体计算公式如下:
和 公式1
公式说明:Vref是外部模式输入稳定的1.5V;Vref_1.5是校准以后的内部参考电压;Vref_2.5是校准以后的内部参考电压;1.5V_Value是模式输入电压为1.5V,内部参考为1.5V时的采样值;2.5V_Value是模式输入电压为1.5V,内部参考为2.5V时的采样值;通过上面公式计算出实际的内部参考电;Vref_1.5和Vref_2.5,并将结果写入内部Information A的1000H。以便客户使用时提高转换精度。
MSP430内部DCO校准(以MSP430F2013为例)
MSP430内部的DCO是一个数字振荡器,其DCO的频率会随温度和电压的波动而变化,所以在有些通讯或定时要求时间精度比较高的场合,校准DCO是完全有必要的。
下面以MSP430F2013单片机为例,讨论DCO的校准方法,通过下图可以看出DCO的校准原理是,标准10MHz晶体通过主控制器MSP430F2121分频以后输出Frg=1KHz的时钟信号,然后将1KHz的时钟信号输入到MSP430F2013单片机定时器TA捕获外部信号输入端,通过软件选择Frg=1KHz为定时器TA捕获的外部信号,选择待校准的DCO为基本定时器的时钟源,这样可以通过TA来捕获Frg信号,然后通过公式计算得出DCO的实际值,具体分析见附图7。
首先是测量的基本原理:现在用内部的DCO时钟DCOCLOCK来捕获Frg信号,捕获模式选择上升沿捕获,当定时器TA检测到Frg信号的第一个上升沿时,记录此时定时器的计数值为TAR1,紧接着当定时器TA检测到Frg的第二个上升沿时,再记录此时定时器的计数值为TAR2,Frg信号的两个上升沿之间的时间差即为Frg的一个周期1/Frg=1ms,所以TAc=TAR2-TRA1也就是TA在1ms内计数的个数,也就是捕获Frg的一个周期所需要的DCOCLOCK的个数,即DCOCLOCK/Frg=TAc,这样TA的时钟源DCO的频率DCOCLOCK=TAc*Frg;
基于以上基本原理,假如采用DCOCLOCK=1MHz作为TA的时钟源,捕获的信号仍然为Frg=1KHz,,TA来捕获Frg信号的1000个周期,这样TA计数的个数应该是1000000个,也就是DCOCLOCK,依次类推,只要我们捕获的信号为Frg,为了提高测量的精度,捕获Frg信号的N个周期(理论上N越大越好),最后得到计数器的计数值Ta_Couter,然后计算实际DCOCLOCK值,并写入Information A中。
计算公式如下:
公式2
公式说明:DCOCLOCK是DCOCLOCK的测量值
N是用TA捕获Frg周期的个数
Frg是外部输入的捕获的信号为频率为1K
Ta_Couter是TA捕获N个Frg周期的总计数个数;
MSP430外部OSC(32.768KHz)校准(F449为例)
MSP430F449MCU外接晶体有XT1和XT2两种接口,通常情况下,32.768KHz晶体作为低频时钟源接在XT1上,精度一般分5PPM、10PPM和20PPM等,在要求精度更高的场合可以选择1PPM的晶体,但实际上外部晶体的频率差异很大,这就要求我们想办法来测量晶体的实际频率,以达到校准的目的。
校准外部DCO(32.768K)的原理是,而10MHz的标准时钟通过TACLK引脚连接,并设置为TA的时钟源,用户板上32.768K通过XIN连接到MSP430F449作为LFXT1和ACLK;然后通过TACCR2来捕获ACLK,利用公式计算得出ACLK的实际值,具体过程如下:
当定时器TA检测到REAL_ACLK信号的第一个上升沿时,记录此时定时器的计数值为TAR1,当定时器TA检测到ACLK第二个上升沿时,再记录此时定时器的计数值为TAR2,Ta_Counter=TAR2-TRA1表示TA在一个REAL_ACLK周期内计数10Mhz的个数,从而得出REAL_ACLK=10M/Ta_Counter。
其误差值(REAL_ACLK-32.768KHz)/32.768KHZ=1/1000000,按这个公式推算出1PPM的32.768K晶体,其值是32768.032768,也就是说1PPM=0.032768,为了减小误差,提高精度,我们捕获N个REAL_ACKL的周期(理论上N越大越好),然后计算实际REAL_ACLK值。
计算公式如下:
公式3
公式说明:REAL_ACLK是ACLK的测量值,
N是用TA捕获ACLK的周期个数,Fin是TA的时钟源10M,
Ta_Couter是TA捕获N个ACLK周期总的计数个数。
术语说明
2.5V_VAULE:内部的2.5V参考电压去采样标准的1.25V输入电压的采样值。
1.5V_VAULE:内部的1.5V参考电压去采样标准的1.25V输入电压的采样值。
Vref_2.5V:为2.5V所对应的实际的参考电压值。
Vref_1.5V:为1.5V所对应的实际的参考电压值。
Vref:标准的1.25V输入电压。
DCO:MSP430内部数字振荡器。
OSC:MSP430外部晶体振荡器。
需要理解到的是:上述实施例虽然对本实用新型作了比较详细的说明,但是这些说明,只是对本实用新型的简单说明,而不是对本实用新型的限制,任何不超出本实用新型实质精神内的发明创造,均落入本实用新型的保护范围内。