Forum: Mikrocontroller und Digitale Elektronik Microcontroller mit langer Akkulaufzeit


von Josef S. (banana_joe)


Lesenswert?

Hallo,

ich bin kompletter Neueinsteger auf dem Mikrokontroller Gebiet. Mir ist 
aber die Tage ein Idee für ein Gerät gekommen, welches ich in der Arbeit 
gut brauchen könnte.

Der Controller müsste über einen langen Zeitraum (2-5 Jahre) wöchentlich 
einen Wert über einen Sensor erfassen und diesen dann Drahtlos an ein 
anderes Gerät senden. Allerdings muss das Gerät mit einer Batterie 
betrieben werden, weil kein Stromanschluss vorhanden ist. Welches ist 
der sparsamste Microcontroller und ist es möglich, dass sich dieser 
einmal pro Woche selbst startet und den Sensorwert überträgt?

von MaWin (Gast)


Lesenswert?

Es gibt eine Reihe, die im Schlafzustand weniger Strom brauchen als die 
Batterie an Selbstentladung hat. Bei Microchip heissen die uC picoPower, 
AVR wie Attimy441 wären wohl ausreichend.
Der uC hängt direkt an der (Lithium) batterie, der Sensor und Funkmodul 
wäre abgeschaltet.
Wenn die wöchentliche Zeit genau sein muss, muss der uC mit einem 
32768Hz Uhrenquartz laufen, sonst reicht ein RC Oszillator Watchdog.
Wenn die Sensoren oder Funkmodule exakte Spannungen benötigen, müssten 
nocb abschaltvare Spannungswandler dazwischen, es lohnt sich also solche 
Dinger zu finden die mit schwankender Batteriespannung zurecht kommen.

von dummschwaetzer (Gast)


Lesenswert?

>sparsamste Microcontroller
MSP430
>einmal pro Woche selbst startet
nein, der ist immer an, aber im sleep, das eine mal pro woche wacht er 
auf

von bla (Gast)


Lesenswert?

-> EFM8: Lowest sleep current using internal RTC and supply brownout (< 
300 nA) (siehe auch https://jaycarlson.net/pf/silicon-labs-efm8/)
-> EFM32: 0.9 µA deep sleep mode, including RTC

-> MSP430

von bla (Gast)


Lesenswert?

Etwas genauer: eine CR2032 hat 240mAh und (kleiner) 2% Selbstentladung 
pro Jahr, also ca. 10% Selbstentladung auf 5 Jahre. Bleiben noch gute 
200mAh, oder 4,5µA über 5 Jahre. Dein wöchentliches Senden kannst du 
fast vernachlässigen, und einen Deep Sleep mit 4,5µA hat fast jeder 
moderne Mikrocontroller.

Wichtiger ist dass der Mikrocontroller tatsächlich den Löwenanteildes 
Stroms verbraucht, d.h. Low-Leakage-Kondensatoren, abschaltbare 
Spannungsteiler, abschaltbare externe Peripherie, Platine vor 
Feuchtigkeit und Dreck schützen.

von Sven (Gast)


Lesenswert?

Josef S. schrieb:
> über einen langen Zeitraum (2-5 Jahre)

Was würde dich daran hindern die Batterie einmal im Jahr zu tauschen? 
Also persönliche Erfahrung 2 Jahre könnte klappen aber 5 Jahre ganz ohne 
Wartung wird schwer. Was ist es für ein Sensor? Wie weit ist der 
Empfänger entfernt?
Drinnen oder Draußen? Industrie oder Wohnung?

von m.n. (Gast)


Lesenswert?

Die Frage nach dem sparsamsten µC kann man auch durch die Frage nach der 
größten, langlebigen Batterie ersetzen.
Es sind mindestens zwei Schrauben, an denen gedreht werden kann. Es sei 
denn, wir erfahren in den kommenden Tagen noch die Nebenbedingungen, die 
eine Lösung gänzlich verhindern ;-)

