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:在 CPU 未激活模式期间测量 VBAT

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1449576/cc2340r5-measure-vbat-during-cpu-non-active-mode

器件型号:CC2340R5

工具与软件:

UUT TI 设置:
BLE 堆栈 F3 7.40.00.64
FreeRTOS

我们通过电池运行 CC2340R5。
当 CPU 处于活动状态时、电压降为100mV-250mV。

1) 1)当 CC2340R5处于待机模式时是否可以读取电池电压(但在活动模式下不读取值)?
2)在 CPU 活动模式期间。 我们可以使用什么 API/寄存器来从48Mhz ext'时钟切换到32kHz 时钟?

谢谢!
Oren

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

    您好、Oren、

    您想在这里解决什么问题? 电池监测器可能可根据您的需求进行足够的配置、但不建议更改时钟相关性。

    Unknown 说:
    1)当 CC2340R5处于待机模式时是否可以读取电池电量(但在激活模式下不能读取数值)?

    提供电池监控器驱动程序源代码(请参阅) /source/ti/drivers/batterymonitor。

    可以通过 BatMonSupportLPF3_init 启用测量、特别是通过寄存器写入 HWREG (PMUD_BASE + PMUD_O_CTL)=来启用测量 PMUD_CTL_CALC_EN | PMUD_CTL_MEAS_EN | PMUD_CTL_HYST_EN_DIS;

    不存在"*_deinit"函数、因此您必须在活动模式下手动写入寄存器才能禁用测量。 但我不推荐使用该函数(因为没有测试过"_deinit"函数)。

    在 ACTIVE 模式下禁用测量的目的是什么?

    也许可以有一个使用现有功能的替代解决方案。

    例如、如果担心从待机状态转换到运行状态时压降误报、则相应调整阈值(BatteryMonitor_registerNotifyRange)。

    [报价 userid="601292" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1449576/cc2340r5-measure-vbat-during-cpu-non-active-mode "]2)在 CPU 激活模式下。 我们可以使用什么 API/寄存器来从48Mhz ext'时钟切换到32kHz 时钟?[/QUOT]

    在工作模式下 、我建议始终使用处于工作状态的48MHz。 在待机模式下、只有32kHz 的频率处于活动状态。

    大多数(可能是全部)模块/驱动器取决于此条件、如果没有此条件、可能会出现意外行为。

    谢谢!
    Toby

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

    尊敬的 Toby:

    尝试解决的问题:
    TI 功率负载导致压降-> VBAT 读数下降。

    一种解决方案是在 TI 未处于活动模式时读取 VBAT。 电池监测器会执行此操作、但如果我理解正确、我们就无法判断是在我们处于待机模式时触发了电池监测器低电平、还是在 TI 唤醒且 VBAT 关闭后发生了低电平。

    第二种解决方案、尝试减少 TI 时钟以便负载较低、从而在 TI 处于工作模式时提供较少或非压降。
    我们在 TI 上电期间执行该操作、然后进行 VBAT 测量、最后配置为48MHz 时钟并初始化所有其他功能。
    这样做不应影响时间关键型操作(例如 BLE)。

    谢谢!

    Oren
      

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

    您好、Oren、

    我们无法判断是在我们处于待机模式时触发了电池监控器低电平、还是在 TI 唤醒和 VBAT 关闭后发生了低电平。

    是的、这是正确的、但您可以设置不同的阈值(一个在进入待机模式之前、一个在退出待机模式后)、每个阈值都有其自己的回调(一次只有一个处于活动状态)。 然后、根据进入的回调以及测量当前 VBAT、您将知道 BATT_BYPASS_LL (低于低电平)是在待机还是激活期间触发的。

    有关如何运行由待机进入/退出触发的代码的示例、请参阅: https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_8_20_00_119/docs/ble5stack/ble_user_guide/html/cc23xx/watchdog-timer-cc23xx.html#watchdog-example-code

    第二种解决方案:尝试降低 TI 时钟以降低负载、从而在 TI 处于工作模式时降低或不降低压降。
    我们在 TI 上电期间执行该操作、然后进行 VBAT 测量、最后配置为48MHz 时钟并初始化所有其他功能。
    这样做不会影响时间关键型操作(例如 BLE)。

    通常、每次上电时会多次从待机状态唤醒... 例如、即使 BLE 连接处于活动状态、器件也很可能在某个时刻进入待机状态。 那么、从待机模式唤醒(以及相关的电池压降)将会发生多次、即使在 BLE 连接事件等时间关键型操作期间也是如此。

    处于活动状态时运行的系统时钟是在非常低的级别上处理的(甚至可能在硬件中)、因此在活动模式下实际上可能无法禁用。

    谢谢!
    Toby