Authored by: Sachin Gupta and Vikas Vadlamudi
Till now in this article series, we discussed the limitations imposed by primary batteries while designing IoT applications, BLE device states and how to optimize each of them to work well with the primary batteries.
Once BLE states are optimized for power, other subsystems that impact total and peak power consumption shall also be optimized for power consumption and the same is discussed in this part of the article series.
Traditionally, in embedded applications, CPU is the primary contributor to the overall system power consumption. Though RF sub-system takes that place in IoT applications, CPU current can still be of the order of 10s of mA in most BLE devices that are comparable or even higher than the radio’s Tx and Rx current on some devices. So, for coin-cell batteries, to keep peak current low, CPU frequency shall be kept minimum possible to meet required system performance. A few tens of mA of current may not impact battery capacity much in the case of AA/AAA batteries while significantly impact coin cell batteries. So, when operating on AA/AAA batteries, running CPU at a higher frequency and then quickly entering into a low-power mode may provide longer battery life than running CPU at lower frequencies. The trade-off between the reduction in battery capacity with the increase in drain current versus an increase in average current when CPU is run at a lower frequency shall be examined.
While operating on batteries like CR2032 that do not perform well at the high current drain, CPU shall be kept in a low-power mode when the device is transmitting a BLE packet or receiving/listening to avoid an increase in peak power consumption. CPU activities shall be aligned to the beginning or end of the Tx/Rx so that device can have longer deep-sleep intervals and does not need to go through several transitions between power modes.
In wireless connectivity, clocks play a major role in deciding overall system performance let it be the reliability of communication or power consumption. Now, some BLE devices come with an internal low-speed oscillator (ILO) having +/-500 ppm accuracy (or better) that is required to maintain the connection. Though this option helps in reducing BOM cost, these may not be very effective when it comes to power consumption optimization if it is a peripheral device. Clock accuracy has the direct impact on the power consumption of the device. High inaccuracy in the sleep clock, requires the device to wake up and start listening much ahead of the connection anchor point that results in higher power consumption. For example, as shown in figure 1, a peripheral with high-PPM clock needs to start listening much before the anchor point (marked as X in the figure) compared to when a low-PPM clock is used. Also, first RX window length in every connection interval in Peripheral will depend upon the Central’s clock accuracy as well. Thus, a clock with higher accuracy shall be used.
Most devices have multiple clock inputs like external crystal oscillator (ECO) and internal high-frequency clock oscillator. Similarly, for low frequency, devices generally have an internal low-speed oscillator and also require an external crystal oscillator that needs to be used in the low-power state to maintain the connection. However, in most use-cases, one low-frequency and one high-frequency source are needed. So, make sure all unused clock sources are powered-down. Also, when the high-accuracy clock is not needed, use internal oscillators as they tend to consume lesser power than external crystal oscillators.
Based on the battery type, other on-chip peripheral blocks shall be enabled and used in such a way that they do not increase peak power consumption i.e powering down peripherals at the time of transmitting and receiving RF packets, and use them when the device is not transmitting or receiving RF packets. Analog peripherals tend to consume significant power and also need a considerable amount of post processing. Peripherals shall be powered down after collecting the raw data. Some BLE devices may have separate power modes for the overall system and BLE subsystem. In such implementations, BLE subsystem power modes generally control BLE specific resources. For a truly low-power implementation, system designers shall understand all low-power modes available in the device that they are using.
In IoT applications, most batteries do not perform up to their maximum rated capacity due to very high peak current. Low-power communication technologies like BLE can help in reducing peak and average power consumption and thus provide longer battery life. For a given GAP role and a state, power consumption of the BLE device can be optimized. By judiciously selecting various connection parameters for the given use case, average and peak power consumption can be reduced significantly. To keep peak current low, that impacts battery life more compared to a higher average power consumption, it is utmost important to select appropriate transmit power and keeping high-gain amplifier off, if not needed. CPU frequency shall be kept low to keep peak power consumption low during processing. Usage of peripherals and processing shall be scheduled in a way that peak power does not increase during Rx/Tx. These methods are most useful for low-capacity, low-drain batteries like coin-cell. Keeping radio current low and ensuring maximum time in standby state helps in increasing battery life. Each BLE and system state shall be optimized for power appropriate selection of clock source can help in improving average power consumption and hence a longer battery life.
In next part of this article series, we will discuss how to manage high internal resistance of coin-cell batteries, precautions while measuring battery voltage and tools that may come handy while estimating battery powers in the initial stage is product design.
Previous parts of this story can be accessed at following links: