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**** 2589245 points
Other Parts Discussed in Thread: MSP430F5659, TPS3809

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/623354/compiler-msp430f5659-rtc-battery-backup

器件型号:MSP430F5659
主题中讨论的其他器件:MSP430WARETPS3809

工具/软件:TI C/C++编译器

您好、支持人员、

我在 IAR 上运行 MSP430Ware_3_80_01_01\driverlib\examples\MSP430F5xx_6xx\电池 备份\IAR\电池 bak_ex1_calendermodeLPM3项目来测试电池备份功能。

问题1: 如何测试 RTC 是反向阻抗的。

问题2:我运行代码27分钟28分钟、 我重新启动代码、它仍然运行27分钟28分钟。  备份不起作用。、

我检查电池是否连接 到 MSP430F5659引脚87、它是3.267V  

能不能帮我指出我犯了什么错?

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

    您好、Louis、

    有关具有电池备用电源的 RTC_B 模块的更详细说明、请参阅应用报告 SLAA665: http://www.ti.com/lit/an/slaa665b/slaa665b.pdf 

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    现在它正在工作、但我不知道如何重新初始化 RTC。 该时间以分钟为单位。 这在我的板上发生。 例如、RTC 时间为9:10:24、PC 读取时间为9:10:30。 关闭器件电源约3分钟、再次为电路板加电、读取 RTC 时间为9:12:50 PC 读取时间为9:13:55;有1分钟的差异。 您以前看到过这种情况吗? 如何解决?
    备用电池为3.04v
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Louis、

    如果未使用备用电池并且您确定 LFXT 正在正常振荡、则不会重复此行为? 您是否完成了更长的测试(超过3到5分钟)、以验证在电池备份模式下 RTC 滞后的距离? 您是否已按照 SLAA665的第2节所述、使用备用 RAM 存储器 RTCOFIFG 和 RTCCTL2/3确定了复位时的 RTC 可靠性?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    设备在周末停止。 停止运行时、日期:时间为2017年9月8日:16:19:32今天、重新为器件供电之前、测量32K XT1、它看起来不错。 在对器件进行功率读取之后、将于2017年9月8日19:23:54。 实际值应为2017年9月11日10:23:24。

    我们有用于内部变量的 FRAM、只需要 RTC。 有其他方法可以观察 RTC 的可靠性吗? 如果 JTAG 插件电路板通电。 如果您需要更多信息、如果需要附加文件、请告诉我如何发送给您。
    谢谢!
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Louis、

    这些结果是否来自运行提供的 SLAA665代码? 您使用的是 TI EVM 还是定制 PCB? VBAK 上的电容是否为4.7nF? 由于 JTAG 将不会连接、因此在从备用电池运行后、您如何读取 RTC 值? 您是否正在从正在运行的目标进行调试?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    我使用了服装 PCB、VBAK 有4、7nF。 我们有 GUI、读取 RTC 时间、在关闭之前、读取 RTC 值、在上电之后、GUI 再次读取 RTC。 它在我们的板上停止。 我将再次将我的代码与 SLAA665代码进行比较。 以了解有何差异。

    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    下面是我电路板上使用的 SLAA665代码。
    您能告诉我在断电时需要更改哪些位置来增加 RTC 时间吗?

    该函数为 resetRtcTime(),重新为我们的 GUI 显示0000/00/00:00:00:00加电

    /******** 代码开始代码******** /
    void resetRtcTime (void)(空)

    #if 1.
    //从 slaa665复制
    //在清除 LOCKBAK 之前、我们必须重新初始化一些晶振和 RTC 设置、这样当我们从 VBAT 中退出时、晶振/RTC 就不会停止
    //init 晶振
    UCSCTL6 = XT1DRIVE_3 | XCAP_3;//将晶体负载电容设置为12pF
    //init RTC
    RTCCTL01 |= RTCBCD;//在 BCD 模式下使用 RTC
    RTCCTL01 &=~RTCHOLD;//清除 LOCKBAK 时保持 RTC 运行

    //擦除 LOCKBAK 位以使晶振+ RTC 设置生效
    //必须擦除 LOCKBACK,否则无法检查 RTC 标志等
    while (BAKCTL 和 LOCKBAK)

    BAKCTL &=~(LOCKBAK);


    //通过检查 BAKMEM0、RTCOFIFG、和 RTCCALS 来检查备用电源是否已耗尽
    //BAKMEM0我们正在检查备份存储器保留
    //RTCOFIFG、我们将在备用电源上检查是否发生振荡器故障
    //RTCCALS 将通过切换事件保留、但在欠压时清除、因此也指示 RTC 日历寄存器是否保留
    //注:RTCCTL2设置和检查应该使用特定器件/应用所需的校准值。 在本例中、RTCCALS 用作示例。
    if ((BAKMEM0 == 0xDEAD)&&!(RTCCTL01 & RTCOFIFG)&&(RTCCTL2 & RTCCALS)//备份未丢失

    __no_operation();//我们保留了 RTC 数据

    否则//首次启动或我们丢失了备份 RAM

    u8initRtc = 1;
    __no_operation();

    //清除故障
    clearOscFault ();

    //重新初始化 RTC 时间
    ResetTime();

    RTCCTL2 |= RTCCALS;//this 位被保留、所以可被用来检查 VBAT 切换
    BAKMEM0 = 0xDEAD;//写入签名


    if (u8initRtc)

    ResetTime();


    //启用 RTC 就绪状态中断,当 RTC 时该中断有效
    //Calendar 寄存器已准备好读取。
    RTC_B_clearInterrupt (RTC_B_base、RTC_B_CLOCK _READ_READY_INTERRUPT | RTC_B_LOCKER_FAULT_INTERRUPT);//启用中断前清除标志
    RTC_B_enableInterrupt (RTC_B_BASE、RTC_B_CLOCK_READ_READY_INTERRUPT | RTC_B_LOCKER_FAULT_INTERRUPT);//启用就绪中断和故障中断
    RTC_B_startClock (RTC_B_BASE);//开始时钟

    其他


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




    //初始化 RTC 的日历模式
    /*
    * RTC_B 的基地址
    *在当前时间内通过、在上面进行了初始化
    *使用 BCD 作为日历寄存器格式
    *
    RTC_B_initCalendar (
    RTC_B_BASE、
    当前时间(&CurrentTime,
    RTC_B_FORMAT_BCD);

    //Setup Calendar Alarm for 5:00pm on the 5th day of the week。
    //注意:不指定一周的日期。
    RTC_B_CONFIGureCalendarAlarmParam ={0};
    param.minutesAlarm = 0x00;
    param.hoursAlarm = 0x17;
    param.dayOfWeekAlarm = RTC_B_ALARMCONDITION_OFF;
    param.dayOfMonthAlarm = 0x05;
    RTC_B_CONFIGureCalendarAlarm (RTC_B_BASE、&param);

    //指定一个中断以每分钟生效
    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);

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    RTC_B_HOLDClock (RTC_B_BASE);
    //初始化 RTC 的日历模式
    /*
    * RTC_A_A 的基地址
    *在当前时间内通过、在上面进行了初始化
    *使用 BCD 作为日历寄存器格式
    *
    RTC_B_initCalendar (
    RTC_B_BASE、
    当前时间(&CurrentTime,
    RTC_B_FORMAT_BCD);

    //Setup Calendar Alarm for 5:00pm on the 5th day of the week。
    //注意:不指定一周的日期。
    RTC_B_CONFIGureCalendarAlarmParam ={0};
    param.minutesAlarm = 0x00;
    param.hoursAlarm = 0x17;
    param.dayOfWeekAlarm = RTC_B_ALARMCONDITION_OFF;
    param.dayOfMonthAlarm = 0x05;
    RTC_B_CONFIGureCalendarAlarm (RTC_B_BASE、&param);

    //指定一个中断以每分钟生效
    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);
    #endif


    /******** 代码结束代码******** /
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然希望您按原样运行 SLAA665示例、以验证您的硬件设置以及 RTC、XT1和备用电池的正确运行。 您是否尝试将 VCORE 设置为3? 无论首次启动还是备份 RAM 丢失、u8initRtc 是否每次都设置为1? 请确保此变量已正确初始化、并在保留的 RTC 数据检查中将其重置、以验证操作是否正确。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    我认为我所做的固件有问题、如果我仅在电路板上使用 SLAA665、它可以正常工作。
    我将更详细地了解什么会影响 RTC 性能。
    谢谢!
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    我的代码得到以下寄存器值、该寄存器值可能会使 RTC 备份错误。 您能给我指出一下。 应该设置什么值、请告诉我。
    对固件的要求是:
    1.使 RTC 电池备份工作。
    并支持 USB 端口
    并尽可能降低功耗。

    UCSCRL10 = 0x1240
    UCSCRL11 = 0x0050
    UCSCRL12 = 0x10F3
    UCSCRL13 = 0x0020
    UCSCRL14 = 0x0244
    UCSCRL15 = 0x0000
    UCSCRL16 = 0x00CC
    UCSCRL1 7= 0x0400
    UCSCRL18 = 0x0707

    RTCCTL01 = 0xB094
    RTCCTL012= 0x0080

    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    我的错误是、寄存器名称应该是 UCSCTL0到 UCSCTL8、错误是使用 UCSCRL10到 UCSCRL18
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    路易

    您已经声明 SLAA665代码示例在您的系统上正常工作、因此请继续将您的功能添加到此代码中、并删除不需要的器件、以查找问题。 您可以很好地比较 SLAA665和您的应用之间的寄存器差异。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    我的代码大小为128K、包含30个文件。 这很难移动、唯一的方法是将中的 SLAA665更改为我的代码。
    但是、当我将 SLAA665寄存器设置添加到代码中时、通信和 LCD 工作不正确、
    但 RTC 中断、但时间不对、PC 时间过了19分钟、我的主板只过了17秒
    什么问题了?

    启动代码如下所示:

    main (空)

    //启动 hal_mail()
    //引用旧的 XT1代码 fbStartXT1 ()
    // USB API 所需的最小 Vcore 设置为 PMM_CORE_LEVEL_2。
    PMM_setVCore (PMM_CORE_LEVEL_3);

    fbPortInit(); //初始化 MSP430F5659端口
    fbFuncPortInit(); //初始化功能端口、I2C、无线电、RS485、RS232、 RTD

    USBHAL_initClocks (8000000);//配置时钟。 MCLK=SMCLK=FLL=8MHz;ACLK=REFO =32kHz

    initTimer_a(); //快速计时器
    initTimer_B (); //较慢的计时器
    initTimer_a1();

    USB_setup (true、true); //初始化 USB 和事件;如果存在主机,则连接
    //结束 hal_main() //设置/启动 USB、SMCLK、MCLK、ACLK、计时器 A0、 B0、A1
    #if 1.
    UCSCTL0 = 0x12B0;
    UCSCTL1 = 0x0020;
    UCSCTL2 = 0x101F;
    UCSCTL3 = 0x0000;
    UCSCTL4 = 0x0044;
    UCSCTL5 = 0x0000;
    UCSCTL6 = 0x00CC;
    UCSCTL7 = 0x0409;
    UCSCTL8 = 0x0707;
    #endif
    initLcdRowNum();
    initChargeOn(); //打开充电并将充电电流设置为零
    initMspAdc(); //初始化 A/D 转换始终打开,用于 MSP temp 和 VCC
    ReadADCCAL(); //读取 MSP 温度校准值
    memInit(); //初始化 senosr 1和2系数结构
    masterResetSys(); //初始化5659 MSP 信息数据或工厂默认数据
    ***********
    while (1)

    *******

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在提供的寄存器设置中没有发现任何特别错误的地方。 您可以尝试将 UCSCTLx 和 RTCCTLx 值直接输入 SLAA665、以观察其产生的影响。 如前所述、我仍然怀疑您的 u8initRtc 变量、因为无论首次启动、备份 RAM 丢失或其他情况如何、时间都可能被重置。 它在何处初始化? 我将确保在 if ((BAKMEM0 == 0xDEAD)&&!(RTCCTL01 & RTCOFIFG)&&(RTCCTL2 & RTCCALS)语句内将其复位为零。 您甚至不应要求 if (u8initRtc){ResetTime();}行。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    函数如下所示、设置 u8initRtc 在开始时。

    静态 tU8 u8initRtc;
    void setInitRtc (tU8 u8InitFlag)

    u8initRtc = u8InitFlag;


    void resetRtcTime (void)(空)

    //从 slaa665复制
    //在清除 LOCKBAK 之前、我们必须重新初始化一些晶振和 RTC 设置、这样当我们从 VBAT 中退出时、晶振/RTC 就不会停止
    //init 晶振
    UCSCTL6 = XT1DRIVE_3 | XCAP_3;//将晶体负载电容设置为12pF
    //init RTC
    RTCCTL01 |= RTCBCD;//在 BCD 模式下使用 RTC
    RTCCTL01 &=~RTCHOLD;//清除 LOCKBAK 时保持 RTC 运行

    //擦除 LOCKBAK 位以使晶振+ RTC 设置生效
    //必须擦除 LOCKBACK,否则无法检查 RTC 标志等
    while (BAKCTL 和 LOCKBAK)

    BAKCTL &=~(LOCKBAK);


    //通过检查 BAKMEM0、RTCOFIFG、和 RTCCALS 来检查备用电源是否已耗尽
    //BAKMEM0我们正在检查备份存储器保留
    //RTCOFIFG、我们将在备用电源上检查是否发生振荡器故障
    //RTCCALS 将通过切换事件保留、但在欠压时清除、因此也指示 RTC 日历寄存器是否保留
    //注:RTCCTL2设置和检查应该使用特定器件/应用所需的校准值。 在本例中、RTCCALS 用作示例。
    if (((BAKMEM0 == 0xDEAD)&&!(RTCCTL01 & RTCOFIFG)&&(RTCCTL2 & RTCCALS)||(u8initRtc == off))//备份未丢失

    //ResetTime();
    __no_operation();//我们保留了 RTC 数据

    否则//首次启动或我们丢失了备份 RAM

    // u8initRtc = 1;
    __no_operation();

    //清除故障
    clearOscFault ();

    //重新初始化 RTC 时间
    ResetTime();

    RTCCTL2 |= RTCCALS;//this 位被保留、所以可被用来检查 VBAT 切换
    BAKMEM0 = 0xDEAD;//写入签名


    P8OUT &=~BIT0;
    P8DIR |= BIT0;//RTC LED

    //启用 RTC 就绪状态中断,当 RTC 时该中断有效
    //Calendar 寄存器已准备好读取。
    RTC_B_clearInterrupt (RTC_B_base、RTC_B_CLOCK _READ_READY_INTERRUPT | RTC_B_LOCKER_FAULT_INTERRUPT);//启用中断前清除标志
    RTC_B_enableInterrupt (RTC_B_BASE、RTC_B_CLOCK_READ_READY_INTERRUPT | RTC_B_LOCKER_FAULT_INTERRUPT);//启用就绪中断和故障中断
    RTC_B_startClock (RTC_B_BASE);//开始时钟



    这将调用上述 AT 函数。 ON = 1、OFF = 0、
    infoA.u8UseDefData =否-> 0

    void setupRTC (void)

    //从内核调用,初始集归档可配置文件
    if (infoA.u8UseDefData =否)


    //设置日历的当前时间

    CurrentTime.seconds = 0x05;
    CurrentTime.Minutes = 0x34;
    CurrentTime.Hours = 0x14;
    CurrentTime.DayOfWeek = 0x03;
    CurrentTime.dayofmonth = 0x05;
    CurrentTime.Month = 0x07;
    CurrentTime.Year = 0x2017;

    setInitRtc (on);
    resetRtcTime();

    chartRecenv.u32MspNowSeconds = calRtcSeconds (CurrentTime);

    CurrentTime.dayofmony++;//一天之后将设置记录,或者使用 GUI 将其停止

    //开始在 RAM 保持间隔内、所以它全部为零
    //将默认间隔设置为15分钟,当调试处于关闭状态时,移动到 MM
    ramPara.savedIntervalTime.hours = recordIntervalTime.hours = 0;
    ramPara.savedIntervalTime.minutes = recordIntervalTime.minutes = 15;

    calcTotalRecordsInInterval();

    wtSaveParameter();//u8OtherTaskScheduler |= RAM_saved_data_access;


    其他

    setInitRtc (off);
    resetRtcTime();

    rdSaveParameter();

    sysRamData.f32LowCutOff [0]= ramPara.f32LowCutOff [0];
    sysRamData.f32LowCutOff [1]= ramPara.f32LowCutOff [1];
    sysRamData.f32LowCutOff [2]= ramPara.f32LowCutOff [2];

    recordIntervalTime.hours = ramPara.savedIntervalTime.hours;
    recordIntervalTime.minutes = ramPara.savedIntervalTime.minutes;

    setRecintvalChanged();
    calcTotalRecordsInInterval();

    __no_operation();



    时间关闭几分钟。 如果您发现问题、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看不到任何不寻常的东西(提示:在丰富的格式选项下使用 Syntax荧 光笔使发布的代码更清晰)。 请确定 RTC 在备份存储器操作期间或每次复位期间是否停止、以及 RTC 是否会发现哪些标志((BAKMEM0 = 0xDEAD)&&!(RTCCTL01 & RTCOFIFG)&&(RTCCTL2 & RTCCALS)导致复位。 此外、您的代码和 SLAA665之间是否存在 DriverLib 版本差异? 如果是、请列出它们。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    如果我们有用于 MSP 复位的复位芯片、使用的芯片是 TPS3809、这是否会影响 RTC 备份的运行?
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    路易

    RTCCALS 是指示 RTC 时间是否应被复位的标志之一、它通过一个切换事件被保持、但在一个 BOR 上被清零、当被配置为复位模式时、该 BOR 确实会在 RST/NMI 引脚上出现一个低电平信号。 这可能是问题所在、在加载到您的系统中时、IC 是否会干扰 SLAA665的运行?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    SLAA665再次断电和上电时、会显示"fetal Error failed to reinitialize (胎儿错误无法重新初始化)"
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是在遵循用户指南的第4节(运行演示)之后? 您可以随时移除相关 IC 并观察系统行为。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    很难移除 IC、但如果我移除备用电池、JTAG 调试启动会再次工作。
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ryan、
    取出复位 IC 后、备份 RTC 正常工作。 您能不能提供帮助、还有什么芯片可以让备份 RTC 正常工作。
    硬件板布局已经完成、如果您能建议其他芯片适合布局、这将是一个很好的解决方案。
    路易
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    路易取得了很大的进步。 在备用电池运行期间、不应使用将 RST 拉至低电平的外部电路、因为这将复位 RTC 和 BAKMEM 寄存器。 需要将电压监控器连接到主电源和备用电池、以便 RST 线路在两者之间切换时不受影响。 您的布局需要进行调整以适应此解决方案、否则 TPS3809必须保持未组装。

    此致、
    Ryan