von Martin S. (strubi)


Lesenswert?

Josef S. schrieb:
> Welches ist
> der sparsamste Microcontroller und ist es möglich, dass sich dieser
> einmal pro Woche selbst startet und den Sensorwert überträgt?

Mit den CC430-Plattformen habe ich gute Erfahrungen gemacht, nur leider 
ist der offizielle TI-Stack ziemlich grottig. Die PanStamp-Module 
könntest du dir sonst noch anschauen, ich verwende deren Stack auf den 
CC430.

von bla (Gast)


Lesenswert?

Alternativansatz: ein TPL5110 mit 35nA 
(http://www.ti.com/product/tpl5110/description) der einen 
Microcontroller deiner Wahl periodisch anschaltet. BRaucht 
nichtflüchtigen Speicher, da der TPL nur max. 2 Stunden Periodendauer 
kann.

von Peter D. (peda)


Lesenswert?

Josef S. schrieb:
> Welches ist
> der sparsamste Microcontroller

Der MC ist vollkommen schnurz.
Z.B. ein ATmega48 kann sich selber mit einen Uhrenquarz aufwecken und 
verbraucht in den Pausen <1µA.
Entscheidend ist aber, was der Sensor und der Sender verbrauchen und wie 
oft und lange sie eingeschaltet werden müssen.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Der MC ist vollkommen schnurz.

Im 8bit Umfeld ist es in der Tat einfach, µC mit weniger als 2µA 
Stromaufnahme bei einem laufenden Timer zu finden. Der µC könnte die 
Stromzufuhr zu den anderen Teilen in den Ruhepausen mittels MOSFET 
unterbrechen (hierbei auf dessen Leckstrom achten).

Im 32bit Umfeld sieht es schon ganz anders aus. Der ESP32 nimmt zum 
Beispiel ca. 25µA auf und der beliebte STM32F103C8T6 nimmt etwa 20µA 
auf. STM verweist für solche Anwednungen auf die besser geeignete 
L-Serie.

CR2032 Batterien eignen sich nur sehr bedingt zum Betrieb von 
Funkmodulen, da sie nur sehr wenige mA Strom liefern können. Besser 
eignet sich ein Pack mit drei LR44 (=AG13) Batterien. Aber Achtung, die 
gibt es in unterschiedlichen Ausführungen, nicht alle sind lange 
haltbar.

Mein persönlicher Favorit für solche kleinen Aufgaben ist der ATTiny13A.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> CR2032 Batterien eignen sich nur sehr bedingt zum Betrieb von
> Funkmodulen, da sie nur sehr wenige mA Strom liefern können. Besser
> eignet sich ein Pack mit drei LR44 (=AG13) Batterien.

Es gibt ja auch noch "richtige" Li-Primaerzellen.
Damit sind auch 10 Jahre kein Problem, wenn da nicht
vorher schon der Rost zuschlaegt.

Von besonders "klein" steht nirgendwo was.

Mit MSP430 oder PICkels mit nanoWatt-Bempel geht es wohl am einfachsten.

Ein 16LF819 kommt z.B. bei 30 kHz Takt und 1.5 V auf gemessene 2 uA.
Da koennte er ueber die Woche noch Pi ausrechnen...
Im Powerdown werden bei 2 V typisch 100 nA im Datenblatt genannt.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

P.S.:

Wie schon richtig bemerkt wurde, ist der Controller nur die halbe Miete.

Der Rest der Schaltung muss da auch mitspielen.
Und damit ist das eigentlich kein Anfaengerprojekt.

von transparenter Flachtroll (Gast)


Lesenswert?

Fuer Neueinsteiger ist ein Lowpower Design nicht machbar. Lowpower ist 
eine spezielle Disziplin, beginnt schon vor der Konzetion, vor der 
Beschaffung der Teile.
Ein duemmlicher 1M Pullup laesst schon 3uA runter, ohne etwas zu machen.
Die Software ist auch nicht trivial.

Ich wuerd mal mit etwas einfacherem beginnen. zB einer LED blinken 
lassen.

von Der Andere (Gast)


Lesenswert?

Sven schrieb:
> Also persönliche Erfahrung 2 Jahre könnte klappen aber 5 Jahre ganz ohne
> Wartung wird schwer.

Das widerlegt praktisch jeder moderne Feuermelder.

von Hugo (Gast)


Lesenswert?

Der Andere schrieb:
> Sven schrieb:
>> Also persönliche Erfahrung 2 Jahre könnte klappen aber 5 Jahre ganz ohne
>> Wartung wird schwer.
>
> Das widerlegt praktisch jeder moderne Feuermelder.

Wird auch schwer, einem simplen Taster nach 5 Jahren die Funktion 
abzugewöhnen ;-)

Was du sicherlich meinst, sind Rauchmelder :-)

von Oliver J. (skriptkiddy)


Lesenswert?

Hier mal ne "Nähkästchenplauderei" zur Größenordnung was mit einem 
Wald-und-Wiesen-AVR machbar ist:

Ich hab für einen Geocache vor ca. 3,5 Jahren einen Attiny13 und einen 
Attiny2313 mit Litiumzellen im Wald ausgesetzt. Die erfreuen sich heute 
noch immer bester Gesundheit. Liegen die meiste Zeit im tiefsten 
Schalfmodus und werden über Reset aufgeweckt, verrichten dann, wenn 
benötigt, kurz ihren Dienst und gehen wieder schlafen.

Es hat zur Entwicklungszeit richtig Spaß gemacht die Schaltungen auf ein 
Minimum an Stromverbrauch zu trimmen, aber es ist nicht ganz trivial.

Meiner Erfahrung nach muss man bei solchen Sachen immer den 
Gesamtverbrauch der Schaltung im Auge haben, denn was nützt einem ein 
µC, der keinen Strom braucht, wenn die Schaltung drumherum die Batterie 
leerzieht. ;)

Beim µC gilt im allgemeinen: "alles abschalten was nicht gebraucht 
wird". Beim AVR ist das einfach zu machen. Schätze, dass man da bei 
einem STM32 aber schon nicht mehr so leicht davonkommt, wenn man so 
etwas vor hat.

Grüße Oliver

von Falk B. (falk)


Lesenswert?

@ Oliver Ju. (skriptkiddy)

>Ich hab für einen Geocache vor ca. 3,5 Jahren einen Attiny13 und einen
>Attiny2313 mit Litiumzellen im Wald ausgesetzt.

Hänsel und Gretel meets Silicon Valley ;-)

von Oliver J. (skriptkiddy)


Lesenswert?

Falk B. schrieb:
> Hänsel und Gretel meets Silicon Valley ;-)

Ja genau :D

von Jacko (Gast)


Lesenswert?

Die "Nähkästchenplauderei" von  Oliver Ju. (skriptkiddy)
lässt hoffen, dass sein Cache 5, oder mehr Jahre aktiv bleibt.
Wo liegt er?

Wenn der µC 1 mal pro Woche von selbst aktiv werden soll,
wird es aber kaum ohne den WD-Timer im TinyXX gehen:
4 µA Grundlast bei 3 V.

Alle 8 s wird der Wochen-Timer hochgezählt:
Etwa 0,25 mA für < 1 ms macht im Mittel
250 µA * (1 ms / 8000 ms) zusätzliche 0,03 µA. (Forget it...)

Die wöchentliche Aktion:
Da muss ich raten - sagen wir mal 10 mA für 1 Minute, oder
20 mA für 30 s...
Eine Woche hat 10.080 Minuten, also im Mittel
10.000 µA / 10.800 = 1 µA

Nehmen wir die CR2032 mit 200 mAh = 200.000 µAh,
kommen wir auf 200.000 µAh / 5 µA = 40.000 h.
Das sind > 4 Jahre, wenn die Peripherie WIRKLICH
stromlos (< 0,1 µA) geschaltet ist.

