The process of designing a new electronic device usually is about making compromises. Costs are often in conflict with the performance. In the case of cost-sensitive markets that are geared towards consumer products, choosing the right microcontroller or microprocessor that is at the core of the embedded system may be the most important decision that affects performance. There are a lot of competing features that could influence the performance of the embedded system. In this article, let’s look at the following aspects:
- Battery Life
- Responsiveness
- Thermal Performance
- Wireless Signal Range and Speed
- Functionality Supplied by External Peripheral Components
Designing for low-power is essential when it comes to battery-powered devices or devices which rely on technologies for energy harvesting. A few of the first questions to ask include:
- What accessibility can the device be to perform maintenance in the field? Are batteries able to be replaced?
- What is the working environment (temperature ranges as well as humidity ranges as well as exposed to sun, exposure chemicals, etc. )?
- What are the dimensions and weight limit?
- What type of communication will be needed? How often does telemetry need to be delivered?
- How many other devices (sensors and actuators) are required to communicate in conjunction with the device? Which are the interfaces they use?
Once you’ve made sure that the “big picture” requirements are identified, it’s time to construct an approximate power budget. The first step is to take all current power draws from external devices. Then it is time to look at the possible microcontrollers/microprocessors that meet functional requirements and determine how efficient they are. A typical specification will describe the effectiveness in terms of the uA drawn per Hz of clock speed. It is important to investigate and select the most appropriate MCU/MPU, both in terms of function and performance will help in satisfying the low-power needs of a product. Once we’ve got a understanding of the expected idle and active power consumption, we can perform math “back of the napkin” calculations based on the different batteries to determine the length of time a battery charges will run for. Be aware that selecting the appropriate chemistry for your battery is crucial for this conversation. For instance Nickel-cadmium (NiCd) or nickel metal (NiMH) batteries do not keep charge in cold climates.
After getting the architecture-related questions removed It’s now time to concentrate on the design aspects that will optimize embedded systems for energy consumption. A few design guidelines to take into consideration for both firmware and hardware include:
- Select your operating voltage at the lowest that you can. For the longest time 5V was the standard and after which it was 3.3V. Nowadays, it’s not unusual to find 2.7V or 1.8V core and operating voltages for memory. Some embedded devices that are on the market can go at a low of 0.9V.
- Cut down the main clock speed to the slowest rate that you can without impacting performance.
- Alongside the lowest operating voltage, it is important to select components that have identical operating voltages which will reduce the requirement for DC-DC converters as well as the need to run multiple power rails.
- Beware of liquid crystal and LED displays! They look pretty and be useful however they are energy-intensive (relative to their usefulness). Add LEDs judiciously. If you require an LCD is required, allow users the option to alter the brightness.
- The topography of your circuit and the components you choose can significantly impact the power budget. The voltage divider, the pull-up resistances and pull-down resistors, although essential, draw current. Make sure that they are needed and of a size that is effective and efficient.
- Don’t simply hardwire devices to enable constantly. Instead, devote the time to design and budget to a GPIO pin on the MCU to permit the firmware to switch peripheral devices off and on as required.
- Beware of delays and constant polling of sensors in your code. This can lead to inefficient clock cycles that are not used effectively, but consume energy. Instead, you should use interrupts and task schedulers.
- Choose a communication protocol that can cover, but not exceed the distance that needs to be taken. Zigbee (r) is better in comparison to BLUETOOTH (r), for instance. Switch off radios when not in use. But do take into consideration the amount of amount of time required to power the radio. In low-power, low-data speed applications, this shouldn’t be a major issue.
- Don’t let GPIO pins dispersing.
- For GPIO pins that have internal pull-ups do not activate the pull-ups if they are it is not required.
- Reduce the speed of communication buses like I2C as well as SPI.
- The capacitor and resistor that are employed in the conversion of analog to digital can consume quite a bit of energy. Reduce the frequency at which readings are taken come in from the ADC and switch off the R-C network between readings. However, ensure that you give the capacitors time to recharge prior to taking an reading.
Optimizing the design to reduce the power consumption of a device does more than simply prolong the battery’s life. A lower power consumption results in less heat, which increases reliability and decreases the chance of failures caused by heat. Finally, ensure that you test your plan. If you are using low-cost USB power meters multimeters, joulescopes or energy analyzers, make time to study the power consumption of your device in both lab and real-world settings. To facilitate this, be certain to place tests locations on your board to ensure that voltage and current can be observed.