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.

[参考译文] MSP430FR6989:如何在断电时持续运行实时时钟

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/794719/msp430fr6989-how-to-run-real-time-clock-continuously-even-in-power-off

器件型号:MSP430FR6989

如何在断电时进入 LPM3模式

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这意味着不是 BIS 指令
    进入 LPM 模式的条件是什么
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hanumantha、

    您在问题中提到的"断电"意味着 FR6989的 DVCC 没有电源?

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

    当 DVCC 上没有电源时、FR6989无法正常工作、包括进入低电平模式。

    如果 DVCC 符合规格、FR6989可在以下条件下进入 LPM3模式:
    1) 1) CPU 和 MCLK 被禁用;
    2) 2) ACLK 激活、SMCLK 被禁用。
    这意味着有外设使用 ACLK 作为时钟源。 但没有外设请求 SMCLK 时钟源。
    如果有任何外设请求 SMCLK 作为时钟源、则无法输入 LPM3。

    希望我的答案能为您提供帮助。

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

    #include "driverlib.h"
    #include

    日历当前时间;

    字符时间[10]、日期[12];
    字符 SEC_OK;
    uint16_t PWROFF、mnth、YER;

    int main (空)

    WDT_A_HOLD (WDT_A_base);
    PMM_unlockLPM5 ();
    init_ports();
    init_clocks();
    lcd_init();
    init_adc();

    IF (SYSRSTIV = SYSRSTIV_LPM5WU)

    RTC_C_clearInterrupt (RTC_C_base、RTC_C_CLOCK_READ_READY_INTERRUPT|RTC_C_Oscillator_FAULT_INTERRUPT);
    RTC_C_enableInterrupt (RTC_C_base、RTC_C_CLOCK_READ_READY_READY_INTERRUPT|RTC_C_osc_osc_oscillator_FAULT_INTERRUPT);
    RTC_C_startClock (RTC_C_base);


    SET_TIME_AND_ALRM ();

    _bis_SR_register (GIE);


    Sec_OK = 0;
    PWROFF = 0;
    while (1)

    if (PWROFF = 0)

    if (SEC_OK = 1)

    //ADC 测量输入
    CurrentTime = RTC_C_getCalendarTime (RTC_C_BASE);


    其他

    _bis_SR_register (LPM3_bits | GIE);



    #pragma vector=RTC_vector
    _interrupt void RTC_ISR (void)

    switch (__event_in_range (RTCIV、16))

    案例 RTCIV_NONE:中断;//无中断
    案例 RTCIV_RTCOFIFG:中断;//RTCOFIFG
    案例 RTCIV_RTCRDYIFG://RTCRDYIFG
    Sec_OK = 1;
    中断;
    案例 RTCIV_RTCTEVIFG://RTCEVIFG
    //每分钟中断一次
    __no_operation();
    中断;
    案例 RTCIV_RTCAIFG://RTCAIFG
    __no_operation();
    中断;
    案例 RTCIV_RT0PSIFG:
    _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);
    中断;//RT0PSIFG
    案例 RTCIV_RT1PSIFG:
    _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);
    中断;//RT1PSIFG

    默认值:break;

    #pragma vector=Port1_vector
    _interrupt void RTC_intial (void)


    if (GPIO_getInterruptStatus (GPIO_PORT_P1、GPIO_PIN1))

    GPIO_clearInterrupt (GPIO_PORT_P1、GPIO_PIN2);

    PWROFF = 1;


    if (GPIO_getInterruptStatus (GPIO_PORT_P1、GPIO_PIN1))

    GPIO_clearInterrupt (GPIO_PORT_P1、GPIO_PIN2);
    _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);  

    从上面开始、我提供了一个带有二极管的备用电池、连接到 DVCC

    以及在上电时触发 P1.1和在断电时触发 P1.2的电路

    我的问题是、当我按下复位按钮时、RTC 寄存器变为复位 、即 RTC 不会继续从之前的模式运行  

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

    按下重置按钮将重置 MCU、RTC 寄存器将重置。 这是正常行为。 我想知道为什么您要求 RTC 在按下重置按钮后继续运行。
    您能描述一下电路所需的功能吗? 外部电路可以触发 P1.1和 P1.2的中断、并将 DVCC 电源从主电源切换到备用电池? 我需要了解您的设计并提供意见。

    此致、
    Lixin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的应用是
    RTC 应持续运行

    我的 MSP430具有 DVCC 引脚、它由两个电源供电、一个是电池、另一个是降压电源
    这两个都是通过二极管提供的
    2.当没有降压电源时、应复位 MSP、但 RTC 应持续运行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这里的混淆就是"MSP 应该被复位"的意思。 RTC 作为"MSP"的一部分、在正常复位条件下与其余"MSP"一起复位。

    我认为您需要实施某种"热启动"、以感应电源何时从备用电池切换到降压电源并相应地设置状态。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您会说、一旦软件在程序转储后被集成
    不应发生复位
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不可以、您可以重置所有所需内容。 我说无法将 RTC 复位与其余 MCU 复位分开。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果在环路处于 ADC 采样中时关闭降压电源、则它们是电池放电
    我们如何解决这个问题
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您检测到降压已关闭时、进入低功耗模式。 使用 GPIO 和中断来检测降压何时返回并退出低功耗模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Hanumantha、

    我同意 Keith 的解决方案。
    当检测到降压电源关闭时进入低功耗模式。 并禁用外部高功率电路。 您可以使用 GPIO、FR6989内置 COMP_E 或 ADC 窗口比较器函数来实现此目的。 使用同样的方法、也可以检测到降压电源返回。
    在低功耗模式下、系统功耗较低、因此电池功耗较低。 那么电池可以长时间工作。
    在低功耗模式下、由于 DVCC 电源始终开启、FR6989 RTC 仍然可以在没有任何复位的情况下工作。

    我发现您单击"Resolved"按钮。 你还有其他问题吗?

    此致、
    Lixin