CYW4343W - Power save

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
BeOl_4470266
Level 3
Level 3
25 replies posted 10 replies posted 10 sign-ins

Hi,

I'm trying to use ping_powersave and measure the current consumption of the CYW4343W. The WiFi connection and ping part works as expected, however I don't see the module going low power, with a minimum current of 20 mA (measurement taken from the CYW4343W only, the STM32 driving it is not taken in account).

I'm using the Sterling-EWB module and evaluation kit.

The following functions are called:

wiced_init();

wiced_network_up( WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL );

wiced_platform_mcu_enable_powersave();

wiced_wifi_enable_powersave();

wiced_network_suspend();

Is 20mA expected in this mode? How could I achieve lower power consumption?

Thanks for your help,

Best regards

Ben

0 Likes
1 Solution

Hi,

Sorry for the late reply.

I haven't been able to get to the bottom of what was going wrong using the laird platform.

However I ported the firmware to an STM32L4A6 driving an external BCM4343W and have now the expected low power results.

Thanks again for taking the time to investigate with me,

Ben

View solution in original post

0 Likes
32 Replies
BeOl_4470266
Level 3
Level 3
25 replies posted 10 replies posted 10 sign-ins

I have enabled various logs output and can see the following:

Starting WICED Wiced_006.004.000.0061

Platform LAIRD_EWB initialised

Started ThreadX v5.8

WICED_core Initialized

Initialising NetX v5.10_sp3

Creating Packet pools

WWD SDIO interface initializing with US/0

WLAN MAC Address : C0:EE:40:70:0E:85

WLAN Firmware    : wl0: May  2 2019 02:39:20 version 7.45.98.83 (r714225 CY) FWID 01-476cc09d

WLAN CLM         : API: 12.2 Data: 9.10.158 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2019-05-07 05:05:14

Init took ~6958 ms

Joining : my_wifi_ssid

9682: Event (interface, type, status, reason): WWD_STA_INTERFACE WLC_E_AUTH WLC_E_STATUS_SUCCESS WLC_E_REASON_INITIAL_ASSOC

9694: Event (interface, type, status, reason): WWD_STA_INTERFACE WLC_E_LINK WLC_E_STATUS_SUCCESS WLC_E_REASON_INITIAL_ASSOC

9733: Event (interface, type, status, reason): WWD_STA_INTERFACE WLC_E_SET_SSID WLC_E_STATUS_SUCCESS WLC_E_REASON_INITIAL_ASSOC

10511: Event (interface, type, status, reason): WWD_STA_INTERFACE WLC_E_PSK_SUP WLC_SUP_KEYED WLC_E_SUP_OTHER

Successfully joined : my_wifi_ssid

Obtaining IPv4 address via DHCP

L1321 : dhcp_client_init() : DHCP CLIENT hostname = [WICED IP]

IPv4 network ready IP: 192.168.3.121

wiced_network_save_dhcp_state_for_deep_sleep

Not saving DHCP state; deep sleep disabled

wiced_network_suspend: 0

WICED_SUCCESS: 0

wiced_network_suspend: 0

The two logs I've put in bold seem suspicious. I tried defining WICED_DEEP_SLEEP_IS_ENABLED( ) to 1 (which is the reason for this log to be printed) but it fails to compile as some functions are not defined, such as wiced_deep_sleep_disable_packet_buffering(). Following this function's prototype (in 43xxx_Wi-Fi/include/wiced_management.h:435) I can read the following in the brief: Currently this is implemented for 4390x platforms only.

Can the CYW4343W go low power while maintaining Wi-Fi connection to an access point? If not, is it in the roadmap to bring support for this module, and when would it be available?

Thanks for your support,

Best regards,

Ben

0 Likes

Would you please use the api Wiced_wifi_enable_pwersave_with_throughput () for a test?

It is PM2 which is different with your setting PM1 .

By the way did you test the current with a power meter ?   from what i know the current should be in a stable low current base with pulse periodically  .

0 Likes

Hi,

