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.

[参考译文] MSPM0L1228:启用 VBAT 但无法启动

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1494974/mspm0l1228-enable-vbat-but-fail-to-boot-up

器件型号:MSPM0L1228
主题中讨论的其他器件:LP-MSPM0L2228、MSPM0L2228

工具/软件:

尊敬的专家:

当客户使用以下功能启用超级充电时、

DL_SYSCTL_enableSuperCapacitor()

MCU 可以在首次上电时启动并正常运行。 如果将 RESET 引脚设置为低电平、MCU 将无法启动。 已确认 MCU 未处于引导模式。

绿色:VDD

黄色:rst_n

如果它们删除了以下功能、则无论下电上电还是通过设置低 RESET 引脚使 MCU 复位、该器件都可以工作。

DL_SYSCTL_enableSuperCapacitor()

想念什么吗?

BR、

Frank

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

    您好、Frank

    要启用 MSPM0的超级电容器功能、还应该将一个外部大容量电阻器和一个连接到 VBAT 引脚的电阻器。 您能否请再次向客户确认他们使用的硬件、尤其是 VBAT 连接。  

    另一个问题是:"确认 MCU 未处于引导模式"是什么意思? MCU 是否可以在 BSL 模式下失速并进入低功耗模式? 当由 NRST 或 POR 复位时、您是否可以监控 PA18的电压?

    此致、

    Pengfei

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

    Pengfei,

    是的、他们在船上放置了2F 超级电容器。

    如果他们将 R193更改为0 Ohmn、问题就会消失。

    有什么想法吗?

    BR、

    Frank

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

    Pengfei,

    我可以在 EVM 上重现问题。

    我使用 TI LP-MSPM0L2228版本 A 并将 VBAT_IN 跳线从 XDS 移至超级电容器。

    我只在下面的示例"uart_rw_multibyte_fifo_poll_plp_MSPM0L2228_nortos_ticlang"中添加了代码。

    内部 main (void)

    DL_SYSCTL_enableSuperCapacitor();

    SYSCFG_DL_init ();

    首次通电正常。

    按下"RESET"(复位)按钮后、无法通电、也不会发出 UART 消息。

    有什么想法我错过了? 是否应该在启用 VBAT 充电后添加一些代码。

    BR、

    Frank

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

    您好 Frank、

    感谢您的测试和添加信息。、它很有帮助。 我也测试并重现这个问题。

    调试后,我发现程序在 Default_Handler ()中因 NMI 异常而停止。 NMI 异常源是 VBATUP、在 VBAT 上电时生成。 当我们应用  DL_SYSCTL_enableSuperCapacitor()时,API, VDD 开始为 VBAT 充电,并且 VBAT 通电,然后在默认处理程序中触发 NMI 中断和停止。

    因此可以解释为什么如果我们将 VBAT 直接连接到 VCC 或者我们不 在程序中使用 DL_SYSCTL_enableSuperCapacitor();API、MCU 会正常工作。

    解决该问题的权变措施可能是在 NMI 中断处理程序中写入 VBATUP 事件处理程序(如下所示)、以确保程序不会在默认处理程序中停止。 (如果未定义 NMI_Handler()、程序将执行 Default_Handler 以处理 NIM 异常。)

    void NMI_Handler(){
       DL_SYSCTL_NMI_IIDX gNMIIntr = DL_SYSCTL_getPendingNonMaskableInterrupt();
       switch (gNMIIntr){
            case DL_SYSCTL_NMI_IIDX_VBAT_ON:{
                gBATPowerStatus = 1;
                break;
            }
            case DL_SYSCTL_NMI_IIDX_VBAT_OFF:{
                gBATPowerStatus = 0;
                break;
            }
            default:{
                break;
            }
       }
    }

    此致、

    Pengfei

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

    Pengfei,

    我  在代码中添加 NMI_Handler()。

    我在下面进行测试。

    时间标记0:按住 RESET 按钮、直到 VBAT 降至<1V。

    时间标记1:释放复位按钮、但 MCU 无法恢复

    时间标记2: 对 EVM 和 MCU 下电上电正常工作。

    时间标记3: 按下复位按钮并快速释放。 MCU 正常工作。

    uarttx:如果 MCU 正常工作、MCU 会发送 UART 消息。

    频闪灯:信号高表示代码进入 NMI_Handler()

    VBAT_IN:VBAT_IN 电压

    行为是否正确?

    如果 VBAT 为低电平、VDD 为3.3V、然后按下"RESET"(复位)、MCU 将不工作。 是这样吗?

    BR、

    Frank

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

    您好 Frank、

    您使用的是哪个版本的 MSPM0L2228 LaunchPad? 修订版 A 或修订版 E?

    我进行了类似的测试(长时间按住 NRST 按钮以使 VBAT 处于低电压电平、然后释放)、发现在修订版 A LaunchPad 中启动 MCU 没有问题。

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

    Pengfei,

    我使用最新的 EVM。 修订版 A.

    固件更改: DL_SYSCTL_enableSuperCapacitor()

    EVM 跳线更改:如下所示。

    BR、

    Frank

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

    您好 Frank、

    我认为我们有相同的 EVM 版本和相同的硬件连接、但正如我之前所说、我这边似乎一切都正常。

    • 对客户应用当前情况的影响/顾虑是什么? (添加 NMI 处理程序后)
    • 能否分享您的代码以便进行一些交叉测试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pengfei,

    对于以下情况、这意味着客户 可以将 RESET 引脚设置为低电平、但需要确保 VBAT 电压足够高。

    客户在当前情况下的应用会产生什么影响/顾虑? (添加 NMI 处理程序后)

    对于以下内容、您可以检查附件。

    e2e.ti.com/.../uart_5F00_rw_5F00_multibyte_5F00_fifo_5F00_poll.ce2e.ti.com/.../uart_5F00_rw_5F00_multibyte_5F00_fifo_5F00_poll.syscfg

    您可以共享您的代码、以便我进行一些交叉测试。

    BR、

    Frank

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

    您好 Frank、

    我使用的 syscfg 和源代码进行了测试。 并且、即使我按 NRST 超过20秒、或者在 NRST 为低电平时将 VBAT 连接到 GND、然后释放 NRST、程序也始终能够成功启动。

    只有一件事需要注意,你使用的例子将等待 UART 数据接收,并在  DL_UART_receiveDataBlocking ()中阻止。 因此 GPIO PA0可能不会切换。 注释这个部分、我每次都可以启动 MCU。  

    顺便说一下、如果 PA18设置为高电平以使 MCU 处于 BSL 状态、您可以在 MCU 启动时再次检查 PA18波。

    此致、

    Pengfei

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

    Pengfei,

    是否移除 J18上的跳线?

    BR、

    Frank

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

    您好 Frank、

    编号 我将 VBAT 引脚与 VBAT_SC 引脚相连以实现超级容量连接。

    此致、

    Pengfei