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.

G2553时钟问题

现在正在用G2553,没有用外部晶振,只用了内部的DCO作为时钟源。

想把DCO配置成200kHz,但发现没有一个配置200KHz的寄存器参考值(1MHz有头文件提供默认的宏),请问应该如何知道DCOx和RSELx和MOD应该配成多少?

通过手动不断在示波器上测试,配了一套值,但发现时钟不是特别准,请问内部DCO在没有外部参考的情况下精度是多少?

我知道在有外部晶振参考的情况下,可以通过软件的方式计算出配置DCO的寄存器值,那么在没有外部晶振参考的情况下,应该如何配置呢?

谢谢

  • 楼主你好,

        如果没有特殊的需求,建议使用已经校准过的DCO频率配置(比如你提到的1MHz)。然后再分别使用外设各自的分频功能分出需要的时钟。不适用校准的DCO频率的话就需要自己配置了,RSEL,DCO都需要配置,并且DCO设置的时钟是有范围的,step大约10%。而MOD用来配置抖频的频率,使得时钟在DCO和DCO+1之间切换,防EMI。所以只能得出一个平均值。

    所以还是建议使用校准过的DCO配置,不然的话就只能自己配置,而这种配置是有精度限制的(DCO 的step大约是设置好RSEL之后的范围内的10%)。具体建议楼主看User guide,会比较详细。

  • 非常感谢您的回复。

    我是想通过降低2553的主频来降功耗,同时用这个频率来驱动timer等外设。请问这种方式对于降低2553的功耗效果明显么?是否有相关数据?谢谢

  • 楼主,

        关于降低频率应该是可以降低功耗的,可以参考datasheet上的图表“Typical Characteristics, Active Mode Supply Current” 。这样做的话就需要自己去调整DCO设置。如果楼主需要降低功耗,可以在使用中让MSP430进入LPM模式来降低功耗。

  • 好的,我明白了,非常感谢您的回答

  • 你好,

    MSP430G2xxx不支持外部高频时钟,如果你希望利用DCO时钟是可以的,但不推荐,因为你设置的时钟是没有被校准的时钟,意义不大,误差范围+-3%。

    另外,在数据手册上我们有说明,我们出厂在information flash有定义1M 4M 8M 12M 16M被校准的时钟值,直接调用该值可配置DCO时钟输出定义的时钟频率。

    WDTCTL = WDTPW + WDTHOLD; // Stop watch dog timer
    BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz
    DCOCTL = CALDCO_1MHZ;

    CALBC1_1MHZ,和CALDCO_1MHZ在G2xx.h的头文件可以找到其定义!

  • 好的,谢谢

x 出现错误。请重试或与管理员联系。