10523|12

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教香主,RTC电池供电时间不准 [复制链接]

EK-STM32F开发板,JP7跳至VBAT端,电池供电。
USB供电时RTC准确的,拔掉USB后板上电池供电工作,24小时之后插上USB,时间慢了大约8小时10分钟,拔掉USB后测电池电压,为3.2V,电量应该可以的,请问这是什么原因?
此帖出自stm32/stm8论坛

最新回复

                                 程序是download到flash的,插上USB通电后,RTC差不多慢3倍,然后慢慢的RTC越来越快到正常的时间速度。建议按照4楼给出的文档检查晶振电路的余量,再按照文档的要求换一个晶体和对应的负载电容试试。   详情 回复 发表于 2009-7-29 15:46
点赞 关注
 

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

电池供电时RTC还在走吗?

                                 似乎你的RTC晶振没有工作。
此帖出自stm32/stm8论坛
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

应该在走的

                                 RTC不工作的话,时间应该差24小时的。
此帖出自stm32/stm8论坛
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 

你能确定在这24小时中RTC的晶振都始终正常工作吗?

请看ST网站上的一篇应用笔记,是关于如何设计晶振电路的:AN2867 ST微控制器振荡器设计指南 英文原文 中文译文
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

5
 

另外你能确定RTC晶振的频率正确吗?

你是否作了RTC的校准?

ST网站上有一篇RTC校准的应用笔记:AN2604 STM32F101xx和STM32F103xx的RTC校准
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

6
 

是万利的EK-STM32F开发板

万利的EK-STM32F开发板,设计上不该有问题的。
晶振应该是正常工作的,否则USB供电时RTC也应该不准的。
没有执行校准操作。
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 

你说有问题,我帮你分析可能的原因,但你却说设计上不该

                                 那么你的意思是不是“我们见鬼了”,呵呵~~~~~
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

8
 

程序是这样设置的,有没有问题?

void Setup_RTC(void)
{
    struct tm now;

    if(BKP_ReadBackupRegister(BKP_DR1) != CONFIGURATION_DONE)
    {
        RTC_Configuration();
        now.tm_year = DEFAULT_YEAR;
        now.tm_mon  = DEFAULT_MONTH - 1; //转化成0-11月
        now.tm_mday = DEFAULT_DAY;
        now.tm_hour = DEFAULT_HOURS;
        now.tm_min  = DEFAULT_MINUTES;
        now.tm_sec  = DEFAULT_SECONDS;

        Time_SetCalendarTime(now);

        BKP_WriteBackupRegister(BKP_DR1, CONFIGURATION_DONE);
    }
    else
    {
        /* Enable PWR and BKP clocks */
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP,ENABLE);

        /* Allow access to BKP Domain */
        PWR_BackupAccessCmd(ENABLE);

        RCC_ClearFlag();

        RCC_RTCCLKCmd(ENABLE);

        /* Wait for RTC registers synchronisation */
        RTC_WaitForSynchro();

        /* Wait until last write operation on RTC registers has finished */
        RTC_WaitForLastTask();

        /* Setting RTC Interrupts-Seconds interrupt enabled */
        /* Enable the RTC Second */
        RTC_ITConfig(RTC_IT_SEC, ENABLE);

        /* Wait until last write operation on RTC registers has finished */
        RTC_WaitForLastTask();
    }

    BSP_IntVectSet(BSP_INT_ID_RTC, RTC_Handler);
    BSP_IntPrioSet(BSP_INT_ID_RTC, RTC_Second_UIP);
    BSP_IntEn(BSP_INT_ID_RTC);
}

void RTC_Configuration(void)
{
    /* Enables the clock to Backup and power interface peripherals */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

    /* Allow access to Backup Registers */
    PWR_BackupAccessCmd(ENABLE);

    /* Backup Domain Reset */
    BKP_DeInit();

    /* Enable 32.768 kHz external oscillator */
    RCC_LSEConfig(RCC_LSE_ON);

    /* Wait for LSE ready */
    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);

    /* Config RTC clock source (external clock: 32.768K) */
    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);

    /* RTC Enabled */
    RCC_RTCCLKCmd(ENABLE);

    /* Wait until last write operation on RTC registers has finished */
//    RTC_WaitForLastTask();

    /* Wait for RTC registers synchronisation */
    RTC_WaitForSynchro();

    /* Wait until last write operation on RTC registers has finished */
    RTC_WaitForLastTask();

    /* Setting RTC Interrupts-Seconds interrupt enabled */
    /* Enable the RTC Second */
    RTC_ITConfig(RTC_IT_SEC,ENABLE);

    /* Wait until last write operation on RTC registers has finished */
    RTC_WaitForLastTask();

    /* Set RTC prescaler: set RTC period to 1 sec */
    /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */
    RTC_SetPrescaler(32763); 

    /* Wait until last write operation on RTC registers has finished */
    RTC_WaitForLastTask();
}
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

9
 

EK-STM32F开发板也要怀疑?

                                 EK-STM32F开发板是否官方的?所以设计上我没怀疑过它的问题。
此帖出自stm32/stm8论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

10
 

STM32的固件库中有例子

                                 你可以参考那个例子。
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

11
 

有这样的现象

                                 程序是download到flash的,插上USB通电后,RTC差不多慢3倍,然后慢慢的RTC越来越快到正常的时间速度。
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

12
 

STM32的RTC真是块难啃的骨头

早先RTC一直不工作,最后查出来是void RTC_Configuration(void)中下面两句的顺序问题,按下面的顺序是正常的,倒过来RTC就不工作。
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);

现在又出现电池供电时的时间运行问题,程序设置都是按照STM32的固件库中的例子改的,真不知道现在该如何下手找原因了?
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 

根据你的描述,估计问题在于晶振电路

程序是download到flash的,插上USB通电后,RTC差不多慢3倍,然后慢慢的RTC越来越快到正常的时间速度。

建议按照4楼给出的文档检查晶振电路的余量,再按照文档的要求换一个晶体和对应的负载电容试试。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表