Cc1350lp deadleaf power consumption characterization

37
Power consumption characterization cc1350lp deadleaf

Transcript of Cc1350lp deadleaf power consumption characterization

Page 1: Cc1350lp deadleaf power consumption characterization

Power consumption characterization

cc1350lp deadleaf

Page 2: Cc1350lp deadleaf power consumption characterization

Method

• Stock cc1350 Launchpad• Stock Thingsquare fw v2.0.1• High-side shunt resistor for

current measurements• 10 ohm, 0.1%• Measure voltage drop across ->

current through U=IR

DUT

Vcc

Page 3: Cc1350lp deadleaf power consumption characterization

Method

• Shunt voltage drop -> current. Current * input voltage = power. Power * time = energy.

• Mostly interested in blunt approx relative impact, not absolute numbers

• So, shortcut: voltage drop integrated over time for comparison per event (”one LED blink vs one BLE tx”). Divide with the period for comparison over time (”halving the period gives room for...”)

Page 4: Cc1350lp deadleaf power consumption characterization

Cc1350 Launchpad

JTAG, UART, power jumpers• remove all except RST (needed for operation)• Connect RX to GND (to avoid spurious UART rx interrupts)• Connect to GND and 3.3V from external, low-noise PSU

• With shunt resistor in series, high-side

Page 5: Cc1350lp deadleaf power consumption characterization

Error sources• Low oscilloscope resolution (8 bit, picoscope 3206b), while

interesting range is 10uA to 100mA (100uV to 1V)• Very low voltage drop over R – signal to noise not very nice• Difficult zero-offset calibration, and drifting• Hard to correlate observed events to the corresponding

event in the firmware• EMI and current peak suppression capacitors reduce

accuracy and smoothes out mainly fast, low-energy events (low-pass filter)

• Again, noisy

Page 6: Cc1350lp deadleaf power consumption characterization

unbonded

Page 7: Cc1350lp deadleaf power consumption characterization

CC1350LP unbonded, deadleaf• Before bonding with a gateway• Energy is conserved mainly through radio

power cycling• When bonded, will connect to remote server• When done, will enter deadleaf mode• Verify radio (duty cycling, BLE), find and

identify possible energy spenders

Page 8: Cc1350lp deadleaf power consumption characterization

CC1350LP unbonded, deadleaf• Power consumption, P, is sum of– Static draw– BLE beacon transmissions– Radio wakeups/channel sampling– CPU wakeups for various reasons– LEDs and indicators– Others, eg sensors (none in this case)

Page 9: Cc1350lp deadleaf power consumption characterization

10k mile view, 2+0.125 secondsvery noisy

Page 10: Cc1350lp deadleaf power consumption characterization

Same, but more signal filtering(zoom slightly different though)

Page 11: Cc1350lp deadleaf power consumption characterization

Static draw, CPU short/long, channel sample

Page 12: Cc1350lp deadleaf power consumption characterization

• Channel sample: 8 ms, 90 mV -> 720, period 125ms -> 5.76• BLE: 22.2 ms, 20.6 mV -> 457.32, period 1000ms -> 0.457

Page 13: Cc1350lp deadleaf power consumption characterization

No, that’s not really correct – from later measurements, BLE does not take that long

First, a channel sample (red)Then, we should sleep but the next timer timeout is too soon, so can’t do deep sleepFinally, BLE beacons on three channels, then deep sleepThus: BLE: 17 ms, 20.6 mV -> 350.2, period 1000ms -> 0.350

Page 14: Cc1350lp deadleaf power consumption characterization

LED: 125 ms, 25-ish mV -> 3125, period 2000ms-> 1.5625

Page 15: Cc1350lp deadleaf power consumption characterization

Long CPU wakeups, not very strict periodCa 7ms, ca 10.4mV->72.8, ca 100ms -> 0.728

Page 16: Cc1350lp deadleaf power consumption characterization

Very short CPU wakeups0.8ms, 24.83 mV, -> 19.86424 on 2500ms, so 100ms-ish -> 0.19864

Page 17: Cc1350lp deadleaf power consumption characterization

