Sleep Mode Power Too High - 14586 design migrated from da14583

Learn MoreFAQsTutorials

21 posts / 0 new
Last post
sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
Sleep Mode Power Too High - 14586 design migrated from da14583

hi,

i ma moving a design from the da14583 to the da14586 and cannot achive the same sleep mode current measurements. i have the same PCB layout.

the design supports an LCD whose enable pin is set on Port 2_3, which is also used by as SPI_EN_GPIO_PORT by the SPI FLASH. In our 14583 chip when we are about to go to sleep then we set this Pin to Output low in order to turn off the power to the LCD and as a result our current consumption is 38uA in sleep mode.

However when I do the same with the da14586 on the same PCB design, the current consumption jumps up to 2.4 mA in sleep mode. If I set the the Port 2 _3 to Output high then we are able to get 430uA consumption in sleep mode, but this is due to current being drawn by the LCD since it is now enabled.

Can you please let me know how much current the included SPI Flash should consume if I set the Port 2_3 to output low? Please note that in the function set_pad_functions this line is set.

// disallow spontaneous flash wake-up
    GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_GPIO, true);

Can you also let me know where i can find deatils on how to keep the SPI Flash in low power mode at all times.

 

thanks

scott

Device: 
PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Can you please power down the SPI flash by using the power_down_da14586_flash() function? I assume that you are not booting from the SPI flash.

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
yes, I do that implicity.

yes, I do that implicity. shoud i do this explicitly every time in set_pad_function? I am booting from SPI flash. if the flash is not powered down, what is the expected current consumption?

thanks.

Scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Since you are booting from flash, you are not able to power it down. Can you please indicate the procedure that you followed in order to measure the sleep current?

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
I have a multi meter in line

I have a multi meter in line with a battery input to the circuit. my design includes a DC/DC converter that boosts a pair of AA cells to 3.3V that powers the chip.

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Can you please make sure that you are measuring only the current consumption of DA14856 and it you are not having leakages from the other peripherals?

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
i measured my peripheral

i measured my peripheral (EEPROM, Accelerometer) and they draw 10uA together total. i connect to these two parts via I2C and have checked that SCL and SDA pins (they have pull ups on my board) are set to High from the 14586 in my code before i enter sleep mode. i checked both with a scope and see that the SCL and SDA pins are at my power supply voltage and there is no measureable drop across the pull ups.

i have also removed the LCD to eliminate it as a possible currernt drain source.

Is there a way to confirm that my code enters sleep state? (check a register after exit from the debugger)?

are there any differences between the 14586 and 14583 that i should be aware of that might cause this? i was able to achieve very low power with the 583.

thank you.

Scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Can you please indicate if the power consumption remains 430uA in sleep mode? Which sleep mode are you using? Please take a look at Tutorial 4: Sleep modes current measurement tutorial from our support website. The power consumption in DA14586 should be very slightly double. Do you have exactly the same board?

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
Hi,

Hi,

the current draw of 14586 is 430-10 = 420uA.

for the da14586 we use:

EXTENDED sleep without OTP copy – DA14585/6: Only the System RAM corresponding of the image size stays switched on + the 32kB (block 4 in the previous slide)

i am finding that global variables are being lost upon wakeup from sleep mode.

Can you say more about this:

"The power consumption in DA14586 should be very slightly double" - does this mean that if i measured 36uA draw from my da14583 board i will see 72uA from my da14586 board?

 

Yes, i am using the exact same board. i just replaced the da14583 with a da14586 IC.

Best Regards,

Scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Can you please clarify this: “i am finding that global variables are being lost upon wakeup from sleep mode.”? Are the global variables stored in the Retention RAM?

I assume that the power consumption should be slightly less than 72uA. If you are starting a new design, we would recommend to start with the DA14585 – the SDK is much improved, we have a lot of code examples, and there is also software roadmap support on the DA14585 to our next generation device that is announced 5th November.

 I think that the problem is related with your PCB. Can you please a screenshot from the DA14586 schematic? Not all your schematics – only the DA14586. Please check some hardware design guidelines:

https://www.dialog-semiconductor.com/sites/default/files/an-b-054_da14585_da14586_application_hardware_design_guidelines_v1.2.pdf

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
hi,

