DA14531 Dev Kit Hibernation Mode

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.wsdof.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
10 posts / 0 new
Last post
djames
Offline
Last seen:1 year 2 months ago
Joined:2020-02-07 17:29
DA14531 Dev Kit Hibernation Mode

So I've been working with the DA14531 Dev Kit Pro and I have been having trouble getting the MCU into hibernation mode. I'm just trying to do some preliminary tests and power characterization so I wanted to just use the example code. Following the instructions in the "Sleep Mode Tutorial" I wasn't able to get it to go into hibernation mode. On the test board I'm seeing anywhere from 200-400 uA depending on the voltage and whether or not I'm in buck or boost mode. Any help on this would be greatly appreciated.

Device:
PM_Dialog
Offline
Last seen:12 hours 26 min ago
Staff
Joined:2018-02-08 11:03
Hi djames,

Hi djames,

Thanks for posting on our public Bluetooth forum and glad that you’ve been working with our new Smartbond device. In the “Sleep Mode Tutorial”, there are 3 cases for the hibernation mode configuration (using SPI Flash/SysRAM/OTP). Can you please indicate in which case are you measuring 200-400 uA? If you are using SysRAM, is the debugger attached or not? In addition, which RAM blocks are retained? It would be very helpful if you were able to share those clarifications.

Thanks, PM_Dialog

djames
Offline
Last seen:1 year 2 months ago
Joined:2020-02-07 17:29
I'm currently using the

I'm currently using the SysRAM configuration. With the SysRAM configuation I've tried it with both the debugger attached and not attached (physically), and I've programmed it using both Keil and the SmartSnippets tool. Assuming that the configuration from the header file is being passed through correctly, all 3 RAM blocks are on. I'm going to guess that that's the cause of the increased current draw?

PM_Dialog
Offline
Last seen:12 hours 26 min ago
Staff
Joined:2018-02-08 11:03
Hi djames,

Hi djames,

If the debugger (from the Arm Keil IDE) is attached, this prevents the system to enter any of the sleep modes. You don’t need to remove the debugger physically, just press twice the “Start/Stop Debug Session” button. Can you please indicate if the SPI jumpers are placed or not in the J1 header? Please, try to unmount the SPI jumpers. Then, I would suggest you to use the Power profiler from the SmartSnippets Toolbox and check if the device stops advertising and going into hibernation. In the Hibernation tutorial, advertising with 18second timeout is used, so the device will enter the hibernation mode after 18 sec.

Thanks, PM_Dialog

djames
Offline
Last seen:1 year 2 months ago
Joined:2020-02-07 17:29
So I've been able to get the

So I've been able to get the power consumption down to about 27 uA after about 18 seconds using the settings from hibernation mode. The SPI jumpers are removed, and I'm running from 3.3V in buck mode. This measurement was made using an Agilent 34465A DMM. I must still be doing something wrong, but taking the board out of debug mode did help a lot. I'm not sure what the remaining issue is though.

PM_Dialog
Offline
Last seen:12 hours 26 min ago
Staff
Joined:2018-02-08 11:03
Hi djames,

Hi djames,

Can you please try to use theDA14531 Configuring To hibernation modeSW example in order to set the DK into hibernation mode? Can you detect any change in the power consumption? All our SW example (including the hibernation mode SW example) don’t contain SDK, so you should link them with the SDK. Please follow the steps described in theSoftware Example Setup Using Python Link Scriptdocument.

Thanks, PM_Dialog

djames
Offline
Last seen:1 year 2 months ago
Joined:2020-02-07 17:29
Thanks for sending that

Thanks for sending that example code. That slightly lowered the current consumption, but just barely. Before I was measuring about 27.3 uA and now I'm measuring about 26.9 uA.

PM_Dialog
Offline
Last seen:12 hours 26 min ago
Staff
Joined:2018-02-08 11:03
Hi djames,

Hi djames,

