PICORADIO TEST BED POWER MEASUREMENTS 
WITH BLUETOOTH RADIO AND v2 POWER BOARD

 

We can control:

 

Bluetooth controls are routed through the Xilinx so that they can be manipulated from the ARM or the Xilinx, or both.  ARM wake from idle is any interrupt source, and ARM wake from sleep are one or more predefined interrupt sources.

 

In the current implementation, there is a common 3.3v supply for both the ARM and Xilinx, so the Xilinx cannot be powered down separately.  The Bluetooth can be powered down independently.  Off mode for the ARM and Xilinx is board power off.  Xilinx sleep mode is established by turning off the clock.

 

Test conditions:

Supply voltage (VBATT) = 7.200 measured at breakout board pins.

Current measured at supply.

ARM spinning in the kernel idle loop, running from cache (Bluetooth.axf).

    (experience shows that the ARM runs from cache most of the time in the applications we run)

Xilinx running the Bluetooth controller.

Summary:

 

The most effective means of power control are changing the clock speed and core voltage (DVS) and setting the radio operating mode:

Except in ARM sleep mode, reduction of power consumption using DVS approaches a factor of four.  With the ARM in sleep mode there is very little difference between DVS settings.  However, there is also little difference between ARM sleep and idle modes with DVS at minimum.  The nodes were able to run the sensoring application (basestation and remote) at minimum DVS with no degradation.

Second to DVS is radio operating mode.  Receive takes a little more power than transmit; idle and off are more-or-less equivalent.  So, the best approach would be to leave the radio in idle mode as much as possible.

Xilinx run/sleep and ARM run/idle have measurable effects on power consumption but are much less effective than DVS and radio mode.  ARM run/idle will be on by default in future projects, and will not require user control except via a idle time constant.  Radio control is via the Xilinx, so the radio is effectively isolated with the Xilinx in idle mode.  For this reason, it's recommended that Xilinx power control be incorporated when the application is fully debugged and ready for deployment.

 

The absolute minimum power consumption (108mw) occurs at the obvious point: ARM sleep, Xilinx idle, radio off (aka deep sleep).  The next highest point (130mw) occurs three times, all at 60MHz/0.925v: twice in ARM sleep mode and once in ARM idle mode.  Considering the complexity involved with setting up and recovering from ARM sleep it appears that the optimal operating point for low power consumption is ARM idle, Xilinx sleep, and Radio off.  If ARM idle mode is used by default (a kernel service) and the user does not take advantage of any other power control capability (other than idling the radio when not in use), the operating point for minimum power consumption (194mw) is ARM idle, Xilinx run, radio idle.

 

  typical operating point 

 minimum operating point 

maximum

minimum

 

Raw Measurements

Key

