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

MSP430G2553与G2452的内部DCO无法产生预定频率

     今天专门对MSP430G2553与G2452两款单片机(就是LaunchPad带的哪两个)做了内部的DCO频率测试,结果让我很是迷茫,两个单片机只有G2452可以产生较准确的1MHz的频率,G2553根本就没法产生1MHz的频率,而且也无法按着1MHz,8MHz,12MHz,16MHz的设定来产生。我用的是P1.4口输出SMCLK,用示波器测量其频率。对频率的初始化程序为

void MCU_clk_init(void)

 {

 if (CALBC1_8MHZ ==0xFF || CALDCO_8MHZ == 0xFF)  

     while(1);

     BCSCTL1 |= CALBC1_8MHZ;  DCOCTL |= CALDCO_8MHZ;//上面两句将内部DCO校准至8MHz

     /*   //1M   

     BCSCTL1 = CALBC1_1MHZ;       //实际DCO为1.5955MHz   

     DCOCTL = CALDCO_1MHZ;  

     //8M   

     BCSCTL1 = CALBC1_8MHZ;       //实际DCO为15.465MHz   

     DCOCTL = CALDCO_8MHZ;   

    //12M  

    BCSCTL1 = CALBC1_12MHZ;  //实际DCO为21.0280MHz   

    DCOCTL = CALDCO_12MHZ;   

     //16M   

    BCSCTL1 = CALBC1_16MHZ;  //实际DCO为15.7100MHz   

    DCOCTL = CALDCO_16MHZ;*/

    BCSCTL2 |= SELM_0;     //MCLK采用8M的内部DCO  

    BCSCTL2 |= DIVS_0;//SMCLK采用DCO时钟

     测试的实际频率结果都写在了后面,最开始我以为是G2553有问题,接着换了G2452也还是无法产生较精确的DCO,编译软件额是CCS5.2。这个问题以前就是存在的,在参加去年的TI杯时就曾发现过,那时总以为是自己的配置有问题,就没有再深究,毕竟那时对频率的精确度没要求。但通过今天的测试,问题依旧,我不知道问题到底是出在哪了?不过我怀疑是芯片的本身的问题,还望能够引起贵公司的足够重视。

Fuchong Wang:

相差这么大?

顺便问问Grace中产生的代码

if (CALBC1_8MHZ != 0xFF) { /* Adjust this accordingly to your VCC rise time */ __delay_cycles(100000);

/* Follow recommended flow. First, clear all DCOx and MODx bits. Then * apply new RSELx values. Finally, apply new DCOx and MODx bit values. */ DCOCTL = 0x00; BCSCTL1 = CALBC1_8MHZ; /* Set DCO to 8MHz */ DCOCTL = CALDCO_8MHZ;

这个__delay_cycles在CALBC1_1MHZ的时候就没有,可能是一种快速进入模式吧。关于这个__delay_cycles许少多长时间原理及数据在手册哪里有说明?

Young Hu:

是不是把SegA中存有的DCO校正信息给擦除了?

Peter_Zheng:

回复 Young Hu:

我们用launchpad做触摸按键都没有问题,我相信DCO的校验在温度正常的情况下,偏差不会很大,希望你能提供测试环境,测试波形。

xiaoshuang li:

回复 Young Hu:

我的手里有几个LaunchPad的板子,这几个板子都是这个样子的,如果是内部的矫正信息被删除,不能这几个板子都被删除吧。

xiaoshuang li:

回复 Peter_Zheng:

    就是在常温下进行测试的,只不过使用SMCLK输出端来测得DCO信号。在这样的情况下我做的触摸按键也没有问题,我的触摸按键是用的一个计数门限,超过门限认为按下,而且是在实际操作中进行门限矫正的,这样的话也就不会因为主频的问题而影响触摸按键了。如果可以的话,你们也可以测测你们的DCO频率。

Fuchong Wang:

回复 xiaoshuang li:

你没查看一下对应的InfoA中的校准数据还在不在对不对?

xiaoshuang li:

回复 Fuchong Wang:

东西还在,如果矫正信息不正确的话自己可以改吗?

Lina Lian:

回复 xiaoshuang li:

我曾经测试过MSP430G2553的1MHz, 用MCLK引出,输出约在虽然不是准确的1MHz, 但是是在1MHz附近变化的,因为DCO输出是由f(DCO)和f(DCO+1)混频而成的。校正信息是可以自己改的,请参照user guide的 Chapter 7 Flash Memory Controller,其中对segment A和flash的操作有具体说明。

Fuchong Wang:

回复 xiaoshuang li:

你这个相差这么大

你对照过还存在的校准数据,应该是那么大么?

如果校准数据错误,那是怎么回事呀?能相差那么大?要不要先检查一下自己的软硬件?有没有可能什么时候篡改了校准数据?

如果实在要自己校准,好像有一篇根据32768晶体的aclk校准DCO的文档,也许有参考。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430G2553与G2452的内部DCO无法产生预定频率
分享到: 更多 (0)