I ran theDA14531 Sleep Mode Tutorial (HTML)and the hibernation current is at ~1.8 uA. I measured it with the Power Profiler of SmartSnippets Toolbox using the DA14531 Pro-DK. Jumpers are placed as shown in Figure 5: Hardware setup with jtag jumpers placed

1. Define the CFG_APP_GOTO_HIBERNATION macro in user_proxr.h

#如果定义(__DA14531__) #定义CFG_APP_GOTO_HIBERNATION

2. Comment out the following code snippet is snippets in user_prox.h

//#if defined(CFG_SPI_FLASH_ENABLE) && defined(CFG_APP_GOTO_HIBERNATION) // #error "Config error: Can not define both CFG_SPI_FLASH_ENABLE and CFG_APP_GOTO_HIBERNATION." //#endif

3.开关在所有三个内存块和重新映射the address 0 to SysRAM as shown below:

#define CFG_HIBERNATION_RAM1 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_RAM2 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_RAM3 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_REMAP REMAP_ADDR0_TO_RAM1 #define CFG_HIBERNATION_PAD_LATCH_EN false #endif

4. In user_periph_setup.h file, configure the GPIO that would be used to wake-up the device from hibernation mode. In this case we have chosen P0_5 as the wake-up GPIO.

#if defined (__DA14531__) #define HIB_WAKE_UP_PORT GPIO_PORT_0 #define HIB_WAKE_UP_PIN GPIO_PIN_5 #define HIB_WAKE_UP_PIN_MASK (1 << HIB_WAKE_UP_PIN) #endif

5. In the user_config.h change the advertising period to 5sec. After 5sec the device will stop advertising and enters the hibernation mode.

static const struct default_handlers_configuration user_default_hnd_conf = { // Configure the advertise operation used by the default handlers // Possible values: // - DEF_ADV_FOREVER // - DEF_ADV_WITH_TIMEOUT .adv_scenario = DEF_ADV_WITH_TIMEOUT, // Configure the advertise period in case of DEF_ADV_WITH_TIMEOUT. // It is measured in timer units (3 min). Use MS_TO_TIMERUNITS macro to convert // from milliseconds (ms) to timer units. .advertise_period = MS_TO_TIMERUNITS(5000), // Configure the security start operation of the default handlers // if the security is enabled (CFG_APP_SECURITY) // Possible values: // - DEF_SEC_REQ_NEVER // - DEF_SEC_REQ_ON_CONNECT .security_request_scenario = DEF_SEC_REQ_NEVER };

6. Build the project.

7. Open the Power Profiler from the SmartSnippets Toolbox. You will need to connect via UART/SPI to enable the power profiler tool. Press ”Initialize” and “Start”

8. Download the firmware into System-RAM.

9. The system will start advertising for 5sec and then it will enter the hibernation mode. Please check the attached screenshot from my setup. The current consumption in hibernation mod is around 1.8uA. If the hibernation current is around this value, then use your tool to measure it in order to have better measurement.

Thanks, PM_Dialog

Attachment:
djames
Offline
Last seen:1 year 2 months ago
Joined:2020-02-07 17:29
So after doing some digging

So after doing some digging and playing with this again, I decided to swap to the WLCSP17 daugherboard instead of the QFN24 daugherboard. To my surprise this fixed my issue. Upon closer inspection of the schematic I noticed that there were some I/O pins on the 24 pin part that aren't connected on the 17 pin part. Removing all the jumpers on J8 and J19 lowered my current consumption down to 700nA. After some trial and error it looks like connect the jumper on J8 pins 1 and 2 causes a 26uA increase in the current consumption. I'm not sure if this is unique to my board, but if not I think removing this jumper should be included in the steps listed in the tutorial.

PM_Dialog
Offline
Last seen:12 hours 26 min ago
Staff
Joined:2018-02-08 11:03
Hi djames,

Hi djames,

Many thanks for your valuable feedback. Setting the jumper on J8 pins 1 and 2, the C_TRIG triggered is enabled which is mapped on the P0_9. That pin is only available on QFN24 package! I have already the Team know about this and we perform some tests early next week. I will keep you updated on this!

Thanks, PM_Dialog