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.

[参考译文] CC1352P7:BLE 广播周期后提高的功率- GapAdv_enable ()中出现错误?

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1303190/cc1352p7-elevated-power-after-ble-advertisement-period---bug-in-gapadv_enable

器件型号:CC1352P7

您好!

我在一段时间的 BLE 广播停止后、直接观察到功耗升高。 这是带有 CC1352P7的定制电路板上、我们使用的是 SDK 版本 simplelink_cc13x2_26x2_SDK_5_20_00_52。 DMM 用于将 BLE 和 TI 15.4堆栈组合在同一器件上。 请参见下图、这是使用 OTII 电流表完成的。 在图中由于 BLE 通告的 TX 导致最后一个尖峰之后、电流大约为1.7 -1.8 mA、直到下一次15.4堆栈发送时才会降至预期电平。

BLE 广播周期为1分钟、由以下内容初始化:
GapAdv_enable (advHandle、GAP_ADV_ENABLE_OPTIONS _USE_DURATION、LIMITE_advert_duration_MS/10);

我在论坛上阅读过较旧的帖子、其中指出具有 GAP_ADV_ENABLE_OPTIONS _USE_DURATION 参数的同一函数存在错误、 因此、我将代码更改为使用 GAP_ADV_ENABLE_OPTIONS _USE_MAX、并通过调用 GapAdv_disable 在计时器回调1分钟后中止 BLE 广播。随后、BLE 广播周期后的提升电流不再被观察到。 请参见此图:

例如、请参阅、其中说明函数有一个错误、但它不提供有关什么是错误的信息:
https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/771637/ccs-cc2640r2f-simpleperipheral-never-enters-power_shutdown/2871609?tisearch=e2e-sitesearch&keymatch=GapAdv_enable%2525252525252520power#2871609

您能否确认我的观察结果是由于相同的错误吗?

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

    您好!Bjørn

    我目前正在验证此问题是否已修复。 今天我来谈谈这方面的问题。

    此致、

    亚瑟

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

    您好!Bjørn

    由内部 Jira 提供支持、 https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/790797/rtos-cc2640r2f-device-fails-to-recognize-connection-event-and-disconnects-after-gapadv_enable-advhandlelegacy-gap_adv_enable_options_use_duration-9000/2941720#2941720

    错误似乎已修复。

    如果需要、我可以自己确定它。

    此致、

    亚瑟

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

    Arthur、谢谢您。 我有一些跟进问题。

    • 此错误是在哪个 SDK 版本中修复的?
    • 在我观察到的 BLE 广播结束时、您能否确认特定错误可能是导致电流升高的原因?
    • 我建议的权变措施是:使用 gapAdv_enable 和 GAP_ADV_ENABLE_OPTION_USE_MAX 并使用计时器中的 gapAdv_disable 来结束 BLE 广播、这是否会安全地解决/修复此问题? 从我可以看到的结果来看、它确实能够修复它。

    此致、

    Bjørn

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

    Hei Bjørn ć、

    似乎是因为错误导致了这种行为、在 SDK 的3.20版本中应该已经修复了这一问题。

    但以下是我在7.10.2.23版本的 SDK 的 simple_peripheral 示例中观察到的情况:

    我对示例所做的修改如下、从 simple_peripheral.c:1053:

    // Enable legacy advertising for set #1
    status = GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_DURATION, 10000 /10);
    SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);
    
    BLE_LOG_INT_INT(0, BLE_LOG_MODULE_APP, "APP : ---- call GapAdv_create set=%d,%d\n", 1, 0);
    // Create Advertisement set #2 and assign handle
    status = GapAdv_create(&SimplePeripheral_advCallback, &advParams2,
                           &advHandleLongRange);
    SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);
    
    // Load advertising data for set #2 that is statically allocated by the app
    status = GapAdv_loadByHandle(advHandleLongRange, GAP_ADV_DATA_TYPE_ADV,
                                 sizeof(advData2), advData2);
    SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);
    
    // Set event mask for set #2
    status = GapAdv_setEventMask(advHandleLongRange,
                                 GAP_ADV_EVT_MASK_START_AFTER_ENABLE |
                                 GAP_ADV_EVT_MASK_END_AFTER_DISABLE |
                                 GAP_ADV_EVT_MASK_SET_TERMINATED);
    
    BLE_LOG_INT_TIME(0, BLE_LOG_MODULE_APP, "APP : ---- GapAdv_enable", 0);
    // Enable long range advertising for set #2
    //status = GapAdv_enable(advHandleLongRange, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
    //SIMPLEPERIPHERAL_ASSERT(status == SUCCESS);

    因此、我认为您不必再使用该权变措施。

    此致、

    亚瑟

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

    您好!

    这可能与我使用 SDK 版本 simplelink_cc13x2_26x2_SDK_5_20_00_52时看到的错误不同。 由于时间安排和工作量、我目前无法选择升级 SDK 版本、但我们将在后续版本中考虑这一点。

    从测试来看、变通办法似乎可以消除此错误、但我希望了解根本原因、并确信该变通办法可以安全地解决此问题。

    此致、

    Bjørn

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

    您好!Bjørn

    请忘记我之前说过的。 使用 DMM_154SENSOR_REMOTE_DISPLAY 时、我仍然可以观察到最新 SDK 的问题:

    该问题必须与 DMM 相关、而不是由 BLE 堆栈引起。 我会查看一下。

    此致、

    亚瑟