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

nRF9160 Low Power Modes - Entering and Measuring Current

I want to double check current draw in the nRF9160 low power modes and need some help in making sure I know how to do so.

I plan to use an oscilloscope for measuring current at this time.  I understand that measuring low currents might be difficult so may need to switch to an ammeter.  I'm doing this on the nRF9160 DK 0.8.5 version.

I think the power modes I need to measure are System ON Idle, and System OFF.  I haven't had much luck finding support in the SDK on getting into the modes and am not sure if there are samples that might help.  I know the spec for the 9160 shows current draw in these modes and registers controlling the power management.

For getting into System ON Idle, I know that is entered when no application is running and when no modem transmissions are taking place.  Correct?  Is this the same mode that the 9160 would be in when in PSM sleep?  From other DevZone articles I gather that I would need to first turn the modem off; is this best accomplished via an AT command, using the AT Command Interface library?  For putting into idle, is there SDK support for that?  Sample code?

For System OFF, is there SDK support to get into that mode and any sample code?

I have read that there are times that going to System OFF to get lowest current draw may not make the most sense as the device has to re-register on the network (?) and that takes significant current.  In those cases PSM makes more sense.  How does one best go about doing the analysis to determine which is the best approach?

Thank you,

Erik

Parents
  • Hi,

     

    There's essentially two power states (excluding CPU running):

    * SystemOn mode (instructions WFE/WFI)

    * SystemOff mode (NRF_REGULATORS->SYSTEMOFF)

     

    The first one is dynamic, where as it can go to sleep with clocks and DMA running in the background.

    The second is combinatoric, no clocks are running and you have to wake up on pin change or reset.

     

    Power modes in LTE is a completely different beast in this context.

     

    For getting into System ON Idle, I know that is entered when no application is running and when no modem transmissions are taking place.  Correct?  Is this the same mode that the 9160 would be in when in PSM sleep?  From other DevZone articles I gather that I would need to first turn the modem off; is this best accomplished via an AT command, using the AT Command Interface library?  For putting into idle, is there SDK support for that?  Sample code?

     The application runs asynchronous to the modem. This means that even if the application is in sleep (SystemOn Idle), the modem might be handling the LTE connection.

    To put the modem in eDRX or PSM, you can use certain configurations in your application to obtain this. Please see the configuration entries in the LTE Link controller (lte_lc) driver:

    https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/drivers/lte_link_control/Kconfig#L54

     

    For PSM, you can then request it in your application like this:

    https://github.com/Rallare/fw-nrfconnect-nrf/blob/nrf9160_samples/samples/nrf9160/udp_with_psm/src/main.c#L112

    Note that you're the slave in this scenario, what you request might not be what the network gives you.

     

    For System OFF, is there SDK support to get into that mode and any sample code?

    A colleague of mine made an example here:

    https://github.com/sigurdnev/fw-nrfconnect-nrf/tree/master/samples/nrf9160/system_off_mode

     

    I have read that there are times that going to System OFF to get lowest current draw may not make the most sense as the device has to re-register on the network (?) and that takes significant current.  In those cases PSM makes more sense.  How does one best go about doing the analysis to determine which is the best approach?

     Cycles of ATTACH and DETACH from the LTE network burns off a lot of current, and it of course depends on how often you need to send data. You can rather request PSM, with a high interval, then let the application send when it needs to. This would reduce the response time compared to doing a full ATTACH.

     

    Kind regards,

    Håkon

Reply
  • Hi,

     

    There's essentially two power states (excluding CPU running):

    * SystemOn mode (instructions WFE/WFI)

    * SystemOff mode (NRF_REGULATORS->SYSTEMOFF)

     

    The first one is dynamic, where as it can go to sleep with clocks and DMA running in the background.

    The second is combinatoric, no clocks are running and you have to wake up on pin change or reset.

     

    Power modes in LTE is a completely different beast in this context.

     

    For getting into System ON Idle, I know that is entered when no application is running and when no modem transmissions are taking place.  Correct?  Is this the same mode that the 9160 would be in when in PSM sleep?  From other DevZone articles I gather that I would need to first turn the modem off; is this best accomplished via an AT command, using the AT Command Interface library?  For putting into idle, is there SDK support for that?  Sample code?

     The application runs asynchronous to the modem. This means that even if the application is in sleep (SystemOn Idle), the modem might be handling the LTE connection.

    To put the modem in eDRX or PSM, you can use certain configurations in your application to obtain this. Please see the configuration entries in the LTE Link controller (lte_lc) driver:

    https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/drivers/lte_link_control/Kconfig#L54

     

    For PSM, you can then request it in your application like this:

    https://github.com/Rallare/fw-nrfconnect-nrf/blob/nrf9160_samples/samples/nrf9160/udp_with_psm/src/main.c#L112

    Note that you're the slave in this scenario, what you request might not be what the network gives you.

     

    For System OFF, is there SDK support to get into that mode and any sample code?

    A colleague of mine made an example here:

    https://github.com/sigurdnev/fw-nrfconnect-nrf/tree/master/samples/nrf9160/system_off_mode

     

    I have read that there are times that going to System OFF to get lowest current draw may not make the most sense as the device has to re-register on the network (?) and that takes significant current.  In those cases PSM makes more sense.  How does one best go about doing the analysis to determine which is the best approach?

     Cycles of ATTACH and DETACH from the LTE network burns off a lot of current, and it of course depends on how often you need to send data. You can rather request PSM, with a high interval, then let the application send when it needs to. This would reduce the response time compared to doing a full ATTACH.

     

    Kind regards,

    Håkon

Children
No Data
Related