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.

CC3220S-LAUNCHXL: Is there any "ultra low power" technique for using TI wi-fi MCU?

Part Number: CC3220S-LAUNCHXL
Other Parts Discussed in Thread: CC3220S, SYSCONFIG

Hello,

I am planning to buy this kit to build an IoT node:

https://www.ti.com/tool/CC3220S-LAUNCHXL

As you know, Wi-fi device consumes current about 100mA at 3.3V DC.  So power is 330mW.  As a wireless node, it is too much.

My question is:
Is there any "ultra low power" technique or trick when using this series of TI CC32xx MCU?

Yours faithfully.

  • Hi Tim!

    Excellent question! Yes, the CC3220 and CC323x devices have built in features to support very low power Wi-Fi use-cases. 

    My question for you would be -> Are you looking to avoid peak currents on the order of 100s of mA or just bring the average current down?

    The transmit current for our device will always be in the range of 100s of mA, which is pretty expected for Wi-Fi devices (see section 8.5 of the datasheet). There are ways to adjust the output "power level" setting of the device to bring this down a bit, but no way to avoid having some instantaneous current in this level. If you need much lower, you may want to look into some of our other wireless technologies which can go well below this.

    Regarding the average current, this is where you have more flexibility and typically what is used to enable low-power Wi-Fi nodes. For low-power Wi-Fi applications, we often put them in one of two buckets depending on the type of connection profile required:

    1. Always connected: When the device needs to always have a Wi-Fi level and/or server connection active. This is when the use-case requires the device to be responsive to remote requests to poll data or receive a command via the network at all times. It would be the lowest latency case.
    2. Intermittently connected: When the device only needs to periodically wake-up or connect to the network to transfer or download some data.

    In each of these cases, there are ways to bring the power down well below 100mA average. It's also possible to mix between these modes, but I'll leave that up to your imagination Slight smile.

    For always connected applications, you do this by allowing the device to enter a "power save" mode and adjusting how long it sleeps before checking for received data or transmitting. The device then uses a combination of putting the MCU to sleep and allowing the NWP to enter "Low Power Deep Sleep" when it's not transmitting or receiving to get to an "idle connected" power profile. We give a typical value for the avg. current in this use case assuming you are connected to an AP with a DTIM = 1 setting (no additional optimization) or ~102msec sleep interval.

    By extending the sleep interval with our "Long Sleep Interval" feature (up to ~1 second), this can be further reduced depending on the acceptable latency. You'll end up somewhere in the couple hundreds of microamps avg. for current in this case.

    For intermittently connected applications, you can affect the average power by controlling how often the device connects to the network and how it sends data (i.e. UDP, TCP, TLS and which cipher suites, etc.). Because of the extra work and power consumed to re-establish a connection to the network, there is usually a tradeoff point between intermittently and always connected which depends on how long the node is allowed to be disconnected or asleep. This should usually be in the range of 60 seconds if I recall correctly before an intermittent connection makes sense vs. always connected with a longer sleep interval.

    We have a really good application note that talks about all of this in detail for both our CC3x20 and CC3x3x products that I recommend you read to learn more. They are pretty similar with just some updates for a few of the extra features in the CC3x3x devices.

    Best Regards,

    Ben M

  • Hello Ben,

    Thanks for the detailed explanation.

    I choose CC3220S because it is supported by GUI Composer v2 with MQTT transport. Then, I do not need big $ to develop client GUI.

    My usage scenario is "intermittently connected".  CC3220S will get temperature sensor reading and send it out once per minute. Then, it should enter deep sleep mode as you described.

    • I have created a test project for CC3220S from within CCS v12.2.  Then, I opened the Sysconfig GUI v1.15.  Could you show me in which options I can configure those different power states?


    Another problem I am facing is:

    • If I am going to deploy this board in large scale across different sites, and each site has its own wi-fi SSID and passcode, does TI have special tool to help us to provision this MCU product as a retail commodity and let the customer input their own wi-fi SSID and passcode into this board before they start to use it?
  • I suggest you check the "Power Measurement" example which demonstrates the use of the both "intermittently connected" and "always connected".

    The sysconfig file helps with the enabling of the Power Policy and setting the wakeup sources.

    Regarding the Provisioning I suggest you start by reading the "https://www.ti.com/lit/pdf/swra513". This guide provides details on the supported provisioning methods. The configuration is done through TI's example mobile app (available for download in both iOS and Android app stores) and the "https://www.ti.com/lit/pdf/swru472" explains how to create a customized app.

    In the latest CC32XX SDK 6.10, you can refer to the "Connection Manager" or "MQTT Client" examples that demonstrate how to activate WI-FI with the provisioning being enabled automatically when needed (basically the provisioning will be started whenever the device can't connect using a stored profile). The exact settings of the connection methods and network provisioning is configured through header file (check the apps README for more details).