Power II
Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.
Please review the pages towards the end of Lecture 6 on Duty Cycling.
Setup
Let's assume we have a minimal electronic system that is comprised of:
- A microcontroller
- A battery and battery-management board
- A communications module
- A sensor
The details of what the modules do (what do they sense, how do they communicate, etc...) are not important. What is important is the power they use in different states.
The Battery and Battery Management Board
The battery and battery management board can be lumped together into a single object that can provide a nominal voltage of 3.3V with a capacity of 490 mAH.
The Microcontroller
The microcontroller runs at 3.3V and has two states:
- Running: Standard operation state which is required for actively controlling the communication module and/or sensor making measurements. The current consumed in this state is 10 mA.
- Sleep: Low-power state. We cannot run the communication module or make sensor measurements from this state. Basically, if the microcontroller is sleeping, then the communication module must be sleeping as well. The current consumed in this state is 200 \muA.
The microcontroller can immediately switch between these two states with no transitional power deviations (i.e. can go from consuming 200 \muA to 10 mA). The microcontroller has 2000 bytes of onboard storage available for holding data from the sensor.
The Sensor
The sensor can be queried by the microcontroller for measurements using an SPI protocol. The sensor runs on 3.3V. The sensor board is purple. The sensor is always in the ON state, and when in that state it consumes 4mA. Regardless of the amount of data in a measurement, the microcontroller can request and receive a measurement from the sensor in 1 millisecond.
The Communication Module
This device is responsible for communication. It runs on 3.3V and has the following states:
- Wake: Standard operation state, consuming 5mA. The other components can do other work while the communication module is in this state.
- Sleep: Low-power maintenance state requiring 300 \muA. The device cannot send data from this state.
- Send: This is a state where data is being sent. When in it, it consumes 75mA. The behavior of this state is dictated by certain rules:
The communication module has nothing to do with collecting a measurement from the sensor. It can be in sleep-mode while the microcontroller is taking a measurement from the sensor.
The duration in the Send state is based on how long the message being sent is. No matter how many bytes the message is, every complete transmission requires 5 ms up front and 3ms at the end of the message. In the middle of these two fixed-durations, the duration to send the message can vary. Every 100 bytes sent requires one additional 1ms. This is not a continuous ratio, however, but instead is a step function because of some requirements of the communication module. 1 to 100 bytes requires 1 ms, 101 to 200 bytes requires 2ms and so on. This pattern exists up to a 2,000 byte message at which point the communication module can no longer send something that long. In this situation the message needs to be broken down into multiple transmissions.
Answer the following questions about the communication module:
In addition, the communication module cannot necessarily change instantaneously between states. Upon moving from Sleep to Wake, the device must remain in Wake for 20ms before it can move to the Send state (for data transmission).
During the 20ms between the communication module waking up and (perhaps) sending data, the microcontroller can perform other tasks, such as processing sensor readings.
Situations
Let's analyze optimal power performance in a variety of conditions:
Situation One
Let's assume each measurement from our sensor is 32 bytes long and our current application requires a measurement to be collected every 50 milliseconds. The maximum latency we will tolerate between a measurement and it being transmitted to the base station is 50 milliseconds (meaning once we make a measurement from our sensor, we'll only be happy if that gets sent within 50ms via the communication module. Otherwise we fail).
How long will the system last if we optimize for power efficiency in hours?
Situation Two
Let's assume each measurement from our sensor is 32 bytes long and our current application requires a measurement to be collected every 500 milliseconds. The maximum latency we will tolerate between a measurement and it being transmitted to the base station is also 500 milliseconds. How long will the system last if we optimize for power efficiency in hours?
Situation Three
Let's assume each measurement from our sensor is 32 bytes long and our current application requires a measurement to be collected every 50 milliseconds. The maximum latency we will tolerate between a measurement and it being transmitted to the base station is 500 milliseconds. How long will the system last if we optimize for power efficiency in hours?
Situation Four
Let's assume each measurement from our sensor is 32 bytes long and our current application requires a measurement to be collected every 50 milliseconds. There is no time pressure on when to report data to our base station, so you should report the data as rarely as possible. Note the microcontroller can only hold 2000 bytes of data and you cannot send fractions of a measurement to our base station. How long will the system last if we optimize for power efficiency in hours?
Situation Five
Let's assume each measurement from our sensor is 64 bytes long and our current application requires a measurement to be collected every 50 milliseconds. There is no time pressure on when to report data to our base station, so you should report the data as rarely as possible. Note the microcontroller can only hold 2000 bytes of data and you cannot send fractions of a measurement to our base station. How long will the system last if we optimize for power efficiency in hours?
Situation Six
Let's assume each measurement from our sensor is 32 bytes long and our current application requires a measurement to be collected once every second. There is no time pressure on when to report data to our base station, so you should report the data as rarely as possible. How long will the system last if we optimize for power efficiency in hours?