I tried wiced_wifi_enable_powersave_with_throughput(10), but unfortunately the module has the same behavior.

Thanks for confirming it is supported.

I have observed a new behavior yesterday: the low power stage will sometimes be reached, but it will also go away. Please find below several captures, using the same code. Note that I removed the pings from the demo as I just wanted to see the WiFi connection being maintained (behavior was the same with the original demo).

Capture 1

This is what I see most of the time, the WiFi connection is properly maintained but the lower power is around ~20 mA. This is less than when no low power mode is enabled but too high for our application.

pastedImage_3.png

Capture 2

This is a behavior that happens sometimes, we can see that it would go into low power (A), which is exactly what I need. However it would also go into the stage seen in Capture 1, in a way that seems random at the moment. I don't understand what is the mechanism that makes it go between (A) and (B). I've tried with 3 different Access Points just in case. Also tried with different DTIM configurations as well as different listen interval configurations but it doesn't seem related to this issue.

pastedImage_2.png

It feels that the chip might be maintaining some receiving mode after receiving the beacon from the AP, could it make sense? Do you know how I could interact with that if it was the reason?

Thanks for your help,

Ben

0 Likes

Hi,

Something else I noticed, as you can see in the logs I've pasted yesterday: wiced_init() is reporting that the init takes around ~7000ms. This function has comments explaining the following:

Note: init time under 500ms is expected, generally (measured on 43364 SDIO system).

Init times that are excessively elongated will result in unexpected failures that will generally appear during Wi-FI bus enablement or access.

That's me having an init 14x longer than expected. Do you know if that could be related to the issue I'm having?

Thanks,

Ben

0 Likes

I've been looking into the Release Notes for Wiced 6.4. It states the following:

CYW943907AEVAL1F:APPS: snip/ ping_powersave app is not entering to low power mode

What is the current recommended version of the SDK for the CYW4343W?

Thanks,

Ben

0 Likes
lock attach
Attachments are accessible only for community members.

I just have a check on the ping_powersave app.

Would you please have a check on the released pdf WICED-Powersave-App-Note.pdf  in the installed wiced environment ?

in chapter: 4.1.1 Custom Low-Power Application 1: ping_powersave

some special setting need to be noted:

1.  because our default setting is to use the 32-kHZ from mcu , so mcu should not be enable power-save mode, otherwise 32k will stop when mcu is going to powesave mode.

In power save mode, the Wi-Fi chip requires a 32-kHz clock input to stay in sync with beacons from the AP. The MCO oscillator is used to provide the necessary 32-kHz clock when the STM32 is in low-power Stop mode.

in current 6.4 release it is located at platform_config.h with define:  WICED_USE_WIFI_32K_CLOCK_MCO.

so we need to comment the call :    wiced_platform_mcu_enable_powersave();

attach my test modification , I can see a obvious difference between ping working and in sleep mode.

ZhengbaoZ_96 wrote:

In power save mode, the Wi-Fi chip requires a 32-kHz clock input to stay in sync with beacons from the AP. The MCO oscillator is used to provide the necessary 32-kHz clock when the STM32 is in low-power Stop mode.

in current 6.4 release it is located at platform_config.h with define:  WICED_USE_WIFI_32K_CLOCK_MCO.

so we need to comment the call :    wiced_platform_mcu_enable_powersave();

Do you mean to enable wifi power save on 4343W, need to

#define WICED_USE_WIFI_32K_CLOCK_MCO

//wiced_platform_mcu_enable_powersave();

i.e. MCU powersave and wifi powersave cannot be enabled at the same time on 4343W.

But look at wiced_enable_powersave(), it actually calls both wiced_platform_mcu_enable_powersave() and

wiced_wifi_enable_powersave().

0 Likes

Hello:

Sorry for the confusion,  the explain is here:

An STM32 timer may alternately be used to provide a 32-kHz signal using a pulse-width modulated (PWM) output. However, the STM32 cannot use MCU power save mode if a timer is used, since the timer powers down and the 32-kHz clock stops

ZhengbaoZ_96 wrote:

Hello:

