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

msp430g2332用内部时钟时,批量生产时每个板上的频率都不同,与设定的频点会差几十HZ,怎么办?

msp430g2332用内部时钟时,批量生产时每个板上的频率都不同,与设定的频点会差几十赫兹,怎么办?

Susan Yang:

您现在是否有进行过校准?

user3899012:

回复 Susan Yang:

没有,不知道怎样校准啊!!!

灰小子:

楼主说的内部时钟是dco还是VLO?

配置的频率是多少?

如果是配置较高的频率,差几十Hz也是正产的。

user3899012:

回复 灰小子:

用的是内部DCO,时钟为默认设置,工作在1M上。有什么办法来减小误差呢,论坛上都说的DCO校准,是怎样用呢。

灰小子:

回复 user3899012:

大部分msp430内部都存储有ti出厂时校准dco的参数,msp430g2332也有。

在初始化的时候添加上相关代码就能校准dco,代码见如下例程

 *********************************************************************************MSP430 CODE EXAMPLE DISCLAIMER** MSP430 code examples are self-contained low-level programs that typically* demonstrate a single peripheral function or device feature in a highly* concise manner. For this the code may rely on the device's power-on default* register values and settings such as the clock configuration and care must* be taken when combining code from several examples to avoid potential side* effects. Also see www.ti.com/grace for a GUI- and www.ti.com/msp430ware* for an API functional library-approach to peripheral configuration.** --/COPYRIGHT--*/
//******************************************************************************
//MSP430G2xx2 Demo - Basic Clock, Output Buffered clocks with preloaded DCO
//calibration constants for BCSCTL1 and DCOCTL.
////Description: Buffer ACLK on P1.0, default SMCLK(DCO) on P1.4 and MCLK/10 on
//P1.1. DCO is software selectable to 1, 8, 12, or 16Mhz using calibration
//contstants in INFOA.
//
//ACLK = LFXT1 = 32768, MCLK = SMCLK = Selectable at 1, 8, 12 or 16Mhz
////* External watch crystal installed on XIN XOUT is required for ACLK *////	//* By default, the MSP430 uses XT1 to source ACLK; P2.6/7 configured////* automatically.
//MSP430G2xx2
//-----------------
///|\|P2.6/XIN|-
//| || 32kHz
//--|RSTP2.7/XOUT|-
//||
//|P1.4/SMCLK|-->SMCLK = Default DCO
//|P1.1|-->MCLK/10 = DCO/10
//|P1.0/ACLK|-->ACLK = 32kHz
//D. Dang
//Texas Instruments Inc.
//December 2010
//Built with IAR Embedded Workbench Version: 3.42A
//******************************************************************************#include <msp430.h>int main(void)
{WDTCTL = WDTPW +WDTHOLD;// Stop Watchdog Timer//1Mhzif (CALBC1_1MHZ==0xFF)// If calibration constants erased{while(1);// do not load, trap CPU!!}DCOCTL = 0;// Select lowest DCOx and MODx settingsBCSCTL1 = CALBC1_1MHZ;// Set rangeDCOCTL = CALDCO_1MHZ;// Set DCO step + modulation *//* //8Mhzif (CALBC1_8MHZ==0xFF)// If calibration constants erased{while(1);// do not load, trap CPU!!}DCOCTL = 0;// Select lowest DCOx and MODx settingsBCSCTL1 = CALBC1_8MHZ;// Set rangeDCOCTL = CALDCO_8MHZ;// Set DCO step + modulation *//* //12Mhzif (CALBC1_12MHZ==0xFF)// If calibration constants erased{while(1);// do not load, trap CPU!!}DCOCTL = 0;// Select lowest DCOx and MODx settingsBCSCTL1 = CALBC1_12MHZ;// Set rangeDCOCTL = CALDCO_12MHZ;// Set DCO step + modulation*//* //16Mhzif (CALBC1_16MHZ==0xFF)// If calibration constants erased{while(1);// do not load, trap CPU!!}DCOCTL = 0;// Select lowest DCOx and MODx settingsBCSCTL1 = CALBC1_16MHZ;// Set rangeDCOCTL = CALDCO_16MHZ;// Set DCO step + modulation*/P1DIR |= 0x13;// P1.0,1 and P1.4 outputsP1SEL |= 0x11;// P1.0,4 ACLK, SMCLK outputwhile(1){P1OUT |= 0x02;// P1.1 = 1P1OUT &= ~0x02;// P1.1 = 0}
}

Susan Yang:

回复 user3899012:

请参考之前的帖子

e2echina.ti.com/…/62646

user3899012:

回复 灰小子:

不好意思,我还想问一下,它校准的原理是怎样的呢?是不是我用的是1M的DCO,就只用校准1M就行了呢?其它的频率都不用去校准。

灰小子:

回复 user3899012:

1、原理就是配置dco相关寄存器到合适的参数

dco的工作原理可以参考数据手册的Digitally-Controlled Oscillator (DCO)部分。
2、是的。使用哪个频率就校准哪个频率。
ti出厂时一般给出1MHz、8MHz、16MHz等几个频率的参数(不同msp430型号可能会不同),如果使用未提供校准参数的频率,就只能自己校准了。

user3899012:

回复 灰小子:

谢谢!!!解了我多时的疑问。

赞(0)
未经允许不得转载:TI中文支持网 » msp430g2332用内部时钟时,批量生产时每个板上的频率都不同,与设定的频点会差几十HZ,怎么办?
分享到: 更多 (0)