Anomalous high current transients every 8 sec in BLE sleep mode -nRF52832

We have a simple coin battery powered BLE device with a Laird BL652 module which has an nRF52832 chipset.
We have three buttons and set it up as low power as possible and only waking momentarily and sending a beacon on a button press.
In sleep mode we are measuring between 4-18uA current drain with no buttons pressed  (can we do better than this?). There is a problem though, every 8 seconds in undisturbed sleep mode we get a high current transient (700uA) that lasts 15 msec.  There are no other consumers of current in this circuit.
What can this be and can we stop it?  If so how?
Current is measured with a Fluke 87 DVM in uA range (100 ohm resistance).  The transient can be seen on this meter, but is more accurately characterized by measuring across a 100 ohm sense resistor with an oscilloscope.
Parents
  • Hi

    In order to make sure the oscillator doesn't drift too much to break with the BLE specification, it is strongly recommended that the calibrations occur at least every 8 seconds. You're free to play around with the NRF_SDH_CLOCK_LF_RC_CTIV and NRF_SDH_CLOCK_LF_RC_TEMP_CTIV defines in the sdk_config.h of your project (I assume you're using the nRF5 SDK) which is where you set how often SoftDevice calibration should be done when the RC oscillator is in use. Setting both to 0 should disable the calibration entirely, but then you won't be able to do much in terms of BLE.

    The RTC is the Real Time Counter module, and not the same as the RC oscillator which is one of the LF clock sources you can use for the nRF52832. I also see you're referring to some very old documentation, and I recommend you refer to the latest version of the nRF52832 product specification (v1.8)

    I see that you tried uploading a picture or link as well, but this seems to be broken as we're not able to open it on our end.

    Best regards,

    Simon

  • Both of the NRF_SDH_CLOCK defines you mentioned are set to 0 in the sdk_config.h file.

  • Hi

    Are you a colleague of ? If this is not the case and NRF_SDH_CLOCK_LF_SRC is set to 1 in your sdk_config.h, then I don't think this is the RC oscillator. Do you have an external 32.768 kHz crystal mounted on your BLE device or not? If you do, this shouldn't be the RC oscillator waking up and drawing the excess current. You can check out this guide where my colleague explains how to optimize power consumption on nRF52 designs.

    Best regards,

    Simon

Reply
  • Hi

    Are you a colleague of ? If this is not the case and NRF_SDH_CLOCK_LF_SRC is set to 1 in your sdk_config.h, then I don't think this is the RC oscillator. Do you have an external 32.768 kHz crystal mounted on your BLE device or not? If you do, this shouldn't be the RC oscillator waking up and drawing the excess current. You can check out this guide where my colleague explains how to optimize power consumption on nRF52 designs.

    Best regards,

    Simon

Children
No Data
Related