打印

紧急求助,在线等!关于MSP430内置RTC误差

[复制链接]
3113|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qq57566677|  楼主 | 2013-8-6 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qq57566677 于 2013-8-6 14:20 编辑

我用的MSP430F5438A,内置RTC误差大的无法忍受,内部校准功能也用上了,结果是1分钟快0.6秒!

我觉得这东西本质就是个计数器,只要32768晶振没问题,不可能差多少(可以保证晶振确实没问题)。现在板子都做好了,这可怎么办?好后悔没选择外置RTC。诸位有遇到这个问题吗?在线等帮助!

有用5438A的朋友吗? 谁手里有板子,请帮忙测试一下RTC的精度,感激不尽!

相关帖子

沙发
dirtwillfly| | 2013-8-6 09:40 | 只看该作者
要精准,就不要用内部RTC。用外置晶振吧

使用特权

评论回复
板凳
dirtwillfly| | 2013-8-6 09:49 | 只看该作者
你的这个误差确实有点大,MSP430F5438A内部的RTC_A可以做到更小的误差的

使用特权

评论回复
地板
dirtwillfly| | 2013-8-6 09:55 | 只看该作者
MSP430F5438内部带一个RTC_A模块,有以下功能:
1. MSP430F5438 内部带RTC_A模块,该模块可以提供实时时钟和日历功能,也可以配置成普通的计数器。
2. RTC的计数增加的时钟源可以使ACLK,SMCLK或者是他们分频后的时钟.
3. 使能RTCMODE选择日历模式,可以选择BCD或十六进制方式提供秒,分,小时,星期,日期和年份。
4. RTC_A提供一个闹钟系统,用户可编程控制的闹钟
5. RTC_A的寄存器每秒更新一次
6. 软件复位不会影响RTC的寄存器,上电复位需要重新设置.

使用特权

评论回复
5
leesff| | 2013-8-6 10:09 | 只看该作者
会不会是对内部寄存器操作时,引起误差?

使用特权

评论回复
6
qq57566677|  楼主 | 2013-8-6 10:54 | 只看该作者
我的RTC是单片机内置的,但晶振是外置的,而且我换了两个了,这个晶振在别的地方用过,一天的误差不超过2秒的。

使用特权

评论回复
7
qq57566677|  楼主 | 2013-8-6 10:56 | 只看该作者
我的程序对RTC的操作频率很低的,只有在需要的时候才会读日期和时间。

使用特权

评论回复
8
qq57566677|  楼主 | 2013-8-6 11:03 | 只看该作者
本帖最后由 qq57566677 于 2013-8-6 11:04 编辑

这个是我的程序,主要是对时钟ACLK的配置。我就怕出问题,所以配置的很简单,请高手帮忙看看:

ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz

void CLK_Init(void)
{
    // Initialize LFXT1
    P7SEL |= 0x03;                                    // Select XT1
    UCSCTL6 &= ~(XT1OFF);                     // XT1 On
    UCSCTL6 |= XCAP_1;                        // Internal load cap

    do
    {
        UCSCTL7 &= ~XT1LFOFFG;                // Clear XT1 fault flags
    }while (UCSCTL7&XT1LFOFFG);               // Test XT1 fault flag
   
    UCSCTL6 &= ~(XT1DRIVE_3);                 // XT1 now stable, reduce strength
}

配置好XT1LF以后,ACLK会默认使用XT1LF的。  

使用特权

评论回复
9
qq57566677|  楼主 | 2013-8-6 11:09 | 只看该作者
dirtwillfly 发表于 2013-8-6 09:49
你的这个误差确实有点大,MSP430F5438A内部的RTC_A可以做到更小的误差的

请问dirtwillfly,你也做个这个单片机的内置RTC吗? 能不能给我一段配置时钟的程序?先谢谢了!

使用特权

评论回复
10
dirtwillfly| | 2013-8-6 11:23 | 只看该作者
qq57566677 发表于 2013-8-6 11:09
请问dirtwillfly,你也做个这个单片机的内置RTC吗? 能不能给我一段配置时钟的程序?先谢谢了! ...

不做这个,只是看过类似资料。网上应该有例子

使用特权

评论回复
11
dirtwillfly| | 2013-8-6 11:25 | 只看该作者

使用特权

评论回复
12
通宵敲代码| | 2013-8-6 13:05 | 只看该作者
估计实际寄存器操作太多了。

使用特权

评论回复
13
通宵敲代码| | 2013-8-6 13:07 | 只看该作者
实在不行就认为调误差,就是把你多出来的那0.6秒人为得减去,不就OK了。

为了省成本吗,谁让你这么火急火燎的做出来了呢。

使用特权

评论回复
14
qq57566677|  楼主 | 2013-8-6 14:30 | 只看该作者
本帖最后由 qq57566677 于 2013-8-6 14:40 编辑

不是为了省成本,是为了电路简单 。 我们用过其他单片机,也是内置RTC,从没出现这么差的精度,只是低功耗不如430,这才改了,没想到啊没想到…………
大家谁手里有5438A的班子吗?请帮忙测试一下RTC的精度,谢谢!

使用特权

评论回复
15
jlass| | 2013-8-6 15:28 | 只看该作者
只要是使用外部的晶振,内置的RTC根本没有问题,不会影响精度的。
先确认一下自己的代码实现有没有问题
也可能跟MPS430有关,建议直接去问TI的技术支持

使用特权

评论回复
16
gfy90043184| | 2014-2-15 10:47 | 只看该作者
我也正用5438A的RTC做万年历,遇到了同样的问题,就是我的是10分钟左右“慢”1S的样子。你是怎么做的校准啊。???

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

24

帖子

0

粉丝