– Static draw, ca 100uA– Channel sample 720/5.76– BLE 350/0.350– LED 3125/1.5625– Long CPU 72.8/0.728– short CPU 19.9/0.199

due to imperfect o’scope zeroing, noise, etc the values are not comparable with later measurements, just within this particular.

Eg, “how does a BLE tx compare to a LED blink” in terms of power consumption.-> no LEDs -> four times as many beacons on the same power budget.What are the long CPU wake-ups? Impact > 2*BLE.

Impact comparison tableper event/with current periodicity

Page 18: Cc1350lp deadleaf power consumption characterization

bonded, steady-state

Page 19: Cc1350lp deadleaf power consumption characterization

Behavior is now more conservative• P is sum of– Static draw– BLE– Master polling– Mucha synching– Sensor value/nw stats transmissions– LEDs– Others, eg sensors (none in use here)

Page 20: Cc1350lp deadleaf power consumption characterization

Before – waiting for bondradio duty cycling, BLE beacons, LED blink every 2s, CPU wakeups

Page 21: Cc1350lp deadleaf power consumption characterization

During bonding – TLS connection

Page 22: Cc1350lp deadleaf power consumption characterization

After bond – much quieter

Page 23: Cc1350lp deadleaf power consumption characterization

Bonding: broadcast with wake-up frames

Page 24: Cc1350lp deadleaf power consumption characterization

Bonding: tx packets (fragments), rx ACK

Page 25: Cc1350lp deadleaf power consumption characterization

Bonding, deadleaf conditions fulfilledTransition to steady-state

Page 26: Cc1350lp deadleaf power consumption characterization

Before – after(improper zeroing on oscilloscope)

Page 27: Cc1350lp deadleaf power consumption characterization

Steady-state, mostly CPU wakeups

Large spikes, period 400 ms, mucha

Page 28: Cc1350lp deadleaf power consumption characterization

Mucha wake-up compared to other wake-ups3.9ms, 58.33mV-> 227.5; 400ms -> 0.56875

Page 29: Cc1350lp deadleaf power consumption characterization

Differences across BLE events21.1, 20.78, 28.75, 28.71 mVDue to noise? Static draw shifts due to caps and leakage? ....?

Corresponding duration for the event17.03, 17.21, 16.85, 16.85 msDifferent time to boot up and stabilize RF?359.3 to 483.8, 1000ms -> 0.36 to 0.48

Page 30: Cc1350lp deadleaf power consumption characterization

BLE and mucha timers, then little elseBLE red, mucha green

Page 31: Cc1350lp deadleaf power consumption characterization

Send-event (master poll)

Page 32: Cc1350lp deadleaf power consumption characterization

Blue are radio wakeups

Page 33: Cc1350lp deadleaf power consumption characterization

Static power draw

Page 34: Cc1350lp deadleaf power consumption characterization

Static power draw

• Extremely low, if nothing is running• Here, at least timers are running• Very easy to misconfigure (GPIOs, timers, serial

hw peripherals etc) and get leakages in hundreds of uA, to mA even

• For low-sendrate applications, static draw can be the largest energy spend

Page 35: Cc1350lp deadleaf power consumption characterization

Static power draw

• Method: measure with DMM when device is in deep sleep

• Device enters deep sleep as part of normal operations, if the next wake-up is far enough away– Takes time to wake up, hence can’t sleep if too close

• Here, tweak fw: when steady state, turn all timers off (mucha etc) so they don’t disturb the measurement

• Result: ca 50-100uA

Page 36: Cc1350lp deadleaf power consumption characterization

Conclusions• Behavior is verified, the firmware is behaving as

intended– Radio is shut off accordingly, state transitions, timer

timeouts reduced etc etc• Room for improvement– Mucha timers in steady-state– Use of LED– CPU spikes when unbonded

• But not present when bonded, which is the most important case

Page 37: Cc1350lp deadleaf power consumption characterization

Conclusions• Impact comparison numbers, making it easier

to tune the application at hand– Eg decrease channel sampling rate to gain power

budget means to blink more, or vice versa• Static power draw confirmed low– Perhaps the most important factor for long

battery-sourced lifetime