Welcome to the second session of the module on low-power embedded systems.
In this session, we will focus on explaining and creating a power widget.
This is an essential aspect when designing an embedded system.
Firstly, we will explain the overall model.
Secondly, we will use an example to explain it.
In the next session, we will illustrate three methods to measure power
consumption in order to create and validate your model.
An embedded system has a number of elements which consume energy,
such as a mic controller, sensors, actuators,
communication capabilities, and others, such as different peripherals.
Most systems are powered using a battery.
This can be any energy storage system, such as for example a supercapacitor.
More and more energy harvesting options are explored such as solar,
piezo electric, wind, RF harvesting, or temperature difference.
In some cases, a constant power supply is available whether or not temporarily.
In some cases, the system itself is also responsible for charging the battery.
The blocks in the system does not only include the sensor or battery, but also
the required electronic components such as the DC/DC converters or capacitors.
External constraints of the applications will also dictate the duty cycle,
which is a time the system has to be active.
In typical ultra low-power applications,
duty cycles of just a few percent are typical.
This will result in a pulsed power consumption pattern.
In all cases, the consumed energy has to be smaller or in the extreme,
equal to the available energy.
The consumed energy is a sum of all consumers,
which can include charging the battery.
But the required power should also always be smaller or
equal to the available power.
And the same is true for voltage and current.
The latter is especially important when choosing the correct battery or
providing a better converter for DC/DC conversion.
Let me explain the profile using a small example.
We will first focus on the consumers.
Take for example, a temperature sensor in a three volt system.
Imagine it takes 220 milliseconds to read out a temperature value including
a settling of the reference voltage and the ADC conversion of the mag controller,
and the total current consumption is 550 microamps.
This means one readout will consume 120 microjoules.
In this example, we want to flash a green high brightness lift for
100 milliseconds after a successful measurement.
It is clear that the energy needed to power the lift is significantly larger
compared to the temperature measurements.
The energy needed for lift equals 3 milijoules.
Of course, the sensor and actuator has to be controlled using a microcontroller.
Let's use a naive implementation, where a EFM 32 microcontroller at
48 megahertz is active during the measurements empowering of the LED and
in deep sleep mode during the whole time.
This results in energy consumption of 3.78 millijoules for
the active execution, and 0.3 millijoules during the deep sleep time.
Let's broadcast the temperature values using a Bluetooth low energy beacon and
use a three beacon frequency specified by a standard.
The pre-processing and the post-processing uses 8 milliamps and
the transmission around 50 milliamps.
The total duration of this activity is around 7 milliseconds,
resulting in an energy use of 77 microjoules.
Combining a sensor, the activator, the communication, and
the microcontroller results in this power profile.
The black line shows the accumulated current consumption.
Looking at this profile, we see that we need a maximum current of 55.8 milliamps.
Using three volt, this would result in a maximum required power of 167 milliwatts.
As we will discuss in a later session,
we can decrease the current consumption of the microcontroller.
But looking at this power profile, we can lower the maximum current and
this power consumption, using a small adaptation.
If you first sent the Bluetooth low energy packet and only afterwards it,
the maximum currents will be limited to 40.8 milliamps,
resulting in a maximum power of 122 miliwatts.
The total used energy will be the same,
which will limit the maximum power consumption.
Let's now look at the other side, the components delivering energy.
The energy harvesting mode is very hard.
Not only in the energy source but also on circuit use,
to use, convert or store the energy.
We will now focus on the battery model.
In many ultra low-power applications, a CR2032 battery is used.
We'll use this one for the example, but of course,
you need to adapt the model based on your battery.
A typical three volt CR2032 battery has a capacity of 220 milliampere hours,
but this will depend largely on the rate of discharge.
When discharge on a rate similar to the one stated on the data sheet,
which is smaller than 500 microamps,
the typical curves shows it can assess the 230 to 240 milliamp per hours.
But this will differ significantly, as shown by the results of the measurements
done by Nordic Semiconductors.
The accessible capacity depends on the voltage requirements of the system.
This is called the functional end point.
It defines the minimum voltage the system needs to operate.
The previous figure was correct for continuous loads.
But in a typical low-power application, we'll have a pulsed energy consumption.
This figure shows the impacts on the capacity of a coin cell with
25 second pulse cycle using different currents.
For this type of batteries,
a current above 30 milliamp will significantly impact the performance.
But even at 10 milliamp,
the battery cannot deliver the full 230 milliamp per hours.
So it's important to limit the maximum power consumption, but
also go to sleep as quickly as possible to limit the average power consumption.
Sometimes, this can be achieved by using a faster but
more power consuming microcontroller,
which will drastically limit detective time compared to a slower microcontroller.
This brings us to the end of the session.
We focused on the concept of building an energy budget overview in order to
optimize the development of your system.