原文链接: How to minimize current consumption for BLE application on nRF51822
有关功耗的问题可以留言问我,通过优化大概可以达到 100 毫安以下续航效果。
nRF51 Low power modes and power profiles documentation
The low power modes for the nRF51 series are System On and System Off. You can read about them in the nRF51 Series Reference Manual v3.0 sections 12.1.5 and 12.1.7. Additional information are also given here.
If you are using ANT or BLE Softdevice for the nRF51, look at the "Power Profiles" chapter in the Softdevice Specification document for the Softdevice you are using, S110 SDS, S120 SDS, S210 SDS and S310 SDS. The power profiles show what peripherals are drawing current during a radio event. Current consumption numbers for the different peripherals can be found in the nRF51822 PS v3.1. Look at table 32 for current consumption numbers for System On (I_ON) and System Off (I_OFF). Table 36 shows current consumed by the radio peripheral for LDO mode. For example, I_TX,0dBm is the current consumption used when radio TX is enabled with 0dBm transmit power. I_RX,1M is the current consumption when radio RX is enabled for BLE or ANT. Table 37 then shows the same numbers when DCDC mode is enabled. LDO mode and DCDC modes are explained later in this post.
Measure current consumption
Look at the “Measuring current” section in the User guide for the nRF51-DK development kit (third revision nRF51), evaluation kit (second revision nRF51) or the "Current measurements" section for the development kit (second revision nRF51) to find out how to set up the kit in order to measure current. In addition to the text in the user guide, make sure you power-reset the nRF51 after flashing your firmware to it. After flashing, the nRF51 stays in debugger-mode, which consumes excessive current (~1mA). When the nRF51 is power-reset, it will enter normal-mode where actual current consumption can be measured. It is also possible to use nrfjprog.exe (part of nrf Tools) with the command "nrfjprog --pinreset" in order to enter normal mode.
To test current consumption for the nRF51 low power modes without softdevice, try out the System Off mode example and the System On mode example.. Expected current consumption for the System Off mode example example is 0.6uA with no RAM retention and 2.6uA for the System On mode example. To initially test current consumption with these examples, disconnect the all external circuits from GPIO pins as well as the debugger/programmer. To run those examples on evaluation kit (PCA10001 boards) look at these threads (1) (2)
To test current consumption for a BLE application, use the Power profiling application in the nRF51 SDK, or e.g. the heart rate application. In a BLE application, the radio is enabled periodically to transmit advertising packets or connection packets in so called BLE advertising/connection events. Between BLE advertising/connection events, the nRF51 should be in System On low power mode and should consume ~4uA. It is however hard to see the current consumption between those events on a multimeter if the advertising/connection interval (the time between advertising/connection events) is small. If you modify the application to have long advertising interval, the reading on your multimeter should stabilize between advertising events, and you should be able to read the expected ~4uA. The advertising interval can be adjusted from 20ms to 10.24s, and can be set to e.g.