cc1350lp deadleaf power consumption characterization
TRANSCRIPT
![Page 1: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/1.jpg)
Power consumption characterization
cc1350lp deadleaf
![Page 2: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/6.jpg)
unbonded
![Page 7: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/9.jpg)
10k mile view, 2+0.125 secondsvery noisy
![Page 10: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/10.jpg)
Same, but more signal filtering(zoom slightly different though)
![Page 11: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/11.jpg)
Static draw, CPU short/long, channel sample
![Page 12: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/12.jpg)
• 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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/14.jpg)
LED: 125 ms, 25-ish mV -> 3125, period 2000ms-> 1.5625
![Page 15: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/15.jpg)
Long CPU wakeups, not very strict periodCa 7ms, ca 10.4mV->72.8, ca 100ms -> 0.728
![Page 16: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/16.jpg)
Very short CPU wakeups0.8ms, 24.83 mV, -> 19.86424 on 2500ms, so 100ms-ish -> 0.19864
![Page 17: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/17.jpg)
– 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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/18.jpg)
bonded, steady-state
![Page 19: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/20.jpg)
Before – waiting for bondradio duty cycling, BLE beacons, LED blink every 2s, CPU wakeups
![Page 21: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/21.jpg)
During bonding – TLS connection
![Page 22: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/22.jpg)
After bond – much quieter
![Page 23: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/23.jpg)
Bonding: broadcast with wake-up frames
![Page 24: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/24.jpg)
Bonding: tx packets (fragments), rx ACK
![Page 25: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/25.jpg)
Bonding, deadleaf conditions fulfilledTransition to steady-state
![Page 26: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/26.jpg)
Before – after(improper zeroing on oscilloscope)
![Page 27: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/27.jpg)
Steady-state, mostly CPU wakeups
Large spikes, period 400 ms, mucha
![Page 28: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/28.jpg)
Mucha wake-up compared to other wake-ups3.9ms, 58.33mV-> 227.5; 400ms -> 0.56875
![Page 29: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/30.jpg)
BLE and mucha timers, then little elseBLE red, mucha green
![Page 31: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/31.jpg)
Send-event (master poll)
![Page 32: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/32.jpg)
Blue are radio wakeups
![Page 33: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/33.jpg)
Static power draw
![Page 34: Cc1350lp deadleaf power consumption characterization](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062522/58a399d41a28abb1348b5929/html5/thumbnails/37.jpg)
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