DA14706 hibernation

Hi!

I tried to run pmu_wakeup_demo from github.com/.../BLE_SDK10_DA1470x_examples on DA14706 DevKit.

When I enable hibernation mode, power consumption decreases to 200 - 300 nA, and seems it is really hibernation. (It can't wake up by reset or power switching, only by connecting Vbus).

Vbat voltage is 3.3 V.

The main problem is Vsys voltage in hibernation is about 2.9 Volts and I still can power external devices from it (after connection external device to Vsys, consumption increases to 10 mA). 

As I understand based on documentation, device should open sysbat switch and as a result power off all peripheral, connected to Vsys.  

I tried to set FORCE_VBAT_VSYS_SW register manually for open switch this switch, but it had no result. 

My device in “Shipping mode” should disable all external peripheral, I hope I do something wrong.

What can be problem?

Do I need to prepare DA14706 to hibernation mode? May be you have some guidelines for it? 

Does it really possible to disable Vsys at all, or I need to use external power control scheme?

Parents Reply Children
  • Thank you for your reply! 

    I want to notice what i use almost pure pmu_wakeup_demo example, (I disabled wakeup by pin and redefined button pins) with SDK-10.2.6.49

    1. I used pm_sleep_mode_set(pm_mode_hibernation) function to set hibernation mode, it is not enough, right?

    2. I checked hw_wkup_set_hibernation_mode(true), but Vsys rail still have 2.8 - 2.9 V and I can power external peripheral from it. (I saw no changes compared to pm_mode_hibernation)

    3. I connected peripheral to V30 rail pin ( Voltage is 3 V and consumption is about 10 mA) and device woke up from from hibernation. How is it possible?
  • I already found, what hw_wkup_set_hibernation_mode(true) is similar to hw_sys_enable_hibernation_mode() function, which calls in pm_prepare_sleep(). This is result of pm_sleep_mode_set(pm_mode_hibernation).

    so it is not surprise, what hw_wkup_set_hibernation_mode(true) has the same result.

  • I already have working EVT device (some kind of smartwatch) with display and some peripheral, designed with the expectation of working hibernation, but on the stage of hibernation implementation I had some unexpected problems:

    1. On my device and my application I call pm_sleep_mode_set(pm_mode_hibernation) and goto_deepsleep() function in apply_wfi()  returns false. As i understood I missed some conditions for successfull goto_deepsleep, but i didn't find any guides for that.

    2.On my device and pmu_wakeup_demo example I have successfull goto_deepsleep, but device wakes up immediately. As I understood it can be caused by load connection to V30 rail as i noticed before.

    For now I returns to tests with devkit and pure examples.

  • The lowest power consumption, I have on my device is about 400 uA in pm_mode_extended_sleep, and this is not enough for shipping mode

  • Sorry, for so much details) I think we need to focus on devkit issue, with enabled Vbus-Vsys switch

  • Hi Kars,

    Let me have a test on this and back to you as soon as possible.

    BR,

    JH_Renesas

  • Hello!

    Do you have any updates? 

    I checked one more devkit and the problem was reproduced.

  • Hi Kars,

    Sorry for the delay, still working on this will back to you soon.

    Thanks

    JH_Renesas

  • Hi Kars,

    Sorry for the delay, I got updates form team, here is the details:

    the VBAT Switch between the VBAT and VSYS rail actually is an ideal diode: realized by a FET circuit. It requires biasing. 
    When VBAT is supplying VSYS, the diode is conducting (switch closed) and its forward voltage drop is ~25 mV. 
    It acts as a diode in reverse (switch open) for cases VSYS > VBAT when e.g. VSYS is supplied by VBUS via the LDO_VSYS. 
       
    But, when the VBAT Switch is not active (in hibernation mode the diode circuit is not biased), a parasitic diode between VBAT and VSYS
    will cause the VSYS rail to be at VBAT voltage minus a diode-voltage drop: VBAT minus ~0.5 V. 
      
    So even if the VSYS Generation = Off in Hibernation Mode, the VSYS voltage will be VBAT minus ~0.5 V because of the
    parasitic diode in the VBAT-VSYS Switch when the switch-circuit is not biased (e.g. when in Hibernation mode).
    This cannot be avoided unfortunately. 
       
    As a 2nd consequence, VLED will be a diode voltage drop lower than VSYS because of the before-mentioned parasitic diode in the DCDC booster path. 
      

    => my data of DA14706 Pro-DK board. 
     
    SW: SDK PXP_Reporter with Sleep-Mode set to Hibernation_Mode. 
    The rail voltages were measured using 1 MOhm probes. 

    Vbat Vsys Vled V30 V18p V18 V14 V12
    3.34 V 2.86 V 2.63 V ~0 V ~0 V ~0 V ~0 V ~0 V

    Vbat - Vsys = 0.48 V  ;  Vsys - Vled = 0.23 V.

      
     
    Vled loaded with 25 KOhm resistor (to see better the voltage drop of the parasitic diodes). 

    Vbat Vsys Vled V30 V18p V18 V14 V12
    3.34 V 2.74 V 2.44 V ~0 V ~0 V ~0 V ~0 V ~0 V

    Vbat - Vsys = 0.6 V  ;  Vsys - Vled = 0.3 V.

  • Hi Kars,


    another customer used a load-switch in their application to cut off VSYS to external circuits - to prevent leakage at Vsys or Vled during hibernation mode. 
    Load-switch example: GLF71301 - GLF Integrated Power (glfipower.com)

    BR,

    JH_Renesas