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?
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.
>sparsamste Microcontroller MSP430 >einmal pro Woche selbst startet nein, der ist immer an, aber im sleep, das eine mal pro woche wacht er auf
-> 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
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.
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?
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 ;-)
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.
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.
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
> 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.
:
Bearbeitet durch User
> 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.
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.
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.
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.
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 :-)
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
@ 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 ;-)
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!
Interessant wäre auch die MSP430FR58xx oder FR59xx Serie.
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.
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.
> 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
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.
> 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
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.
Also als Anfaenger wuerde ich Dir die Simblee Module empfehlen. Die sollen sich auch mit der Arduion IDE programmieren lassen.
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!
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
> - 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
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
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.