Mit einer CR2450 (500 mAh) sind noch Reserven drin!

von Stefan (Gast)


Lesenswert?

Interessant wäre auch die MSP430FR58xx oder FR59xx Serie.

von transparenter Flachtroll (Gast)


Lesenswert?

Wenn man das Letzte rausholen will nimmt man einen externe RTC, zB eine 
DS1302, DS1305, DS1306 oder aehnlich. Deren Verbrauch liegt bei 0.2 uA.

von Hurra (Gast)


Lesenswert?

Es gehen, wie bemerkt, schon viele.Aber eine Serie kann ich bedenkenlos 
empfehlen: PIC24 mit XLP. Weil ich damit schon einige Ultra-Low-Power 
Dinge umgesetzt habe.

Beispiel1:
Meine Außensensor für die Wetterstation läuft seit ich sie 
fertiggestellt habe auf dem gleichen Satz Batterie. Es sind 3xAA.
Das sind im Januar 3 Jahre.
Ich verwende einen PIC24FJ128GC006.
Hier laufen: RTCC, Funkmodulprotokoll, kapazitive Feuchtemessung, 
Temperaturmessung, man kann ihn über Funk booten.

Beispiel2:
Ein anderes Projekt ist eine Temperaturanzeige. Die läuft auf 1xAA mit 
Step-Up und rennt etwa 1 Jahr, bei permanent aktivem Display. Da ist ein 
PIC24F32KA304 drin.
Der Hauptstromverbraucher ist hier, und dass der PIC zu 100% laufen muss 
- er läuft auf 31,5kHz, um das Display zu treiben (passives LCD). Und 
dass die 3V3 per Step-Up-Wandler erzeugt werden müssen.

Der "Trick" in beiden Fällen ist, dass der PIC sämtliche Peripherie über 
Ports wegschaltet.
Der Spannungsregler ist ein TPS709, der Step-Up der Temperaturanzeige 
ein MCP16251.

von Olaf (Gast)


Lesenswert?

> Es gehen, wie bemerkt, schon viele.

Lowpower ist in den letzten Jahren sehr in Mode gekommen. Ich glaube 
nicht das es noch einen Hersteller gibt der sowas nicht im Programm hat.

Grundsaetzlich sind die Wuensche des OPs problemlos umsetzbar, mit der 
Einschraenkung das er nicht alles an Daten fuer eine sinnvolle Antwort 
bereitstellt.

Allerdings LowPower ist auch eine Sache die Erfahrung braucht. Es setzt 
korrektes Systemdesign, eine darauf optimierte Hardware und ebenfalls 
viele Softwaretricks voraus. Mit anderen Worten es ist etwas das Spass 
macht. :)

Ausserdem wuerde ich sagen das man jederzeit die Energieaufnahme jeder 
beliebigen Schaltung nochmal um den Faktor 10 vermindern kann wenn man 
bereit ist einen ebensolchen Faktor in der Entwicklungszeit und dem 
Bauteilaufwand zu investieren. Und das auch gerne in mehreren 
Iterationsschritten. Man muss sich aber irgendwann Fragen ob es jetzt 
nicht genug ist weil sonst das Projekt zu teuer wird. Auch dazu gehoert 
Erfahrung.

Olaf

von m.n. (Gast)


Lesenswert?

Jacko schrieb:
> Mit einer CR2450 (500 mAh) sind noch Reserven drin!

Der Sensor braucht allerdings 12 V @ 0,1 A. Da reicht die CR2450 nicht 
aus.

von Olaf (Gast)


Lesenswert?

> Der Sensor braucht allerdings 12 V @ 0,1 A. Da reicht die CR2450 nicht
> aus.

Dann sitzt wie so oft das Problem vor der Tastatur. Ich versorge einen 
Sensor der 10V/150mA braucht und hab dafuer nur 3.5mA zur Verfuegung. 
Und? Elko regelt .-)

