This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Current spikes when input GPIO is touched

Hi!

When measuring current draw with the NRF52 in idle state, we've noticed current spike at seemingly random times. when investigating further, we've discovered these spike happen when an input GPIO pin is touched, or pressed however slightly, whether with a conductive material or otherwise.

to be more specific:

1. GPIO pin is set as input as it is used as an input pin from a peripheral we're using. We've tried all possible pull configurations, and this problem occurs when setting the pin to no-pull when sleeping. Setting the pin to pulldown or pull up results in much greater current leaks, possibly because of the configuration of the peripheral hadrware using it.

2. The input GPIO is set to no-pull before sleeping. No events are linked to this GPIO.

3. The device enters idle state ( nrf_pwr_mgmt_run() )and draws ~5uA current.

4. Seemingly sporadic spikes of up to ~20uA appear. When touching the device, or sometimes without touching it at all.

5. These spikes can be induced by touching -however softly- a checkpoint exposed between the GPIO and the connector the trace leads to, either by hand or with a wooden toothpick, meaning both conductive and non-conductive materials cause this. There is nothing else connected to this trace. It runs straight from the GPIO, through a checkpoint, into the connector pin.

This GPIO leads to a connector meant for a peripheral hardware. When the connector is taken out, this problem disappears. When the connector is in place, even when the hardware itself is not connected, this problem re-appears.

These boards were pick and placed by a machine, so a hardware placement problem is not likely the issue. This occurs on all boards we have.

Notice that the problem is visible even when the device is not 'handled' in any way. Even when the connector is in place, and the device is 'left untouched' without anything connected to the connector, these spikes are visible.

We use sotdevice S113, SDK 16, nRF52840 chip.

Any idea what could be causing this or how to handle it? is there a 'correct' state for GPIOs to be placed into when going to sleep?

Thanks!

Parents
  • Hi,

    the cause is EMI interference - if you leave a floating input pin without pull-up, the pin will catch stray RF fields, randomly flipping input level, because of its high impedance. Is your periheral stays active while NRF52 sleeps, or it's powered down, or sets its output to disabled (high-impedance) state? The quick solution is to configure pin as NRF_GPIO_PIN_INPUT_DISCONNECT when going to sleep.

Reply
  • Hi,

    the cause is EMI interference - if you leave a floating input pin without pull-up, the pin will catch stray RF fields, randomly flipping input level, because of its high impedance. Is your periheral stays active while NRF52 sleeps, or it's powered down, or sets its output to disabled (high-impedance) state? The quick solution is to configure pin as NRF_GPIO_PIN_INPUT_DISCONNECT when going to sleep.

Children
No Data
Related