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

MSP430G2333改变DCO频率的问题请教

通电后DCO初始化为1M后,应该怎么再切换为其它?下面是开始的初始化的1M,但是后面想再变用8M的话就有点懵了,想请教下该怎么切换的

WDTCTL = WDTPW + WDTHOLD;

DCOCTL = CALDCO_1MHZ;  
BCSCTL1 = CALBC1_1MHZ; 
BCSCTL3 |= LFXT1S_2; 
TA0CTL = TASSEL_2 + TAIE; 
TA1CTL = TASSEL_1 + TAIE; 

Susan Yang:

您可以参考下面链接给出的代码。您需要外接32K晶振作为校正频率。github.com/…/msp430x20xx_dco_flashcal.c

user5050221:

回复 Susan Yang:

可是产品是不用晶振的啊。一定要用晶振才能改变的吗?

Susan Yang:

回复 user5050221:

最好是用晶振。另外您可以看一下 www.ti.com/…/slaa336a.pdf

user5050221:

回复 Susan Yang:

感谢回复,看过了还是用晶振校正的,那如果不用晶振的话就没办法了吗?不要求很精准的频率的,只是想知道怎么能够稳当的切换,试过直接改可以切换,但总觉得有点太随意心里没底。
通过上面的初始化后,当确定电压达到稳定了就这样直接切换,不知道会有其它隐患不
_DINT();
DCOCTL= CALDCO_8MHZ;
BCSCTL1 = CALBC1_8MHZ;
BCSCTL3 |= LFXT1S_2;
TA0CTL = TASSEL_2 + ID_3 + TAIE;
TA1CTL = TASSEL_1 + TAIE;
delay_us(50);_EINT();

Susan Yang:

回复 user5050221:

您可以看一下 www.ti.com/…/msp430g2333.pdf 的 5.19 Calibrated DCO Frequencies, Tolerance
若是可以满足您的条件,就可以不用加晶振校准

user5050221:

回复 Susan Yang:

误差可以接受的,只是不知道我这样切换有没有问题?

WDTCTL = WDTPW + WDTHOLD;
//通电后先设置为1M
DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;
BCSCTL3 |= LFXT1S_2;

TA0CTL = TASSEL_2 + TAIE;
TA1CTL = TASSEL_1 + TAIE;

//配置各端口,检测到电压大于2.3V后再切换到8M
_DINT();
DCOCTL = CALDCO_8MHZ;
BCSCTL1 = CALBC1_8MHZ;
BCSCTL3 |= LFXT1S_2;

TA0CTL = TASSEL_2 + ID_3 + TAIE;
TA1CTL = TASSEL_1 + TAIE;

delay_us(50);
_EINT();

Susan Yang:

回复 user5050221:

理论上是可以的,上电后默认就是1M

灰小子:

回复 user5050221:

应该没问题,你可以烧写到mcu测试一下,比如闪个led灯,或者通过io输出mclk,观察一下dco的改变

赞(0)
未经允许不得转载:TI中文支持网 » MSP430G2333改变DCO频率的问题请教
分享到: 更多 (0)