Sorry for the confusion,  the explain is here:

An STM32 timer may alternately be used to provide a 32-kHz signal using a pulse-width modulated (PWM) output. However, the STM32 cannot use MCU power save mode if a timer is used, since the timer powers down and the 32-kHz clock stops

Hello,

I'm not sure I really understand, is it possible to maintain both the CYW4343W and STM32 in low power?

attach my test modification , I can see a obvious difference between ping working and in sleep mode.

Please find below my result using your test code:

Capture 3 (CYW4343W consumption only)

DS1Z_QuickPrint11.png

I'm still having this 20mA base current consumption which is too high for our application.

pastedImage_2.png

  1. I should see 5.8 µA current consumption between the beacons, is it the results you have using your test example?
  2. Would you have some details on the mechanism that would lead to having a variable power consumption (please refer to the Capture 2 sent earlier this week)?
  3. Finally should I be worried by the wiced_init() starting time?

Please note that we are still on the evaluation stage of the product to see if it can fit our application, and that the low power results are critical for our product, both on the STM32 and CYW4343W.

Thanks for your help,

Ben

0 Likes

Hello:

      My init time is ~2820ms on my evb board,   seems your board has a longer init time.  And I am testing the whole board consumption , when in sleep the total current is 156mv/10 =16mA with MCU powersave disabled and two leds are working also .   I didn't broke my board to test Vbat only , but I can see a obvious drop of the base current between ping and sleep .  Can you find more evb for the test ?

Hello,

Thanks for checking. We've ordered a new evaluation kit in case the first one is faulty. What is the board you are using? I am currently using the Sterling-EWB evaluation kit, which allows to measure the CYW4343W consumption only.

Is it possible to maintain both the CYW4343W and STM32 in low power? If yes can you advise?

Best regards,

Ben

0 Likes

Hello,

Any news regarding this issue? Have you been able to isolate the Cypress CYW4343W current consumption?

Thanks for your help,

Best regards,

Ben

0 Likes

hello:

I will find one board to check if the Vbat can be isolated for the test.

0 Likes

hello:

    I just have a test , I think maybe I met the same issue with you,  the chip can't enter powersave mode.

The current will keep in a high current level like 40mA.

I tried to use a Agilent Digit Meter to test the current , the phenomenon is sometimes the current can go to 4uA.

but most of the time the current can't low down.  So I did below steps to check the status:

1.  when in boot stage , use the Auto Range current .

2.  when in sleep mode,  change the option to 100mA level.

then every time the sleep function test is ok as the pic showed here.

I think maybe the mA to uA adjust process influenced the stable of the current supply.

By the way the pic shows the VBAT current is about 4.6uA in sleep.

we can change the listen interval to get the sleep current for more time here .

better to change the listen interval.

wiced_wifi_set_listen_interval(250, WICED_LISTEN_INTERVAL_TIME_UNIT_BEACON);

    /* Enable Wi-Fi powersave */

#ifdef USE_POWERSAVE_POLL

    wiced_wifi_enable_powersave();

pastedImage_0.png

Hello,

We've received a new evaluation kit and tried to set up the current measurement differently, using a 0.1omh shunt instead of a 1ohm shunt, resulting in a very low voltage drop in case of current spikes. Unfortunately, the power consumption behaviour is the same as I've originally reported: minimum low power current will most of the time be 20mA, while sometimes going near 0mA before coming back to 20mA.

Were you able to confirm a long term low power mode or did you notice some oscillation is the base low power current as well?

Please see below latest measurements. In purple is the original current of the BCM4343W measured through the shunt resistor, in yellow is a filtered version.

wiced_init();

wiced_network_up( WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL );

wiced_wifi_enable_powersave();

wiced_network_suspend();

for(;;);

DS1Z_QuickPrint13.png

This is quite an issue for us as if we consider this figure for our power budget then the cypress solution won't be suitable for the project.

Thanks for your help,

Ben

0 Likes

hello:

Actually , in my last reply I can test the Vbat with 5uA in sleep mode,  and sometimes I found the chip can't enter low power mode because of the Ampere meter influence the supply .   I will give a video if possible to let your see the results.

