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

430由LMP3唤醒之后,DCO问题

设置430由内部DCO默认的1Mhz为SMCLK,MCLK.设置内部的VLO为ACLK。当从LMP3唤醒执行中断的时候,测SMCLK不是1Mhz,请高手指教

Lina Lian:

deliang zhang,

请问你使用默认的1MHz,用的是下面设置吗?还是什么都没设?

BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ;

另外你是如何测SMCLK的?是从对应管脚引出来吗?实际测到的是多少?

deliang zhang:

回复 Lina Lian:

我没有设置,就是上电之后默认的DCO时钟,把引脚配置第二功能输出测试SMCLK,实际测到的频率每次唤醒之后都是变化的,都到不了1Mhz

linbo cen:

回复 deliang zhang:

在没有进入LPM3模式之前,你测出来的SMCLK是1MHz吗?

你最好把进入LMP3前后的频率都测量一下,这样好做个比较,大家也能明白你所处的环境

deliang zhang:

回复 linbo cen:

在进入LMP3之前是1Mhz,进入LMP3之后,SMCLK关闭,唤醒之后测试不到1Mhz

linbo cen:

回复 deliang zhang:

唤醒之后的频率和之前的频率能差多少?如果不多的话不是很影响的,如果差太多的话,就只能等了解其中原理的大神来解答了

还有,你可以在调试的时候,对比一下基础时钟系统的的几个配置寄存器在前后有没有发生改变,如果改变了,对比一下改变的这些位都都会产生什么样的影响,或者这样能找出问题所在

Lina Lian:

回复 deliang zhang:

deliang zhang,

你具体使用的是哪款芯片?请问你在唤醒cpu多长时间后,测的SMCLK? 另外是在debug状态测试的还是在非debug状态测试的?这两个问题的提出是:1. DCO是需要一定的时间稳定输出的;2. 在debug状态的LPM3并非严格意义的LPM3,非debug状态LPM3才是真正的LPM3. 故有以下几点建议,你再试试,

1. 从LPM3唤醒后,不要再进入LPM3, 就是给其足够的时间,看看频率怎么样?

2. 试着输出MCLK代替SMCLK看看;

3. 在非debug模式下试试;

4. 用下面设为1MHz再看看,因为默认情况下,不设的话,应该比1MHz略大。

BCSCTL1 = CALBC1_1MHZ; // Set rangeDCOCTL = CALDCO_1MHZ;

deliang zhang:

回复 Lina Lian:

我用的是CC430F5137,不是您说的两 个寄存器,还有就是数据手册里没有找到具体的DCO设置的参数,比如说在1Mhz时DCOX,MODX,DCORSEL对应的值。只有一个参考的频率范围,这样的话是不能保证输出1Mhz的频率的,只能保证DCO在某一范围变化,是这样吗?

Peter_Zheng:

回复 deliang zhang:

用UCS模块配置为某一具体的频率,从lpm3唤醒应该是不会变的

Lina Lian:

回复 deliang zhang:

deliang zhang,

用的是CC430F5137的话,可以直接使用core library直接对系统时钟进行设置的。如果没有严格的必须1MHz要求,不想使用库的话,就用默认的就行。其实只有当MODX不设为0时,即启用DCO modulator的话,DCO输出是变得,若MODX=0的话,DCO输出应该是不变的。除非,温度引起了DCO的些微变化。

赞(0)
未经允许不得转载:TI中文支持网 » 430由LMP3唤醒之后,DCO问题
分享到: 更多 (0)