High Current Consumption in nRF5340 in sleep mode

Hi all,

We are working on a project that uses the nRF5340 and nRF7002 combo. In our application, the device enters a low-power mode on the nRF5340 during sleep, with the nRF7002 turned off.

We followed the low-power example code, but we're seeing a high current draw of 3 mA on the nRF5340 alone on our custom board. When we tested the same example on the nRF7002 DK and measured the current at P22, we observed only 14 µA.

Our custom board design follows the nRF7002 DK as reference and we've even removed extra pull-ups and pull-downs, but the current remains the same. Interestingly, when we run the example SYSTEM OFF mode code on the same custom board, we observe a current draw of 5 µA by nRF5340, whereas the DK consumes only 1 µA. This difference can be accepted due to some design/parts.

The main difference between the DK and our design is the operating voltage: the DK uses 1.8V, while our custom board uses 3.3V. While some variation due to this voltage difference is expected, a 3 mA difference seems excessive.

  • Are there any code changes needed for the 3.3V voltage rail?
  • What are the other steps can be taken from our side to reduce the sleep current?

Thanks,

Jagan K

Parents Reply
  • Hi,

     

    Jagan K said:
    This difference between SOCs are common or not ? And is the above values are acceptable?

    The target will be around 4 uA, with all RAM retained.

     

    Depending on what multimeter you have used, and its accuracy in the lower uA range, it is expected to see some variance just from the measurement itself. In addition, there will be some chip-to-chip variation between the nRF's.

    Jagan K said:
    2. And we do have a some PULL-UPs connected to nRF5340 for the Interrupt feature. Before entering the Idle state, at what state I need to keep those pins.

    This highly depends on what you need those pins to be.

    Do you need a wake-up condition on those pins from external hardware? if so, setup an interrupt on those pins with the appropriate level. See this sample on how to do that:

    https://github.com/nrfconnect/sdk-zephyr/blob/main/samples/basic/button/src/main.c#L58

    But use a defined level instead of rising/falling edge, as this draws less power in sleep. For instance "GPIO_INT_LEVEL_LOW".

     

    Kind regards,

    Håkon

Children
Related