0 Likes

and Would you please purchase one cyw4343wwcd1 evb for a compare also ? or if you can contact our local FAE for a current compare test .

0 Likes

Hi,

I'm looking into getting the CYW94343WWCD1_EVB.

You mentioned that for you to have good results you needed to change your setup during the CYW4343W boot stage, putting the Amp Meter in Auto Range. What would be the current spikes expected from the CYW4343W during boot (so we can adapt our setup accordingly)?

Thanks for your help

0 Likes

Yes, maybe my description is not clear , it should be :

1.  Change the Amp Meter into the largest one to make sure the current can match the needs.

2.  After entering sleep mode, we can adjust the Range into 100mA unit, thus we can see the standby current ,

    like what I am testing in the pic.   Do not set it into 10mA unit or less because the listen pulse spikes will cost more than 10mA .

By the way I just test the Vbat  because I do not think VDDIO will cause such a high current in sleep.

I will try to jump VDDIO also tomorrow . 

0 Likes

Hi,

Our set up is different as we measure the current though a shunt resistor, currently 0.1ohm. We are expecting higher spikes than 10mA but not sure about how high it could go. At the moment a 600mA spike would induce a 60mV voltage drop which seems acceptable.

What would be the current spikes expected from the CYW4343W during boot?

Thanks for your help

0 Likes

Hi,

As another way to approach the issue, I'm evaluating the power cost of connecting to a WiFi network. Please find below a capture of the power profile:

for (;;)

{

     wiced_network_up( WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL );

     wiced_network_down(WICED_STA_INTERFACE);

     wiced_rtos_delay_milliseconds( 10000 );

}

pastedImage_0.png

  1. Is there any documentation to detail what are the different steps taken by the CYW4343W during this process?
  2. It seems like most of the power consumption is spent having the receiver on, is that a correct assumption?
  3. Is there a way to reduce the amount of power needed to connect to the WiFi network (even if it means trading with a longer connection time)

Thanks for your help

0 Likes

What would be the current spikes expected from the CYW4343W during boot?

A: I think it depends on the power setting,  We will ask customer to add necessary passive components on VBAT net to make sure the spike will not influence the normal boot up.

For the network up  I think the current is normal in your picture ,   but we do not need to do a full connection every time ,   after the successful connection we can enter the sleep mode and wake up to have a sync with AP ,  that is the aim what we are testing now.

lock attach
Attachments are accessible only for community members.

uploaded my test image and video , this can prove the sleep current.

0 Likes

Hi,

What would be the current spikes expected from the CYW4343W during boot?

A: I think it depends on the power setting,  We will ask customer to add necessary passive components on VBAT net to make sure the spike will not influence the normal boot up.

Any further details would be much appreciated.

For the network up  I think the current is normal in your picture ,   but we do not need to do a full connection every time ,   after the successful connection we can enter the sleep mode and wake up to have a sync with AP ,  that is the aim what we are testing now.

I agree that the sleep mode would allow to save more power, however due to the issues I'm facing with it I'm considering alternative solutions. Note that we've purchased a CYW94343WWCD1_EVB to try and replicate your test conditions. I'll let you know how it goes.

  1. Is there any documentation to detail what are the different steps taken by the CYW4343W during this process (network up)?
  2. It seems like most of the power consumption is spent having the receiver on, is that a correct assumption?
  3. Is there a way to reduce the amount of power needed to connect to the WiFi network (even if it means trading with a longer connection time)?

Thanks for your help,

Best regards,

Ben

0 Likes

Hello,

I've received the evaluation board and we are setting up the measurement. In order to reproduce can you confirm the following?

I've noticed in the datasheet that R3 (0402 resistor) can be removed and replaced by an amp meter to measure VBAT_4343. Also, R5 (0204 resistor!) can be removed and replaced to measure WCC_VDDIO.

However it looks like you're not measuring the current going through WCC_VDDIO in your test, do you know how much is supposed to go through during this test?