Olaf

von Brummbär (Gast)


Lesenswert?

Auch eine Geschichte aus dem Nähkästchen. Für einige eventuell auch eine 
Gruselgeschichte mit dem verhassten Arduino.

Ich haben einen Temperatur/Feuchte/Luftdruck-Sensor mit einem ARV 
(Mega32u4) plus CC1101 und einer 3,6V-Lithium-Batterie (AA) seit knapp 3 
Jahren am Laufen. Der AVR schläft ca 5 Minuten, wacht auf, schaltet alle 
Sensoren ein und sendet dann seine Messwerte an einen FHEM mit 
Homematic-USB-Stick. Anschließend wird wieder alles schlafen gelegt.

Ich habe keine Ahnung, wann ich die Batterie wechseln muss. Es könnte 
aber noch einige Jahre dauern. Die Spannung der Zelle liegt zumindest, 
wie bei der Inbetriebnahme, immer noch bei 3,6V.

Probleme hatte ich mit "normalen" Batterien (2x 1,5V mehr Platz war 
nicht vorhanden). Damit der komplette Sensor seine 3,3V bekommt, hatte 
ich (naiver weise) einen Spannungswandler eingesetz. Die Batterien waren 
dabei bereits nach zwei Monaten leer. Schuld war der Spannungswandler, 
der jetzt nicht mehr vorhanden ist.

von Mark W. (kram) Benutzerseite


Lesenswert?

Also als Anfaenger wuerde ich Dir die Simblee Module empfehlen. Die 
sollen sich auch mit der Arduion IDE programmieren lassen.

von flip (Gast)


Lesenswert?

ambiq apollo ist sehr gut.

von Jacko (Gast)


Lesenswert?

Noch schnell, bevor es nach einem schönen Weihnachts-Abend in's
Bett geht:

Den TO scheint's ja nicht zu interessieren, aber vielleicht den
einen oder anderen Low-Power-Bastler/Entwickler:

Die Lösungsvorschläge mit RTC und nur einige 100 nA sind nett
gedacht, bewirken aber nach der gewüschten Woche NICHTS.

Diese 0,x µA für eine RTC DS13xx sind für den Time-Keeping-Fall
zu sehen: Da läuft die RTC weiter, rückt und rührt sich aber
sonst nicht. Auch der µC schläft tief, es fließt nicht viel Strom,
aber der Termin nach einer Woche wird einfach VERSCHLAFEN!

Ich hatte in meinem vorigen Beitrag ein Beispiel für die AT-Tiny-
Familie mit ca. 4 µA genannt, um garantiert nach ungefähr (!) einer
Woche aktiv zu werden.

Also würde ich doch mal die PIC und ... Freunde fragen, wie das
mit typischen Verbrauchseigenschaften (Datenblatt!) ihres
Lieblings-µCs (eventuell in Kombination mit einer RTC) zu
realisieren wäre.

- Schaffen die es mit < 4 µA Grundlast, automatisch jede Woche
  eine Aktion anzuleiern?

- Vielleicht würde ich mich dann ja mal umorientieren...

Aber erstmal Gute Nacht!

von (prx) A. K. (prx)


Lesenswert?

Jacko schrieb:
> Auch der µC schläft tief, es fließt nicht viel Strom,
> aber der Termin nach einer Woche wird einfach VERSCHLAFEN!

Es gibt nicht nur einfache RTCs wie DS1302, die nur Zeit/Datum liefern, 
sondern auch welche mit programmierbarer Weckzeit und Interrupt-Ausgang, 
wie die ebenfalls genannten DS1305/6.

Ob sich das lohnt ist eine andere Frage. Wenn man mehr Leistung braucht 
als ein sehr sparsamer 8/16-Bitter liefert, und den µC deshalb die 
übrige Zeit hardwareseitig komplett abschaltet beispielsweise.

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> - Schaffen die es mit < 4 µA Grundlast, automatisch jede Woche
>   eine Aktion anzuleiern?

