Low Power RF Wandschalter (1) – Stromverbrauch
4. September, 2014 in: Elektronik, TutorialsAls erstes wollte ich überprüfen, ob meine Auswahl der Bauteile überhaupt die geforderte Laufzeit von über 2 Jahren an einer Batterie auch erreichen kann, daher baute ich grob die Schaltung auf einem Steckbrett auf. Bestehend aus einem ATmega328p mit 16Mhz Quarz und Minimalbeschaltung, verbunden mit dem RFM12B über SPI. Mit Spannung versorgt wurde das ganze über eine 3V Knopfzelle, da die spätere Schaltung mit 3,3V Laufen sollte und ich in der neuen Wohnung noch kein Netzteil am Schreibtisch parat hatte 😉
Meine Anwendung soll mit einem oder zwei Eneloop NiMH Akkus von Sanyo laufen, diese bieten ein sehr geringe Selbstentladung über eine längere Laufzeit. Ein Akku in der Größe AA bietet bei einer Spannung von 1,2V eine Mindestkapazität von 1900mAh. Laut Sanyo beträgt die Akkukapazität nach 5 Jahren noch mindestens 70% der ursprünglichen Kapazität. Ich gehe also von etwa 1330mAh pro Akku aus. Da die Schaltung nicht mit 2,4V funktioniert benötige ich einen Step Up Wandler, der mir daraus 3,3V wandelt.
Nach kurzer Recherche fand ich den MAX1724, der ab 0,8V funktioniert und bei einer Eingangsspannung von 2,4V und einem Ausgangsstrom von 10µA einen Wirkungsgrad von >60% erreicht. Steigt die Stromaufnahme auf über 200µA erhöht sich der Wirkungsgrad bereits auf über 80%.
Rechnet man mit einem Wirkungsgrad des Wandlers von 60% und einer Laufzeit von 2 Jahren erhält man einen Strom von etwa 33µA. Die gesamte Schaltung darf also im Durchschnitt nicht mehr als 33µA Strom aufnehmen um die 2 Jahre Mindestlaufzeit zu erreichen.
Laut Datenblatte des ATmega328p sollte es möglich sein die Stromaufnahme im PowerDown Mode mit aktivem Watchdog auf <5µA zu bringen. Das RFM12B Funkmodul benötigt laut Datenblatt im Standby Modus nur 0,3µA. Sollte also zu schaffen sein 😉
Als erstes setzte ich die Fuses des Atmega328p, sodass dieser mithilfe des externen Quarzes auf 16MHz läuft, die Stromaufnahme der gesamten Schaltung (inkl. Pullup Widerstände, RFM12B, Schieberegister, Mikrocontroller, Spannungswandler) betrug aus den 2 Eneloops (2,4V) ziemlich genau 7mA.
Für die Ansteuerung des RFM12B habe ich einfach die Library von LowPowerLab genutzt. Diese war sehr schnell eingebunden und das RFM12B in den Sleepmode versetzt. Die Stromaufnahme sank um 1mA auf 6mA.
Als nächstes legte ich den Atmega in den PowerDown Mode, stellte die meiste Peripherie ab und deaktivierte die BrownOut Detection. Das ganze ist hier schön ausführlich beschrieben: Sparkfun Tutorial: Adventures in Low Power Land. Mithilfe der Einstellungen viel die Stromaufnahme (der gesamten Schaltung) drastisch auf 5-8µA (Anzeige schwankt). Als Messgerät verwendete ich das gleiche wie im Tutorial von Sparkfun, bleibt zu hoffen, dass meines genauso gut kalibriert ist 😉
Fazit: Insgesamt war ich positiv überrascht von der geringen Stromaufnahme. Meine angepeilten 33µA für eine Batterielaufzeit von 2 Jahren wurden deutlich unterschritten, sodass eine Laufzeit von >10 Jahren theoretisch möglich ist. Ich verbuche das mal als Erfolg 😉