nPM2100 ship/hibernate mode wake up issues

I've got some timing-issues with the nPM2100. As I could not locate the relevant information in the datasheet, I'm requesting this here.

My PCB has an nPM2100 with a mechanical vibration sensor connected from SHPHLD to GND. GPIO0 is connected to a GPIO of a NRF54L15, which is powered by VOUT. I've configured GPIO as a OUTPUT and enabled SHPHLDFALL and SHPHLDRISE interrupts.

0x0A: 0b0000110 (RISE/FALL)
0x80: 0b0001010 (OUTPUT/PULLDOWN)
0x83: 0b0000010 (USAGE0 INT_HIGH)

First mention. I really do not understand, why while in ship mode, the tPWROFF (wakeup time on SHPHLD low) is 2000ms (nRF1300 isn't). Couldn't this be programmable in series version? Right now, I need to use hibernate mode with debounce filter off, which gives expected results having higher energy consumption.

Second aspect is, that triggering the interrupt after SHPHLD edge takes 100ms. And further more, what's the time SHPHLD must be kept in switched level to be detected? The currently applied sensor only produces low-pulses of <20µs, which mostly does not get recognized by the nPM2100 (even with 0R series resistor). Can I apply a capacitor? What about leakage currents?

Any guide would be helpful. Thanks.

Parents
  • Hello,

    Note that SHPHLD pin is not a normal GPIO and has specific signal levels. Abs max of the SHPHLD is 1.9V and the high level threshold is fixed 0.6V. It is mainly designed for button use and not to be driven with active circuit which could drive it too high voltage and cause leakage. So care should be taken when checking the signal that comes from the vibration sensor.

    The wakeup time from Ship mode is 1000ms and unfortunately it is not programmable. The main use case is with a button, so the requirement comes from there.

    The 100ms delay you have experienced is due to the SHPHLD debounce time. The programming range is from 10ms to 3000ms and default is 100ms. You can set this with DEBOUNCE.TIME register. So this is the minimum time the signal must be low to be detected. You can also disable the debounce filter with DEBOUNCE.ENABLE bit if you like more immediate response.

    Thanks.

    -Tomi

  • Thanks for you quick reply. Now worries, our sensor only drives to ground (which I mentioned in my post).

    Could the wakeup time be made configurable in series production? "It is designed for button usage" is not that helpful as I was expecting...

    I missed to mention (sorry), that I already disabled the debounce timer with writing 0b00000000 to 0xCA. Didn't I? What's the minimum time required for detection when debounce timer is disabled?

  • Ok, thank you for the hint. I currently applied: MLF1005G2R2KT000 TDK | Mouser Deutschland (2,2µF, DCR typ 1Ohm (quite high), max 30mA)

    I also tested the nPM2100-EK and turned on the low load (13mA at LDSW 1.8V VOUT). With VBAT=3.446V everything looks fine (BOOST is off). But with VBAT=1.2V the input current peaks to 200mA (at least average consumptions stays at 13mA):

    I found the guide you mentioned: Selecting inductors for the boost regulator

    As measuring consumptions on VDD and LDSW would be very hard, I thought it would be a good choice to start with measuring consumptions with having VBAT > VDD (3V). I started with VBAT = 3.446V, using the PPK2 as source. The power measurements are pretty clean now:

    Hibernate: 0.33µA | max 2.66µA

    High, BLE com: 640µA | max 92mA

    Now, there are two ways, I would go. (A) Select the correct inductor + (B) reduce energy consumption further more.

    (A) As I'm right now very limited to the footprint on my PCB (0402), I would try to grab those two from your recommendation: PLEA85DCA2R2M-1P, LSCNB1608HKT2R2MD. Or do you have some other suggestion?

    (B) there's still 105µA consumption, when LDSW is off and only nRF54L15 is idling in:

    k_event_wait(event, 0xFFF, false, timeout);

    I tried to set up theoretical consumptions from datasheet and some mearuements:

    nRF54L15 Consumption [mA] Interval [ms] Duration [ms]] Mean [mA]
    CPU Sleep 0,002 5000 4975 0,00199
    CPU 2,9 5000 25 0,0145
    Radio TX 9,8 500 2,4 0,04704
    SAADC 1,4 5000 5 0,0014
    Sensor 6,1 5000 20 0,0244
    0,08933

    All in all we should stay below 90µA mean (not 640µA). I would hope even less... But I can still tweak consumptions of Radio TX and Sensor. Any advice, how to check the CPU states/state times?

  • Hello,

    (A) finding suitable inductor in 0402 size can be difficult. The TDK PLEA series is the closest one we have tested, although even that is not really standard 0402 size but maybe you can make it fit to the same pads as you have now

    (B) For the nRF54 related question I would suggest you raise a new ticket so we can get the SoC experts chime in on that

  • I now soldered the PLEA85DCA2R2M-1PT00, which made the system maybe a little bit more stable.

    8µA @ 3.2V and 11µA @ 2V is between CPU Sleep and CPU work. Should I be worried about the high current draw of 150mA @ 2V? And why are there more peaks than when BOOST is active?

    3.2V:

    2V:

  • Hello,

    When the boost is active in hysteretic mode (ULP/LP), the refresh or switching will show as these current spikes in the battery current. The more load you have the more frequent switching pulses you will see. Magnitude depends on the input/output capacitor selection. In the nPM2100 HW design guideline there are different selections of the input/output capacitors shown and how they effect the peak current and overall battery lifetime.

  • Thank you Tomi, for helping me to get up to the point where I am now. I will dive into more into the guidelines for next design. Didn't find the correct page up to now. If you could would be so kind to send a direct link for proper capacitor selection, I would be even more thankful.

    Best!

Reply Children
No Data
Related