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

使用ACLK的Timer定时不正确

我们公司有个产品在进入低功耗后使用基于ACLK的Timer定时来唤醒, 目前发现在1分钟的定时唤醒中(其中会每100ms起来一次,查看1分钟是否到),有些产品可以准时起来,有些会延时3-6秒起来.

请问ACLK为什么频率不正确, 有方法可以校准这个频率吗?

注: 我们用的MCU为msp430fr5989.

测试代码:

CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK ;
CSCTL3 = DIVA__1 | DIVS__8 | DIVM__1;;//SMCLK 8分频,ACLK,MCLK时钟均不分频

TA1CTL |= TASSEL__ACLK; //定时器TA1的时钟源为ACLK
TA1CCTL0 |= CCIE;//使能定时器TA1CCR0.CCIFG中断

TA1R = 0;
TA1CCR0 = 1*940; //设置定时器TA1计数值, 定时器频率为9.4khz, 设为100ms的周期
TA1CTL |= MC_1; //启动增计时
TA1CCTL0 |= CCIE; //使能定时器TA0CCR0.CCIFG中断

datasheet上ACLK的描述:

灰小子:

你用的VLO作为ACLK的时钟源吗?
就像你贴出的表格中,VLO的误差比较大,从6~14kHz范围。

ll hgyxb:

回复 灰小子:

这个Timer是用于低功耗时唤醒,低功耗是LPM3模式, 功耗很低.

如果使用外部晶振功耗会变高,  所以这个很适合低功耗.

有没有什么方式校准一下这个ACLK, 或者获取准确的ACLK的频率

ll hgyxb:

回复 灰小子:

确实很麻烦, 还是简单点,用外部的

赞(0)
未经允许不得转载:TI中文支持网 » 使用ACLK的Timer定时不正确
分享到: 更多 (0)