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,没有用外部晶振,只用了内部的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的头文件可以找到其定义!