Hi, ich möchte flexibel zeitgesteuert einen uC komplett von der Spannungsversorgung trennen. Das Problem hatten schon andere und das wurde hier ausgiebig diskutiert: Beitrag "Zeitgesteuertes Schalten eines Verbrauchers ohne Mikrocontroller" Die Lösung dort war, entweder einen ATTiny zu bentzen oder einen Uhrenbaustein. Der Baustein wäre die von mir bevorzugte Lösung. Leider kenn ich mich in der Materie nicht gut aus. Meine Frage: welcher Baustein ist geeignet? Anforderung: - per I2C muss die Wartezeit eingestellt werden können (entweder schlafe <x> Sekunden oder schlafe bis <Datum, Uhrzeit> - Schaltausgang für einen MOSFET - geringer Stromverbrauch Optional: - Eingang zum aufwecken Ideal wäre ein Breakout-board, weil das auch von Laien verdrahtet werden soll. Danke!
Markus M. schrieb: > ... entweder einen ATTiny zu bentzen oder einen > Uhrenbaustein. Der Baustein wäre die von mir bevorzugte Lösung. > Meine Frage: welcher Baustein ist geeignet? > > - geringer Stromverbrauch Den hat jede RTC. > - per I2C muss die Wartezeit eingestellt werden können (entweder schlafe > <x> Sekunden oder schlafe bis <Datum, Uhrzeit> Das zweite hat jede RTC mit Weckfunktion. Das erste ist trivial auf das zweite zurückzuführen. > - Schaltausgang für einen MOSFET Der Schaltausgang ist typischerweise ein open-drain oder open-collector Ausgang (hochohmig wenn inaktiv). Je nachdem was und wie du schalten willst, muß da noch etwas Elektronik dazwischen. > Optional: > - Eingang zum aufwecken Typischerweise "wacht" eine RTC auf, wenn die normale Stromversorgung anliegt. Dann ist sie auch per I²C ansprechbar. Wenn die Stromversorgung aus ist, läuft sie dann aus Batterie/Akku/Goldcap bei minimalem Stromverbrauch weiter. > Ideal wäre ein Breakout-board, weil das auch von Laien verdrahtet > werden soll. Mittlerweile ein Klassiker sind die DS3231 Boards vom Chinamann. Gibt es wahlweise bei Ali-Express, ebay, Amazon.
DS3231 wäre eine Option, kannst einen Alarm setzen und dann über dein _INT_/SQW Pin aufwecken (Interrupt auf fallende Flanke/ low und nen Pullup dran oder den Internen vom µC nutzen). Problem ist dass bei einigen Breakout boards der Pin nicht auf den Pfostenstecker geführt wird (zumindest bei denen die ich habe), dafür aber noch eine Pfosten unbenutzt ist.
:
Bearbeitet durch User
Übliche RTCs erfüllen Dir Deine gewünschten Anforderungen. Sie sind oft auch sparsamer als ein Mikrocontroller. Manche haben sogar einen Quarz eingebaut. Die meisten haben EINEN Schaltausgang. Der wird aber üblicherweise dazu verwendet, einen µP aufzuwecken. Der kann aber seinerseits dann alles Mögliche tun. Also auch ein Relais schalten. Intern sehen die Teile oft folgendermaßen aus: Eine Uhr. Achtung: Die musst DU stellen, da die hellseherischen Fähigkeiten gering sind. Auch ist alle paar Monate eine Korrektur nötig. Ein Wecker. Der ist, wie die Uhr von Dir zu programmieren und kann zu JEDEM gewünschten Zeitpunkt, den µP wecken bzw. den Schaltausgang, meist ein offener Kollektor, "betätigen". Die Meisten können nicht "in 10 Minuten" wecken, sondern nur genau um: Tag+Monat+Jahr+Stunden+Minuten+Sekunden. D.h. nach jedem Wecken, ist der Wecker neu zu programmieren. Ich kenne aber nicht alle. Außenbeschaltung: 2 Pins Versorgung (Normale Versorgung und 2 Pins Quarz (falls nicht eingebaut) Achtung: Meist ein 32KHz Uhrenquarz. Der µP braucht weiterhin seinen eigenen Quarz, meist im MHz Bereich. 2 Pins I2C 1 Pin Akku/HiCab/Solarzelle oder so. Manchmal auch zwei Pins (+/-) 1 Pin Schaltausgang. Häufig offener Kollektor. ev. 1 Pin Takt Ausgang. Ob und wie der zu nutzen ist, hängt vom jeweiligen µP ab. Oder so. Also ist ein Stand-Alone ohne jeden Kontakt zur Außenwelt nicht möglich, da die Uhr gelegentlich gestellt werden muss. Der Wecker kann nach jedem "Auslösen" vom µP gestellt werden, bevor dieser ins Bettchen hüpft.
:
Bearbeitet durch User
Markus M. schrieb: > Die Lösung dort war, entweder einen ATTiny zu bentzen oder einen > Uhrenbaustein. Der Baustein wäre die von mir bevorzugte Lösung. Markus M. schrieb: > Anforderung: > - per I2C muss die Wartezeit eingestellt werden können (entweder schlafe > <x> Sekunden oder schlafe bis <Datum, Uhrzeit> Die beiden Aussagen passen nicht zusammen. Wenn der Uhrenbaustein I2C hat, wie willst du ihn ohne µC bedienen? Ich jedenfalls habe keinen I2C-Anschluss am PC oder am Android-Teil.
Danke an alle! Der DS3231 ist das, was ich gesucht habe. @HildeK: ich will den nicht ohne uC bedienen. Der uC sagt dem DS3231 per I2C wann er wieder geweckt werden will und schaltet sich dann selber ab (über einen MOSFET). Der DS3231 läuft mit Batterie weiter bis zum Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel beginnt von neuem.
Markus M. schrieb: > ich möchte flexibel zeitgesteuert einen uC komplett von der > Spannungsversorgung trennen. Markus M. schrieb: > Der DS3231 läuft mit Batterie weiter bis zum > Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel > beginnt von neuem. ohne Spannung? ein schlafender µC muss doch nicht von der Spannung getrennt werden! Ich verstehe den Sinn da nicht!
Irgendwie ist das ziemlich matschig. Üblicherweise schaltet man einen µP nicht ab, sondern schickt ihn in den sleep mode. Wie soll er denn sonst auch wieder aufwachen? Nur weil ein Pin wackelt? Nicht nur "ohne Moos nichts los" sondern auch ohne Spannung. Den Gedanken solltest Du auch nicht unter den Tisch plumpsen lassen, da Dein Relais auch im Schlaf angezogen sein soll. Oder etwa nicht.
HildeK schrieb: > Ich jedenfalls habe keinen I2C-Anschluss am PC Ich kenne so gut wie keinen PC der KEINEN i2c Ausgang hat. ? Gut, meist nur als THT auf dem Board. Und mit etwas Glück sogar auf zwei Pins rausgeführt. Und in der "Neuzeit" meist nur 1v8. Aaaaaaber da sind se in 99% auf dem Mainboard irgendwo.
Wer unbedingt I2C am PC betreiben will: Dafür gibt es Schnittstellen. Einfach mal nach "I2C USB" gurgeln. Gibt es in verschiedenen Variationen.
Joachim B. schrieb: > Markus M. schrieb: >> Der DS3231 läuft mit Batterie weiter bis zum >> Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel >> beginnt von neuem. > > ohne Spannung? > ein schlafender µC muss doch nicht von der Spannung getrennt werden! Er muß nicht. Man kann es aber so bauen. Sebastian S. schrieb: > Üblicherweise schaltet man einen µP nicht ab, sondern schickt ihn in den > sleep mode. Richtig. "Üblicherweise". Das heißt aber nicht, daß man es nicht anders machen könnte. > Wie soll er denn sonst auch wieder aufwachen? Nur weil ein Pin wackelt? Da hast du dich wohl ver-formuliert. Denn tatsächlich ist "am Pin wackeln" die übliche Methode, einen µC aufzuwecken. Genausogut kann man ihm aber den Strom auch ganz abschalten und ihn dadurch wecken, daß man den Strom wieder anschaltet. Ob abgeschaltet oder im deep sleep, das tut sich nicht viel. Der µC macht jeweils nichts. Deep sleep hat ganz offensichtlich den Vorteil, daß alle Variablen erhalten bleiben. Aber wenn man das gar nicht braucht ...
Rene K. schrieb: > Ich kenne so gut wie keinen PC der KEINEN i2c Ausgang hat. ? Gut, meist > nur als THT auf dem Board. Ich schrieb am PC, nicht im PC. Intern gibt es vieles, worauf ich extern keinen HW-Zugriff habe. Und: I2C ist auch nicht gedacht für die Kommunikation nach extern. Aber ich habe dein Smiley gesehen ... Markus M. schrieb: > @HildeK: ich will den nicht ohne uC bedienen. Der uC sagt dem DS3231 per > I2C wann er wieder geweckt werden will und schaltet sich dann selber ab > (über einen MOSFET). Der DS3231 läuft mit Batterie weiter bis zum > Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel > beginnt von neuem. Ok. Hatte ich so nicht verstanden. Aber dann wäre meine erste Wahl auch der Deep Sleep, bzw. sie war es vor zwei Jahren: Tiny861, DS3231-Modul (billig, Fake-DS3231), betrieben mit 3 AA-Zellen. Der RTC weckte täglich einmal den µC (INT0-IRQ), der schaut im EEPROM des Moduls nach, ob ein Alarm für den aktuellen Tag ansteht (2-4/Woche) und lässt ggf. ein oder zwei LEDs aufblitzen - bis es quittiert wird. Das kann auch mal Stunden dauern. Selbst die Pausen bei den LED-Blitzen werden über den Tiefschlaf überbrückt. Das Ganze läuft nun seit Beginn mit dem damals bereits angebrauchten Batteriesatz. An den INT0 habe ich über eine Diode den Quittungstaster mit angeschlossen, das wäre wäre auch für für dein Vorhaben der optionale "Eingang zum aufwecken". Siehe Beitrag "Re: Mülltonnen-Blinker" Ohne Alarm resp. ohne LED-Betrieb (bei dir ist es nur die MOSFET-Ansteuerung) und ohne Tastendruck, nur Tiny und RTC, benötigt die Anordnung nach meiner Hochrechnung keine 30mAh pro Jahr (3µA Stromaufnahme - die Modulbatterie des 3231 habe ich durch einen GoldCap ersetzt). Wenn man die RTC-Modulbatterie weiter nutzt, dann bleiben noch ein Rest für den schlafenden µC von deutlich unter 1µA! Das ist viel weniger sein als die Selbstentladung der Zellen. Schon die Beschaltung für den Power-Schalter, den du suchst, wird nur mit Anstrengung in den Bereich kommen.
Nachtrag: Der Tranistortester im Unterforum "Projekte und Code" nutzt eine Schaltung ähnlicher Art. Dort wird mit Taste aufgeweckt (müsste dein Alarmausgang übernehmen) und nach getaner Arbeit schaltet sich der µC selbst ab. In dem Beitrag ist ein Schaltplan veröffentlicht (u.a.).
HildeK schrieb: > Aber dann wäre meine erste Wahl auch der Deep Sleep, bzw. sie war es vor > zwei Jahren: ... > Siehe Beitrag "Re: Mülltonnen-Blinker" Der Mülltonnenblinker ist ein gutes Beispiel für eine Anwendung, wo man den µC genausogut komplett abschalten könnte statt ihn nur in den deep sleep zu schicken. Wenn für den aktuellen Tag kein Alarm ansteht oder wenn der Alarm quittiert wurde, gibt es nichts, was sich der µC bis zum nächsten Alarm merken müßte. Wie sinnvoll das ist, steht natürlich auf einem anderen Blatt. Die 3µA die du für den deep sleep gemessen hat, dürften geringer sein als die Selbstentladung der Batterien. Ganz zu schweigen von der (mittleren) Stromaufnahme, wenn eine LED blinkt.
Axel S. schrieb: > Joachim B. schrieb: >> Markus M. schrieb: >>> Der DS3231 läuft mit Batterie weiter bis zum >>> Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel >>> beginnt von neuem. >> >> ohne Spannung? >> ein schlafender µC muss doch nicht von der Spannung getrennt werden! > > Er muß nicht. Man kann es aber so bauen. wozu? um die Energie die der µC abgeschaltet beim Schlafen verbraucht HÄTTE beim Einschalten wieder zu benutzen? Das soll mal einer vorrechnen, der µC müsste auf der VCC getrennt werden die immer da sein muss, dazu einen Hi-Side Schalter, etwas Aufwand an Bauteile, das soll sparen?
Joachim B. schrieb: > Axel S. schrieb: >> Joachim B. schrieb: >>> Markus M. schrieb: >>>> Der DS3231 läuft mit Batterie weiter bis zum >>>> Alarmzeitpunkt - dann schaltet er den uC wieder ein und das Spiel >>>> beginnt von neuem. >>> >>> ohne Spannung? >>> ein schlafender µC muss doch nicht von der Spannung getrennt werden! >> >> Er muß nicht. Man kann es aber so bauen. > > wozu? Das ist die falsche Frage. Der TE wollte es so bauen. Und er kriegte jede Menge Antworten (wenn auch nicht exakt von dir) mit dem Tenor "das geht ja gar nicht". Doch, das geht. Wie sinnvoll es ist, ist eine andere Frage. > um die Energie die der µC abgeschaltet beim Schlafen verbraucht HÄTTE > beim Einschalten wieder zu benutzen? Warum sollte der µC beim Einschalten mehr Energie verbrauchen als beim Aufwachen? Das ist praktisch genau das gleiche. Sogar daß der µC erstmal darauf warten muß, daß sein Oszillator wieder läuft. > Das soll mal einer vorrechnen, der µC müsste auf der VCC getrennt werden > die immer da sein muss, dazu einen Hi-Side Schalter, etwas Aufwand an > Bauteile, das soll sparen? Einfaches Beispiel: eine Schaltung die an einem unzugänglichen Ort möglichst lange aus Batterien laufen muß. Wenn ein Batteriewechsel €10.000,- kostet (weil man - sagen wir mal - eine Bergungsaktion mit dem Hubschrauber dafür braucht) dann sind die Kosten für den extra H-Side Schalter total irrelevant. Aber ich wiederhole gerne nochmal, was ich schon gesagt habe: nein, ich halte das auch nicht für sinnvoll. Denn es gibt µC, die im deep sleep mit deutlich weniger als 1µA auskommen. Die weitaus meisten Batterien haben eine deutlich größere Selbstentladung. Und ein H-Side Schalter hat auch einen Leckstrom. Ein Laufzeitvorteil durch Abschalten gegenüber deep sleep wäre nur marginal oder evtl. auch gar nicht vorhanden.
Ich finde das spannend, das - insbesonders in diesem Forum - oft die grundsätzliche Sinnhaftigkeit der Aufgabe in Frage gestellt wird. Vor allem nachdem schon eine zufriedenstellende Antwort gefunden wurde. Ein bischen mehr Vetrauen in den OP. :) Also: der verwendete uC ist zu stromhungrig für den Dauerbetrieb und das leider auch im Deepsleep. Er läßt sich auch nicht mit vertretbarem Aufwand dazu erziehen. Alternativen zu diesem uC scheiden aus Kosten/Aufwandsgründen aus. Der Verlust des Speicherinhalts durch die Abschaltung stellt kein Problem dar.
Axel S. schrieb: > Wenn ein Batteriewechsel > €10.000,- kostet war mir klar! WENN, aber egal Axel S. schrieb: > Denn es gibt µC, die im deep sleep > mit deutlich weniger als 1µA auskommen. Die weitaus meisten Batterien > haben eine deutlich größere Selbstentladung. Und ein H-Side Schalter hat > auch einen Leckstrom und kostet Geld und ist Aufwand also sind wir uns auch einig Axel S. schrieb: > ich > halte das auch nicht für sinnvoll
ACHTUNG! Bei dem empfohlenen DS3231 und seinem Kollegen den DS3232 funktioniert das WakeUp bzw. der _INT nur wenn der DS323x aktive gepowert wird und nicht auf der Backup Batterie läuft. Es gibt auch noch andere Tücken die zu berücksichtigen sind, so lässt sich kein Monat und kein Jahr Programmieren, sondern nur ein Kalendertag oder ein Wochentag... hier ist also etwas Hirnschmalz in die Programmierung zu stecken... aber dafür gibt es ja Datenblätter, steht ja alles drin.
Tiefseeforscher schrieb: > ACHTUNG! Bei dem empfohlenen DS3231 und seinem Kollegen den DS3232 > funktioniert das WakeUp bzw. der _INT nur wenn der DS323x aktive > gepowert wird und nicht auf der Backup Batterie läuft. Das finde ich nicht im Datenblatt (Rev 7; 3/10 von Maxim). Kannst du das mal zeigen? Außerdem betreibt HildeK seine Version des Mülltonnenblinkers eben so. Er schaltet Vcc des DS3231 ab und läßt ihn vom Backup-Goldcap laufen. Trotzdem funktioniert bei ihm das Aufwecken des µC durch den DS3231.
Noch ein Hinweis an den TE: wenn du diese China-Module mit DS3231 und 24C32 EEPROM verbaust, dann achte darauf, daß die eine Diode in Reihe mit 200Ω zwischen Vcc und Vbat bestückt haben. Das mag für eine aufladbare Li-Knopfzelle a'la VL2032 passen, jedoch nicht für eine CR2032 Einwegzelle. Ich habe bei meinem Modul (für den Mülltonnenblinker ;) beide Bauteile entfernt. Dito die rote LED und ihren Vorwiderstand, die bei angelegter Vcc permanent leuchtet (Einschaltkontrolle). Der Mülltonnenblinker-Thread (von HildeK oben verlinkt) enthält noch mehr Hinweise zu diesem Modul.
Axel S. schrieb: > Er schaltet Vcc des DS3231 ab und läßt ihn vom Backup-Goldcap laufen. > Trotzdem funktioniert bei ihm das Aufwecken des µC durch den DS3231. Korrekt. Dass 'Tiefseeforscher' hier eine andere Erfahrung gemacht hat, mag daran liegen, dass auf dem Modul Pullups sind, die an VCC des Moduls hängen und nicht an der Backupbatterie! Die PUs hatte ich entfernt und beim dauerversorgten µC eingebaut. Auch das EEPROM hat an den Adressleitungen PUs, man sollte also nicht die Subadresse 0 nehmen. Ohne Modifikation ist es stromsparend nicht einsetzbar. Das fängt schon mit der LED an. Die genannten 3µA werden hauptsächlich vom DS3231 verbraucht, der µC braucht ca. 10-20mal weniger (Auflösungsgrenze meines Multimeters). Trotzdem: ein Satz AA mit ca. 2000mAh und den 3µA Standby (Sleep + RTC) rechnen sich zu mehr als 75 Jahre. Erstens erlebe ich das nicht mehr und zweitens ist die Mignonzelle längst selbstentladen und ausgelaufen. Markus M. schrieb: > Also: der verwendete uC ist zu stromhungrig für den Dauerbetrieb und das > leider auch im Deepsleep. Er läßt sich auch nicht mit vertretbarem > Aufwand dazu erziehen. Die Info fehlte bisher, denn dann hätten die Deep-Sleep-Vorschläge wegfallen können. Axel S. schrieb: > Noch ein Hinweis an den TE: wenn du diese China-Module mit DS3231 und > 24C32 EEPROM verbaust, dann achte darauf, daß die eine Diode in Reihe > mit 200Ω zwischen Vcc und Vbat bestückt haben. Das mag für eine > aufladbare Li-Knopfzelle a'la VL2032 passen, jedoch nicht für eine > CR2032 Einwegzelle. Interessanterweise wurden meine (China-)Module mit einer CR2032 ausgeliefert; D und R waren bestückt :-). Aber ich will mich nicht beklagen: sie waren billig, billiger als eine CR2032 alleine im Baumarkt ...
HildeK schrieb: > Markus M. schrieb: >> Also: der verwendete uC ist zu stromhungrig für den Dauerbetrieb und das >> leider auch im Deepsleep. Er läßt sich auch nicht mit vertretbarem >> Aufwand dazu erziehen. > > Die Info fehlte bisher, denn dann hätten die Deep-Sleep-Vorschläge > wegfallen können. eben lieber TO, erst mal wichtige Infos verschweigen und sich dann wundern das unbrauchbare Tipps kommen? So stromhungrige µC im deepsleep gibts ja nicht so häufig, evtl. doch keinen PI nehmen :)
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.