Random ~265uA extra current consuption when NRF52832 is in sleep mode.

Hello, we have a product that uses the NRF52832. We recently detected that the device will randomly increase its current consumption by about 260uA during sleep mode. Once this extra current consumption starts, we can only eliminate it with a soft reset. Interestingly, it doesn't seem to recur after that reset, though previous resets do not prevent the issue from happening. We've also noticed that the extra current consumption is only present when the device is in sleep mode; it does not occur when the processor is active and running. Our primary suspicion is that some peripheral of the NRF52832 remains active during sleep mode and fails to turn off. Is there any way to check what remains on during a sleep event? We tried to debug, but it only emulates the sleep event, which is essentially the same as the run mode. Are there any likely candidates that would consume such current? 

Thank you!


EDIT:

Adding more information:

I am using NRF5 SDK 15.3.0

EDIT2:

Adding a bit more of information. I tested to add a standard timer to ran continuously and measured the current. The current goes up as expected as the timer is on during the sleep (idle) mode. However the extra 265uA never comes again, so it looks like that something is forcing the HFCLK to stay on during the sleep mode. Weirdly I do not directly use the HFCLK for nothing. Probably only the SoftDevice uses it for the BLE connection. Is there anyway to check what is making the HFCLK stay on. I tryed to look into all registers of the device but could not find anything. 

Thank you!

Parents
  • Adding a bit more of information. I tested to add a standard timer to ran continuously and measured the current. The current goes up as expected as the timer is on during the sleep (idle) mode. However the extra 265uA never comes again, so it looks like that something is forcing the HFCLK to stay on during the sleep mode. Weirdly I do not directly use the HFCLK for nothing. Probably only the SoftDevice uses it for the BLE connection. Is there anyway to check what is making the HFCLK stay on. I tryed to look into all registers of the device but could not find anything. 

    Thank you!

  • 13K @ 3.3V is about 254uA; 13k-ish happens to be the port io pull-up resistance. Worth scanning all the port CNF registers on wakeup to see if there is one unexpectedly set.

  • I did that. I checked all CNF, OUT, Pull Up/Down and the state of the pins with a scope. Everything as should be. 

    From my tests it looks like the HFCLK is on during the idle mode even when BLE is not enabled. I am trying to understand what is going on.

  • Maybe use HFCLKSTAT to see if it running periodically; if not needed issue HFCLKSTOP. Unfortunately there is no STOPPED event, but it is possible to see if it unexpectedly started:

    Event:  CLOCK->EVENTS_HFCLKSTARTED      0x4000'0100 = 1 (No Enable Field)       IntEnable 0x4000'0300=         0
    Event:  CLOCK->EVENTS_LFCLKSTARTED      0x4000'0104 = 1 (No Enable Field)       IntEnable 0x4000'0300=         0

Reply
  • Maybe use HFCLKSTAT to see if it running periodically; if not needed issue HFCLKSTOP. Unfortunately there is no STOPPED event, but it is possible to see if it unexpectedly started:

    Event:  CLOCK->EVENTS_HFCLKSTARTED      0x4000'0100 = 1 (No Enable Field)       IntEnable 0x4000'0300=         0
    Event:  CLOCK->EVENTS_LFCLKSTARTED      0x4000'0104 = 1 (No Enable Field)       IntEnable 0x4000'0300=         0

Children
Related