Also from the photo you sent it seems like SW2 and SW3 are used in your setup but I'm not sure to understand why?

pastedImage_0.png

Also would you have the schematic for the full board please?

Thanks for your help,

Best regards

0 Likes

I've noticed in the datasheet that R3 (0402 resistor) can be removed and replaced by an amp meter to measure VBAT_4343. Also, R5 (0204 resistor!) can be removed and replaced to measure WCC_VDDIO.

Yes, R3 and R5 is correct from the schematics in the release.

From Spec the VDDIO will consume arount 80uA with the value VDDIO=1.8V on sleep mode.

I will find time to remove it for a test also.

0 Likes

and I didn't use the pin SW2 SW3 .

0 Likes

Hi,

ZhengbaoZ_96 wrote:

and I didn't use the pin SW2 SW3 .

Sorry my mistake I misunderstood.

ZhengbaoZ_96 wrote:

Yes, R3 and R5 is correct from the schematics in the release.

Perfect, thanks for confirming.

Thanks for all your help, I'll let you know when I have further results.

0 Likes

Hi,

Sorry for the late reply.

I haven't been able to get to the bottom of what was going wrong using the laird platform.

However I ported the firmware to an STM32L4A6 driving an external BCM4343W and have now the expected low power results.

Thanks again for taking the time to investigate with me,

Ben

0 Likes

It is my pleasure to see the good results, thanks a lot.

0 Likes

ZhengbaoZ_96 wrote:

Would you please use the api Wiced_wifi_enable_pwersave_with_throughput () for a test?

It is PM2 which is different with your setting PM1 .

By the way did you test the current with a power meter ?   from what i know the current should be in a stable low current base with pulse periodically  .

Why you suggest using Wiced_wifi_enable_pwersave_with_throughput instead?

What's the criteria to decide using which one?

My understanding is both PM1 and PM2 will go low power while maintaining Wi-Fi connection to an access point.

Is my understanding correct?

I'm also curious what's the difference between PM1 and PM2.

Which one is more power saving?

I think this is PM=1:

Stations with low duty cycle and long battery life requirements, Wi-Fi sensors for example, may use the standard 802.11 Power Save Poll (PS-Poll) mechanism.

this is PM=2:

Stations requiring higher throughput, wireless speakers for example, may consider using a non-standard 802.11 power save mechanism. These methods are described in this section.

1.3.1 Power Save Poll Power Save Poll is suited for stations that primarily transmit data to the Wi-Fi network at low duty cycle. The PS-Poll mechanism works as follows:

1. Stations (STA) sends a frame to the AP with the Power Management bit set and then goes to sleep.

2. AP notes the STA has gone to sleep and buffers frames for the STA.

3. STA wakes up periodically to check the AP beacon frame for an indication of buffered frame(s).

The wake period depends on the configured listen interval and whether the STA is configured to receive group addressed frames from a beacon containing a DTIM.

4. If the AP indicates it has buffered frame(s) addressed to the STA, the STA sends a PS-Poll frame to the AP.

5. The AP sends a frame to the STA, and sets the More Data bit if additional frames are buffered.

6. The STA might send another PS-Poll frame to retrieve additional buffered frames (if the More Data bit was set) or return to sleep.

1.3.2 802.11 Power Save without Poll A non-standard mechanism known broadly as 802.11

Power Save without Poll (PS-non-Poll) enables Wi-Fi stations to use 802.11 power saving based on a ‘trigger’ frame as follows:

1. STA sends a frame to the AP with the Power Management bit set and then goes to sleep.

2. AP notes the STA has gone to sleep and buffers frames for the STA.

3. STA wakes up periodically. The STA may (or may not) first check the AP beacon frame for an indication of buffered frame(s) before sending any frames to the AP.

4. The STA sends a Null Function data frame, or a data frame if available, to the AP with the Power Management bit cleared.

5. The AP notes the STA is awake and sends buffered frame(s).

6. STA receives the frame(s), waits for a timeout period to receive additional frame(s) (if available), and then returns to sleep as described in Step 1.