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.

[参考译文] CC3235MODASF:始终连接+ MQTT 功耗优化

Guru**** 2529900 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/951947/cc3235modasf-always-connected-mqtt-power-consumption-optimization

器件型号:CC3235MODASF

您好!

我正在考虑将使用 cc3235的产品之一从"Hibernate with HTTP"切换到"Always Connected with MQTT"。 这就带来了一些有关消费的问题。

1:信标跳跃(LSI)

我在 swra594中看到一句"TI 强烈建议将 LSI 参数设置为小于半秒、以确保在降低电流消耗的同时提供可靠的服务"。

我的理解是、较高的 LSI 值会导致信标时间同步问题、它是否正确? 还有其他问题吗?

默认情况下、我希望将 LSI 设置为最大值(=2sec)、如果错过了太多信标、则降低该值。  

是否有任何方法可以从 cc3235了解是否存在丢失的信标?  或者高 LSI 是否会导致任何其他问题?

2:LPDS 退出/进入

我希望进入 LPDS 一次、然后在每次收到 MQTT 消息时退出。  

但是、如果我使用 enterLPDSHookFxn 挂钩跟踪 LPDS 状态、我可以看到更多 LPDS 进入、并且没有任何可以链接到 MQTT 活动的状态。 其中一些非常接近时间。   

通常、它会在每30秒300ms 内唤醒6次。  

这些唤醒的来源是什么? 如何知道 LPDS 退出的来源?

2020-10-28 13:06:52、464信息 COM10:b'等待下一条消息\r\n
2020-10-28 13:06:52、466 INFO COM10:B'进入 LPDD\r\n
2020年10月28日13:07:21、457信息 COM10:"进入 LPDD\r\n "
2020-10-28 13:07:21、473信息 COM10:B'进入 LPDD\r\n
2020年10月28日13:07:21、698信息 COM10:"进入 LPDD\r\n "
2020年10月28日13:07:21、699信息 COM10:"进入 LPDD\r\n 状态"
2020年10月28日13:07:21、714信息 COM10:"进入 LPDD\r\n 状态"
2020年10月28日13:07:21、714信息 COM10:"进入 LPDD\r\n 状态"
2020-10-28 13:07:51、717 INFO COM10:B'进入 LPDD\r\n
2020年10月28日13:07:51、732信息 COM10:"进入 LPDD\r\n 状态"
2020-10-28 13:07:51、844 INFO COM10:B'进入 LPDD\r\n
2020年10月28日13:07:51、845信息 COM10:"进入 LPDD\r\n "
2020-10-28 13:07:51、860信息 COM10:B'进入 LPDD\r\n
2020-10-28 13:07:51、861 INFO COM10:B'进入 LPDD\r\n
2020-10-28 13:08:21、863 INFO COM10:B'进入 LPDD\r\n

3:SL_WLAN_IOT_LOW_POWER_policy

我想 WFA IoT 低功耗 是指802.11ax 中所谓的"目标等待时间"。 您可以确认吗?  

在 swru455中、写入"如果 AP 不支持 BSS 最大空闲状态、器件将保持正常省电模式"。

我们如何知道 AP 是否支持它? LSI 持续时间是多少?  

它是恢复正常模式还是 LSI 模式?

我已经尝试了4秒的 LSI、它看起来很好、每4秒只唤醒一次、其间消耗~340uA。 但我实际上希望我的 AP 不能处理它。

我希望我的问题足够清楚,不要犹豫,要求澄清;)

C é dric

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

    C é dric、您好!

    1. 是的、LSI 越高、NWP 可能会丢失信标、您的应用程序可能会更频繁地断开连接。 NWP 指南的电源管理部分中提供了有关 LSI 和数据包丢失的更多信息。 我们建议使用500ms 以获得最佳稳定性、如果超出此范围、则应监控意外断开的频率。 我还建议始终使用最新的服务包(它们与旧版主机驱动程序向后兼容)。
    2. 您的应用程序中还有其他什么情况? 您是否有软件计时器或周期性阻塞超时? 电源策略将针对任何计划的 RTOS 事件唤醒 MCU。
    3.  、此设置是 NWP 指南电源管理部分中列出的低功耗特性的组合。 WFA IoT 低功耗设置将默认为正常功耗模式。 CC3235将在连接期间协商允许的最大睡眠间隔。 我必须检查应用是否能够检测到 AP 支持此功能。

    此致、

    Sarah

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

    您好、Sarah、

    感谢您的反馈和 NWP 指南上的指针!

    1:

    我们会定期更新服务包。 我们可以监控断开情况。 但是、是否可以知道功耗是否低于最佳值? 例如、如果信标始终缺失、并导致 NWP 经常唤醒但未断开连接。 (我对此没有太多经验、不确定是否真实)

    2:  

    我们只有 MAIN_TASK 以及 SL_TASK 和 IDLE 任务、没有计时器。

    我尝试使用  switchFxn 挂钩检查唤醒哪个任务、但我没有找到如何重命名 pthread 以查看哪个任务。  我将在下周继续进行调查。

    3:

    感谢您的检查!

    在我看来、应用程序必须能够知道是否使用了此设置。 尤其是当透明回退不是第二低功耗时。  

    此致、

    C é dric

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

    C é dric、您好!

    1. 应用程序正在设置 LSI 长度、但会以错过的流量为代价。 您可以使用 sl_DeviceStat* API 跟踪 NWP 唤醒时间和断开连接,但您的应用程序必须确定如何处理该数据。
    2. 尝试使用 PRCMLPDSWakeupCauseGet ()来确定是从网络活动唤醒还是从 LPDS 计时器(由 RTOS 根据计划的事件设置)唤醒。
    3. 不幸的是、现在似乎没有办法做到这一点。 正常电源模式确实会使用网络学习算法尽可能频繁地休眠、而不会影响性能。 我明白为什么您希望获得灵活性。

    此致、

    Sarah

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

    您好、Sarah、

    感谢你的答复。

    1:我将开始使用 SL_DeviceStat。  

    2:会。

    3:您可以向开发团队申请此功能吗? 我认为我不会是唯一感兴趣的人。

     根据 swra594、正常模式将导致平均电流消耗的2至3倍。

    image

    对它进行检查的方式无关紧要(切换模式时的事件,读回当前使用的模式的方法,知道 AP 是否兼容的方法...)

    此致、

    C é dric

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

    C é dric、您好!

    是的、我将在内部请求此操作。 此类功能需要更改服务请求和主机驱动程序、因此必须考虑在将来的发行版中使用。 同时、如果您想尝试 WFA 物联网策略、您可能能够使用相同的器件统计数据来监控 NWP 唤醒时间、并对何时更改电源策略做出一些假设。

    此致、

    Sarah

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

    您好、Sarah、

    非常好,谢谢!

    是的、我将检查我可以从统计中获得的信息。

    此致、

    C é dric