This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPF4152的DCO问题..?..急...

Other Parts Discussed in Thread: MSP430F4152

我是使用F4152的DCO作为主频MCLK...我在官方例程上看到的是:

 SCFI0 |= FN_4;                            // x2 DCO freq, 8MHz nominal DCO

 SCFQCTL = 121;                            // (121+1) x 32768 x 2 = 7.99 Mhz

 FLL_CTL0 |= DCOPLUS + XCAP18PF;           // DCO+ set so freq= xtal x D x N+1

.....这是设置8M的...我看F4152的头文件和手册好像能到40M..我的方法是改变SCFQCTL = 121;的值..但是一直是8M...提升不上去...设置16M也不行..请问下怎么提高这个DCO?

  • bryant peter,你好!

    根据MSP430F4xxx user guide可知,SCFQCTLregister的N(Bits6-0)最大值可为127,而你之前已经设置为121了,即使再增大,也只能增大到127,此时对应的频率为(121+1) x 32768 x 2 =8.39Mhz,这就是为什么你感觉8M一直提不上去的原因。若想进一步提高DCO的输出,需要参考下面公式,即当DCOPLUS=1时,提高D的值。即(121+1) x 32768 x 2中的2就是D。

    When DCOPLUS = 0: fDCOCLK = (N + 1) ⋅ fcrystal

    When DCOPLUS = 1: fDCOCLK = D x (N + 1) ⋅ fcrystal

    故你可以把SCFI0 register中的FLLDx值设置高,默认为FLLD_2,若想得到16MHz,请设置为FLLD_4.

    希望我的建议对您有帮助!

  • 但是我看到MSP430F4152的主频最大只支持8M...如果我加大FLLD_4...能到16M吗?...

  • 但是我看到MSP430F4152的主频最大只支持8M...如果我加大FLLD_4...能到16M吗?...

  • bryant peter,你好!MSP430F4152的主频的确最高只支持8MHz, 因为它是在MSP430F1xxx系列基础上升级发展起来的。但是一般TI写的文档都留有一定的安全范围。例如MSP430F2xxx最高支持16MHz,但是其中的DCO最高可输出约为21MHz左右的频率。对于MSP430F4152,我没有实际测试过它的DCO最高可到多高,你可以测试一下可达到多少,但是应该是达不到16MHz的。

    但是,当提高CPU主频超过8MHz之后,可能会导致DCO质量下降,或者MCU状态不稳定,故一般不建议超频使用。

    还有一点,我看了MSP430F4xxx的user guide,这里的MCLK或者SMCLK只能直接为fDCO或者fDCO/D,但是对于MSP430F5xxx或者MSP430F2xxx系列而言,DCO和MCLK、SMCLK间是有Divider的,故一般对F2xx, F5xx而言,DCO是可以达到比最高主频高很多的频率的。

  • 无论测试结果如何,对于MSP430F4152,本着保险的原则,还是建议你最高只将MCLK设为8MHz来使用。

  • 好的。我测试了,能到20M的样子。对于您之前提到的F2xx, F5xx而言,DCO和MCLK、SMCLK间是有。意思就是说DCO和MCLK,SMCLK之间有分频。而F4152的DCO没有Divider,就不能分频。所以就MCLK或者SMCLK只能直接为fDCO或者fDCO/D吗?、

  • bryant peter, 是的,你的理解完全正确。由于F4152的DCO和MCLK或者SMCLK之间没有分频Divider,故MCLK或者SMCLK只能接为fDCO或者fDCO/D。

  • 谢谢。我明白了。也解决了。非常感谢。。