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.

[参考译文] MSP430F5659:断电期间 RTC 更新

Guru**** 2531950 points
Other Parts Discussed in Thread: MSP430F5659

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/823259/msp430f5659-rtc-update-during-power-off

器件型号:MSP430F5659

大家好、

我在我的产品中使用 MSP430F5659、我将获得更新的日期和时间、而主电源可用(纽扣电池也连接到 VBAT)时没有问题。

但是、当我关闭主电源时、我不会更新日期和时间。 我将在主断电时间和日期之前得到。

下面是 RTC-B 的设置

void Initialize_RTC_B (void)

     / /解锁电池备份系统
     while (Battbak_unlockBackupSubSystem (bak_BATT_base));

//在低频模式下初始化 LFXT1晶体振荡器
UCS_TurnOnLFXT1 (UCS_XT1_DRIVE_3、UCS_XCAP_3);

/* 1-0 RTCTEVx RW 0h 实时时钟时间中断事件
00b =分钟更改
01b =小时更改
10b =每天午夜(00:00)
11b =每天中午(12:00)*/

//指定一个中断以每分钟生效
RTC_B_setCalendarEvent (RTC_B_BASE、
RTC_B_CALENDAREVENT_INTOTECHANGE);

//启用 RTC 就绪状态中断,当 RTC 时该中断有效
//Calendar 寄存器已准备好读取。
//此外,为日历警报和日历事件启用中断。
RTC_B_clearInterrupt (RTC_B_base、
RTCRDYIFG + RTCTEVIFG + RTCAIFG);
RTC_B_enableInterrupt (RTC_B_BASE、
RTCRDYIE + RTCTEVIE + RTCAIE);

//启动 RTC 时钟
RTC_B_startClock (RTC_B_BASE);
//中断被启用
_bis_SR_register (GIE);
__no_operation();

}   

//
//
//这是 RTC_B 中断矢量服务例程。
//
//
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=RTC_vector
_interrupt
#Elif defined (_GNU_)
__attribute__((中断(RTC_Vector))
#endif
空 RTC_B_ISR (空)

//解锁备份系统
while (Battbak_unlockBackupSubSystem (bak_BATT_base));

switch (__evo_in_range (RTCIV、16))

情况0:中断;//无中断
案例2://RTCRDYIFG
中断;
案例4://RTCEVIFG
//每分钟中断一次
__no_operation();

//在这里读出新时间一分钟后的断点
RTC_B_getCalendarTime (RTC_B_BASE);
中断;
案例6://RTCAIFG
//每周第5天下午5:00中断
__no_operation();
中断;
案例8:中断;//RT0PSIFG
案例10:中断;//RT1PSIFG
案例12:中断;//保留
案例14:中断;//保留
案例16:中断;//保留
默认值:break;

我错过了什么吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Krishna、

    请在器件用户指南 第3.2节的电池备份操作中找到说明:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wei、

    我在论坛上找到了一个示例代码、它可以与我的定制硬件配合使用。

    我在项目中使用了相同的 RTC 初始化设置、我将获得故障振荡器和频率下降位设置。  

    如果我在   RTC_Issue 文件中添加了 configureHardware();(行号170)(请参阅附加的文件)。 我可以保留 RTC 的日期和时间。

    如果我未注释行号170 (configureHardware();),则无法获取更新的日期和时间。

    注:-

    1) 1)将控制器频率提高到20MHz、请参阅  sysinit_Init_Micro ();

    2) 2)根据20MHz SMCLK、我们实现了计时器、SPI、I2C 和 UART 等其余外设

    e2e.ti.com/.../RTC_5F00_Issue.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    任何有关上述查询的更新。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据我的理解、可在断电期间使用电池更新 RTC。 通过互联网上提供的示例源代码、我可以对其进行测试。 但是、当我将其集成到我的应用程序中时、它无法按预期工作。 我在代码中所做的额外工作更多地是  将控制器频率提高到20MHz。 它会有什么影响吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我认为它与控制器频率无关。

    如果您通过电池向 RTC 供电、则无法访问文档中所述的时间和日期信息。