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.

[参考译文] CC3235SF:如何将 LPDS 添加到 MQTT 客户端演示应用?

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/977430/cc3235sf-how-to-add-lpds-to-mqtt-client-demo-app

器件型号:CC3235SF
主题中讨论的其他器件:SysConfigTIDC-01005

您好!

我对 MQTT 客户端演示应用有3个问题。

1. 我想在 MQTT 客户端应用中添加省电功能。

我添加了一些代码来配置主线程中的 LPDS 或 LSI 模式,并添加了 POWER_enableolicy()来启用它。 但电流仍在30mA 左右。

是否有添加此内容的想法? 想要在正确的功能中添加睡眠?

MQTT 服务器为"#define MQTT_CONNECT_ADDRESS        "mqtt.eclipse.org""、

有时它似乎不起作用? 你有推荐吗?

3. MQTT_CLIENT_APP 上阻止了我、行:654在 mainThread 中。:

https://dev.ti.com/tirex/explore/node?node=AEAkFJWv37SxZrUC5sxJZw__fc2e6sr__LATEST

   //等待 CONNACK
   while (connected = 0);//<- Block here、connected 始终为0
   GPIO_enableInt (CONFIG_GPIO_button_0);
我可以知道发生什么事了吗?

非常感谢这个伟大的论坛和大家的支持。

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

    您好、爱知、

    1. 启用电源策略并使用 RTOS 时、应用 MCU 会在 RTOS 空闲时休眠、并将其自身的唤醒计时器设置为下一个计划的 RTOS 事件(MCU 还可以在网络活动时从 NWP 或配置的 GPIO 中断唤醒)。 在应用程序中,这意味着您希望尽可能使用阻塞 API、信标/消息队列或 SLEE(),而不是空 while 循环。
    2. "mqtt.eclipse.org "是用于演示目的的免费公共服务器、可能不可靠。 我喜欢使用"test.mosquitto.org (也是免费的公共服务器)、 建议在 SimpleLink Academy MQTT 实验室中使用。  

    在 MQTT_CLIENT 示例中、应用程序正在等待与接入点的连接、然后再继续。 是否在 network_if.h 中设置了 SSID_NAME 和 SECURITY_KEY? 您是否看到打印到串行终端的任何错误代码?

    1. 请记住、许多应用在连接到网络后才尝试进入 LPDS、因此演示应用可能会在空的 while 环路中等待连接、就像本例中那样。 如果您从未成功连接到接入点、这就是电流消耗如此高的原因。

    此致、

    Sarah

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

    您好、Sarah、

    很抱歉我迟到了。

    我已确认 WiFi 已连接、我可以使用发布/订阅功能。

    我还在 mainthread 中添加了"Power_enablePolicy();"、但3235似乎仍然无法进入 LPDS。。。

    是否有任何关于如何将 MQTT 客户端演示应用程序运行到 LPDS 的建议?

    BTW,当我启用“Power_enablePolicy()”时,该按钮似乎无法发布...

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

    您好、爱知、

    如果应用正在等待外设服务(如 GPIO 中断或硬件计时器)、则电源策略将不会进入 LPDS。  有关电源策略的更多详细信息、请参阅 SDK 中的 TI 驱动程序电源管理文档。

    我认为在 MQTT_CLIENT 示例中、发布按钮的 GPIO 中断是防止应用进入 LPDS 的原因。 您必须将其更改为电源策略唤醒源。

    如果您想测量旨在演示低功耗策略的 SDK 示例、请参阅 power_measurement 示例。

    此致、

    Sarah

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

    您好、Sarah、

    客户需要 LPDS 的 MQTT ...因此我无法使用功率测量..

    我只需在主函数中删除按钮处理程序和计时器、并按如下方式更改 SysConfig:

    并添加以下内容以更改为主线程中的 LSI:

       memset (&PmPolicyParams、0、sizeof (SlWlanPmPolicyParams_t));
       PmPolicyParams.MaxSlepTimeMs = 2000;

       SL_WlanPolicySet (SL_WLAN_POLICE_PM、
                    SL_WLAN_Long_SLEEP_INTERVE_POLICAL、
                    (uint8_t *)&PmPolicyParams、
                    sizeof (PmPolicyParams);

       power_enablePolicy();

    但现在设备运行速度非常慢(几乎是自由运行)...但是如果禁用 LPDS,它将非常平稳。

    对此问题有什么想法吗?

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

    您好、爱知、

    MQTT_CLIENT 示例不是设计为低功耗演示。 您不能仅仅删除计时器和按钮处理程序。 您需要决定如何替换发布功能。 此外、您还取消选中了"启用网络唤醒 LPDS "、这意味着您的应用 MCU 永远不会唤醒以处理传入的订阅消息。

    您可以参考一些在低功耗应用中使用 MQTT 的 TI 参考设计、但这些设计除了 MQTT 还包含更多功能。

    此外、网络处理器电源策略(sl_WlanPolicySet)与应用 MCU 电源策略(Power_enablePolicy)是分开的。 您应该确定 NWP 政策是否适合您的用例。 请参阅 CC3x3x 电源管理应用手册的电源策略部分。

    此致、

    Sarah

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

    您好、Sarah、

    我知道有一些 MQTT 基础演示、如 TIDC-01005电子锁设计或 AWS 演示。

    我将参考这些示例。如果您有更多 MQTT 基本示例代码、请告诉我。

    感谢您的支持。