Allowed - No Restrictions
Mode set before ARM or Xilinx goes to Idle or Sleep (light font)
Carrier only
  • Numbers include digital v2 (#16), power v2 (#2), and Bluetooth (#2) boards.  Add about 20ma : 144mw with sensor board #1.

ARM Xilinx

Bluetooth

I (ma) : P (mw)

Battery Life  (hours @ 1200maH)

ARM clk =  200MHz, VEE = 1.5v ARM clk = 60MHz, VEE = 0.925v Estimated
Max
Actual

Run

Run Transmit 94 : 677 42 : 302 28.6 .
Receive 96 : 691 46 : 331 26.1 25.0
Idle 81 : 583 29 : 209 41.4 .
Off 79 : 569 28 : 202 42.9 .
Sleep Transmit 85 : 612 33 : 238 36.4 .
Receive 88 : 634 37 : 266 32.4 .
Idle 72 : 518 20 : 144 60.0 .
Off 71 : 511 19 : 137 63.2 .
Idle Run Transmit 81 : 583 40 : 288 30.0 .
Receive 84 : 605 44 : 317 27.3 .
Idle 69 : 497 27 : 194 44.4 .
Off 68 : 490 26 : 182 46.2 .
Sleep Transmit 73 : 526 31 : 223 38.7 .
Receive 77 : 554 35 : 252 34.3 .
Idle 61 : 439 19 : 137 63.2 .
Off 60 : 432 18 : 130 66.7 .
Sleep Run Transmit 28 : 202 32 : 230 37.5 .
Receive 29 : 209 36 : 259 33.3 .
Idle 16 : 115 19 : 137 63.2 .
Off 15 : 108 18 : 130 66.7 .
Sleep Transmit 28 : 202 32 : 230 37.5 .
Receive 32 : 230 35 : 252 34.3 .
Idle 16 : 115 19 : 137 63.2 .
Off 15 : 108 18 : 130 66.7 .
Example:
Sensor Nework Running TDMA w/ 2 Sensor Nodes, ARM/Xilinx always in Run mode
Basestation no sensor bd 85 : 612 44 : 317 27.3 .
w/ sensor bd 93 : 672 52 : 377 23.1 .
Sensor Node no sensor bd 77 : 554 37 : 266 26.7 .
w/ sensor bd 85 : 614 45 : 326 20.3 .
Numbers adjusted 05/12/02 to show improvements in sensor board power consumption - 8.2ma @ 7.2v (59mw)

 

 

Relative Contributions from Each Component

 

Summary:

 

With the ARM and Xilinx in sleep mode and the radio off, there is a baseline power consumption somewhere around 100mw.  There is a contribution to this from the ARM but the amount is unknown.  It's probable that the Xilinx contributes a fair amount, suggested by the low relative difference from baseline between sleep and run modes (65mw).  The Bluetooth power supply is also not shutting off properly (not 0 volts), so the radio board is probably contributing a small amount (very small) as well. For the purposes of analysis at this time, we'll attribute this baseline to remaining devices in the system e.g. SRAM, flash, LEDs, crystals, and logic chips. 

 

Contributions for each component are measured in terms of the difference between the baseline values and some non-baseline condition.  An example: for any given condition for the ARM and Xilinx the contribution of the radio is computed by taking the difference of idle and off, Rx and off, and Tx and off .  In most cased changing the condition of one subsystem does not affect the condition of a different subsystem e.g. radio deltas with ARM sleeping, idling or running are the same.  This is indicated by the Any designation in the table cells below.

 

There are some inconsistencies in the data as shown by the red text in the table.  All but one can be explained if the Xilinx is sleeping rather than running with the ARM in sleep state.  This is possible since the Xilinx oscillator is controlled by an ARM GPIO pin, and no special measures were taken to ensure this pin stayed in a particular state.  The unexplained inconsistency has the same basic signature as the others, but the delta value is lower than expected.  It's probably worth the time to explore conditions in the Xilinx in more detail; sleep mode predictability, control of internal state during sleep, etc.

 

The most interesting result is the very small difference between all three ARM modes when running at low core voltage and clock speed.  This reinforces the idea that ARM sleep mode may not be worth the trouble.  One caveat: the ARM load was small in these tests, so it may be useful to incorporate at least idle mode in more complex applications.

 

ARM Xilinx

Bluetooth

Delta from Baseline

Comments

ARM clk =  200MHz, VEE = 1.5v ARM clk = 60MHz, 
VEE = 0.925v
I (ma) P (mw) I (ma) P (mw)

ARM
Sleep --> Run Run
(Sleep --> Run)
Any 65 468 10 72 Xilinx probably is not running with ARM in sleep mode (+9 effect from Xilinx going from sleep --> run)
Sleep Any 56 403 1 7 .
Sleep --> Idle Run
(Sleep --> Run)
Any 53 382 2 14 Looks like same Xilinx effect, although unclear why change in delta for low DVS is only 2 and not 8 or 9.
Sleep Any 45 324 0 0 .

Xilinx
Run/Idle Sleep --> Run Any 9 65 9 65 .
Sleep Sleep --> Run
(Sleep --> Sleep)
Any 0 0 0 0 Xilinx probably is not going into run mode
.
Radio
Any Any Off --> Transmit 13 94 14 101 Delta  from high to low DVS is probably less than one due to rounding.
Off --> Receive 17 122 18 130
Off --> Idle 1 7 7 .
.
Baseline 15 : 108 18 : 130