Ach kleiner. Ein EFM32 der von seinem internem Backup Realtime Counter 
aufgeweckt wird braucht in der Wartezeit 0.5uA.

Alles ueber einem 1uA ist doch totale Verschwendung. :-D

Olaf

von Olaf (Gast)


Lesenswert?

Man sollte sich im uebrigen mal klar machen, ein Strom von 1uA fliesst 
bereits in einem Widerstand von 3MOhm. Wenn man in diese Bereiche kommen 
will dann braucht man bereits sehr gut durchdachte weil hochohmige 
Hardware und man sollte sein Board auch ordentlich putzen.

Olaf

von Johannes S. (Gast)


Lesenswert?

Olaf schrieb:
> Man sollte sich im uebrigen mal klar machen, ein Strom von 1uA fliesst
> bereits in einem Widerstand von 3MOhm.

Aber auch nur wenn der R zwischen + und GND liegt, durch einen PullUp an 
einem hochohmigen Eingang fließt kaum was.

Jacko schrieb:
> Also würde ich doch mal die PIC und ... Freunde fragen, wie das
> mit typischen Verbrauchseigenschaften (Datenblatt!) ihres
> Lieblings-µCs (eventuell in Kombination mit einer RTC) zu
> realisieren wäre.

Ich habe etwas ähnliches gebaut mit einem LPC812 (Cortex-M0) und RFM69 
868MHz Funkmodul. Im DeepPowerDown Modus brauchen die zusammen etwa 0,5 
µA, geweckt wird per HW Signal von einem PIR Sensor, der frisst 
allerdings unverschämte 50 µA und deshalb läuft das mit 2x AA Batterien.
Die LPC haben aber auch einen Self WakeUp Timer, einen 32 Bit Zähler der 
von einem internen low power 10 kHz Oszillator getaktet werden kann. In 
dem Fall braucht der LPC 1 µA lt. Datenblatt. Mit 10 kHz und 32 Bit 
Zähler kommt man auf knapp 5 Tage bis zum Wecken. Diser 10 kHz Takt ist 
allerdings stark Temperaturabhängig, eine präzise Weckzeit bekommt man 
damit nicht hin.
Im Normalbetrieb ohne PLL braucht der LPC812 1 mA @ 12 MHz. Per SW kann 
man den Takt noch runterteilen oder per PLL auf 30 MHz hochschrauben.

Ich habe schon einige Erfahrung mit µCs, das war aber auch die erste 
Anwendung mit Optimierung für Batteriebetrieb. Da muss man dann ein paar 
neue Kapitel im Datenlatt lesen, die Kapitel die man sonst gerne 
überspringt. Mit Application Notes der Hersteller oder Beispielen aus 
dem Netz geht das aber ganz gut.
Etwas nickelig war das Funkmodul, wenn der LPC im DeepPowerDown schläft 
dann floaten die IOs. Das hat das RFM69 Modul mit erhöhtem 
Stromverbrauch bestraft und ich musste nachträglich PullUps an die SPI 
Leitungen löten.

von Jacko (Gast)


Lesenswert?

OK, DS1305 / 1306 könnten mit < 1 µA die Wartefunktion
übernehmen, während ein µC mit < 0,5 µA tief schläft.
Damit wären in 5 Jahren nur 1/3 von 200 mAh gefordert.

Super! - WENN man diese Bauteile auch in Kleinmengen zu
einem halbwegs annehmbaren Preis kaufen könnte.
Alabibi hat nicht mal Interesse, ein Fake anzubieten...

von Jacko (Gast)


Lesenswert?

Der LPC81x mit 1 µA im Self-Wakeup-Mode könnte aber einen
DS1307 mit 0,5 µA im Battery-Backup-Mode nach der genauen Zeit
fragen.

Nicht schlecht!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.