工具与软件:
UUT TI 设置:
BLE 堆栈 F3 7.40.00.64
FreeRTOS
我们通过电池运行 CC2340R5。
当 CPU 处于活动状态时、电压降为100mV-250mV。
1) 1)当 CC2340R5处于待机模式时是否可以读取电池电压(但在活动模式下不读取值)?
2)在 CPU 活动模式期间。 我们可以使用什么 API/寄存器来从48Mhz ext'时钟切换到32kHz 时钟?
谢谢!
Oren
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.
工具与软件:
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