hi,

In 14583 we used to place some variables in the retention RAM, and some in normal global variables. 

However we were not loosing any non retention variables value after waking from a sleep

is there anything different in terms of the global variables handling in SDK 5 vs SDK 6

In addition i have found the following:

Ran the prox_reporter firmware on the Pro kit, without any changes from the SDK and measured the current. 

The sleep current was 3uA as per the documentation for 14586 (ref Training_04_Sleep mode configurations and power measurement_0  page 21 "We measured 3.4μ for extended sleep mode (without OTPcopy).").

Now I just added on line in the function the void set_pad_functions(void).  Which is basically setting the SPI enable pin to False as our LCD enable has to be set to false to put it to sleep.

#ifdef __DA14586__
    // disallow spontaneous flash wake-up
    GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_GPIO, true);
#endif

+ GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_GPIO, false);

Now the sleep current measured was 2mA or 2000uA. The firmware was advertising as normal. We are assuming that the SPI Flash is consuming all the current. 

Previously in 14583 setting the SPI enable pin did not cause such a massive current draw.

Can you please let us know how we can set the  SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN to false without the SPI Flash consuming so much current.

thanks!

best,

Scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Regarding your first question, can you please clarify a bit more? If I am able to understand correctly, your requirement is to store variables into the Retention-RAM? Please correct me If my assumption is wrong.

Please take a look at SW Example: DA14585/586 Detect the Source of the Reset from our support portal. This example demonstrates how to store variables into Retention-RAM.

Regarding your last question, according to your code snippets. I think that SPI_EN is configured as false in the GPIO_ConfigurePin().

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
Hi,

Hi,

i am seeing a excess current when i configure P2_3 to False. can you tell me how to keep the built in SPI Flash in a low power state with this pin settting?

Yes, I want to retain vairables in Retention RAM so that we do not have to reload them after wake up.

Best,

Scott

 

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

Is it possible to power down all peripherals and measure only the power consumption of the DA14586? How much is the power consumption? Also, can you please replicate it in the Pro-DK?

Have you checked the SW Example: DA14585/586 Detect the Source of the Reset in order to store data into the Ret-RAM?

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
Hi,

Hi,

my measurement of 2mA was on the Pro-DK. none of my peripherals were connected. i am reviewing the app note now and will get back to this thread shortly.

why does setting P2_3 to False result in the excess current?

best,

scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi Scott,

Hi Scott,

The P2_3 is the SPI_EN. I will ask the Team  internally and I will let you know shortly. Please get back to me with your measurement results.

Thanks, PM_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
I removed all peripherals

I removed all peripherals from my circuit so that only the DA14586 is on the board. current consumption is just over 2 mA with P2_3 set to False.

do you have any updates on "he P2_3 is the SPI_EN. I will ask the Team  internally and I will let you know shortly."

 

best,

scott

 

PW_Dialog
Offline
Last seen: 4 days 9 hours ago
Staff
Joined: 2019-04-03 02:54
Hi Scott,

Hi Scott,

Can you do same measure on our Dev-kit board with only changing HW but keeping all other same environment (include SW)?

Br,

PW_Dialog

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
we did this before and

we did this before and measure 2mA on the Pro Dev Kit board. all the software is the same except that the SPI_EN pin was set to low in our SW. When the SPI_EN pin was set to High, current draw is low (10s of uA)

sfullam
Offline
Last seen: 2 months 3 weeks ago
Joined: 2015-09-15 01:51
hi, any updates? Best, scott

hi,

any updates?

Best,

scott

PM_Dialog
Online
Last seen: 2 min 44 sec ago
Staff
Joined: 2018-02-08 11:03
Hi sfullam,

Hi sfullam,

This is a very strange behavior. When removing all the peripherals in order to measure only the DA14585 and the SPI_EN is LOW, since the power consumption is around at 2mA, it seems that the extended sleep mode fails. With the same SW, when the SPI_EN is HIGH, the power consumption is 10uA? Can you please make sure that the custom board doesn’t have any leakages? Please use a very simple project, like the ble_app_barebone. Power down the Flash by executing power_down_da14586_flash() function. Which is the current consumption in your custom board and in our development kit?

Thanks, PM_Dialog