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.

[参考译文] CC2340R5-Q1:使用外部 32K 晶体来启用 LF 损耗检测

Guru**** 2538930 points
Other Parts Discussed in Thread: CC2340R5-Q1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1554081/cc2340r5-q1-enable-lf-loss-detection-w-external-32k-crystal

器件型号:CC2340R5-Q1


工具/软件:

尊敬的团队:  

我的客户正在使用 CC2340R5-Q1 并正在运行 ESD 测试。

他们在 ESD 失败时发现、即使启用了 30 秒看门狗计时器、CC2340R5-Q1 也不会复位。

(SDK 版本为:8_20_00_119)

通过 TRM 6.7.2、 我们尝试启用 LF 损耗检测  启用 LF 时钟 丢失 复位、下面是代码:

void enableLFClockLossDetection (void) {

    //启用   LF 时钟 监控器

    HWREG (CKMD_BASE + CKMD_O_LFMONCTL) |= 0x1;  // EN 位

    //启用  LF 时钟 丢失 复位

    HWREG (PMCTL_BASE + PMCTL_O_RSTCTL) |= (1 << 2);  // LFLOSS 位

}

我的客户报告他们在使用上述代码时会出错。

请帮助为我们提供调试此问题的建议。

或提供一些注释、以便我们检查在启用  LF    丢失检测和 LF 时钟丢失 复位之前需要处理的程序。

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

    您好:

    他们遇到的错误是什么? 运行此代码时、设备是否未重置?

    此致、

    Nima Behmanesh

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

    嗨、Nima、  

    以下是我的客户的测试结果:

    当前测试结果表明、将代码放置在程序的开头并启用自定义 MCUBoot 签名会导致程序冻结。

    但是、将代码移动到 App_Stack 函数 InitDoneHandler() 的末尾或使用 TI 提供的 root-EC-P256.pem 签名文件可以解决该问题。

    将代码放在 App_Stack 之前。InitDoneHandler()+ root-ec-p256.pem ----- 好的
    将代码放在 App_Stack 后面。InitDoneHandler()+ custom .pem ----- 好的
    将代码放在 App_Stack 之前。InitDoneHandler()+ custom .pem ----- NG

    请帮助提供意见。

    谢谢。

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

    您好:

    如果他们在 App_STackInitDoneHandler 之前运行代码、但将其包含在关键部分中、那么他们仍然会看到它失败吗?

    此致、

    Nima Behmanesh

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

    嗨、Nima、  

    更新测试结果:

    根据您提供的建议、 我的客户将代码放在 App_Stack 之前。InitDoneHandler()+ custom .pem,

    测试结果仍然失败。

    以下是代码:

    //禁用中断
    halIntState_t 状态;
    HAL_enter_critical_section (state);
     ... <-----  enableLFClockLossDetection();
     //允许中断
     HAL_exit_critical_section (state);

     

    此外、 在“将代码放在 App_Stack 后“InitDoneHandler()+ custom .pem ----- 确定“、  

    我的客户在生产线 Last 星期五尝试此解决方案、发现通过率仅为 33%。

    请帮助我为我的客户检查以下问题:

     CC2340 TRM 说:

    "通过设置 PMCTL.RSTCTL[2] LFLOSS 位和 CKMD.LFMONCTL[0] EN 位"来启用 LF 时钟丢失功能时的 μ s

    是否可以  在代码中控制寄存器“ PMCTL.RSTCTL[2] LFLOSS 位和 CKMD.LFMONCTL[0] EN 位“?  

    2. 系统默认是否启用低频时钟丢失功能?

    3.启用/禁用 低频时钟丢失功能的正确时机是什么?

    请帮助提供意见。

    谢谢。

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

    您好:

    [报价 userid=“402811" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1554081/cc2340r5-q1-enable-lf-loss-detection-w-external-32k-crystal/5992680

     CC2340 TRM 说:

    "通过设置 PMCTL.RSTCTL[2] LFLOSS 位和 CKMD.LFMONCTL[0] EN 位"来启用 LF 时钟丢失功能时的 μ s

    是否可以  在代码中控制寄存器“ PMCTL.RSTCTL[2] LFLOSS 位和 CKMD.LFMONCTL[0] EN 位“?  

    [/报价]

    是的、这两种都是 R/W、因此可在代码中控制。

    [quote userid=“402811" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1554081/cc2340r5-q1-enable-lf-loss-detection-w-external-32k-crystal/5992680  系统默认是否会启用 LF 时钟丢失功能?

    根据我在 TRM 中看到的内容、否、系统不会默认启用:

    可以看到它默认设置为 0、因此处于禁用状态。

    [quote userid=“402811" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1554081/cc2340r5-q1-enable-lf-loss-detection-w-external-32k-crystal/5992680 启用/禁用 低频时钟丢失功能的正确时间是多少?

    启用/禁用低频时钟丢失功能的正确时序是在选择低频时钟源后、LF 时钟源正在运行(即已启用)并保持稳定。 这来自寄存器说明的上图。

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    客户想知道为什么他们不启用 LFMONITOR、但 SDK 提供的 API (PowerLPF3_getResetReason) 报告了 LF 时钟丢失作为复位原因?  

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

    您好、

    它们是否调用  PowerLPF3_selectLFOSC? 如果是、此函数将启用 LFMONITOR。 根据我看到的代码、电源驱动器似乎启用了 LFMONITOR、具体取决于是否选择了 LFOSC。

    此致、

    Nima Behmanesh

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

    嗨、Nima

    客户没有呼叫  PowerLPF3_selectLFOSC、我的客户可以检查以澄清为什么 LF 时钟丢失作为复位原因的任何其他建议? 您是否需要查看源代码?

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

    您好、

    一种方法是连接调试器并检查需要设置才能启用的寄存器的值。 如果设置了这些寄存器、则将启用该寄存器。 我认为还有一种方法可以在这些寄存器上设置断点、在修改它们的情况下、可以生成调用栈以跟踪启用此功能的函数。

    此致、

    Nima Behmanesh

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

    嗨、Nima

    我们读取这两个注册表是正确的吗? 我们还需要检查的任何其他注册?

    PMCTL.RSTCTL[2] LFLOSS 位和 CKMD.LFMONCTL[0] EN 位  

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

    您好:

    是的、这两个寄存器是应读取的寄存器。

    此致、

    Nima Behmanesh

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

    嗨、Nima

    读回这两个寄存器后、我们确认  LFMONITOR 已启用。 因此它将   LF 时钟丢失作为复位原因。 我们可以关闭这个 E2E 帖子、感谢您的支持