How to make the NRF9160 reduce power consumption?

Dear Nordic Engineers

Our customer use nRF9160 to develop a tracker.They found that their programs were relatively power-hungry.They tested the serial_lte_modem example on their board and the power consumption is normal: PSM 3.6uA, eDRX 30+uA.But they test their own program power consumption is relatively high.

1、In PSM/eDRX mode, they use pm_device_state_set function to turn off UART+IIC+PWM.

2、They use 3 UART+1 IIC+1 PWM+4 KEY+3 IO outputs, the power consumption of the board in PSM/eDRX mode is 400uA.

Is there any way to reduce power consumption? Please give me some good advice.

Best regards.

  • Hi Wang, so sorry about the delay!

    There are several things that could be looked into here. 

    First of all, there might be peripherals, LEDs, logging, etc. that haven't been disabled. You can take a look at our nRF Asset Tracker v2 and its low power overlay to see what we would recommend disabling/using for a similar application. 

    In order to get low power consumption in PSM you also rely on getting reasonable PSM timer values from the network, do you for instance know what TAU value you are requesting and what the network is giving you? Note that the network might not give you the values you are requesting. For more info I would recommend reading our whitepaper on Best Practices for IoT development (simply searching for the word 'power' there might give you some good tips) as well as this whitepaper on Energy Efficient IoT

    Regards,

    Elfving

  • I wouldn't necessarily say that 400uA sounds like a lot if one or more UARTs or PWM are active. It depends on if you are using them continuously or just now and then. An active UART could pull 0.5mA by itself. You just have to make sure that the peripherals are disabled when they are not in use.

    Regards,

    Elfving

  • Dear  Elfving

    I think their high power consumption problem is caused by the peripherals, they use the pm_device_state_set function to turn off the peripherals, but this doesn't seem to take effect. Is this correct? Is there any other way to turn off peripherals?Please give me some good suggest.

    Best regards.

  • Hello again, and thanks for your patience during the Easter vacation.

    Hannibalhz said:
    I think their high power consumption problem is caused by the peripherals, they use the pm_device_state_set function to turn off the peripherals

    I believe this is correct.

    Though keep in mind that the power consumption of multiple peripherals doesn't scale linearly. E.g., 1 UART alone could pull as much power as 3 UART and a 1 PWM. This is because it is the HF clock and the internal clock tree that is pulling the power, and not every peripheral by itself. So you won't necessarily see the power consumption decrease just from disabling one peripheral.

    Do you know if there are any other peripherals active?

    Regards,

    Elfving

Related