Guten Morgen! Ich möchte einen Mikrocontroller zeitgesteuert automatisch starten lassen (nach bis zu 48h ausgeschaltet). Kann man sowas über den Squarewave-Ausgang des DS1307 machen, oder gibt es andere Möglichkeiten? Ich stelle mir vor, dass der Ausgang eines ICs ein Flipflop betätigt, das wiederum einen Transistor ansteuert, der den Strom für den µC freigibt... Danke für die Antworten, Dominik
Jan S. schrieb: > Ich möchte einen Mikrocontroller zeitgesteuert automatisch starten > lassen (nach bis zu 48h ausgeschaltet). Warum läßt du ihn nicht schlafen und durch seinen eigenen Timer ab und zu kurz aufwachen, so dass er nachsehen kann, ob die 48h schon um sind?
Wolfgang schrieb: > Warum läßt du ihn nicht schlafen und durch seinen eigenen Timer ab und > zu kurz aufwachen, so dass er nachsehen kann, ob die 48h schon um sind? okay, ich präzisiere: es handelt sich um einen raspberry Pi. Ich weiß nicht, ob der einen Timer hat, mit dem man sowas machen kann. Das ganze soll auch möglichst stromsparend ablaufen. ich fürchte, dass der Pi viel Strom ziehen wird... Aktualisierung: Der Raspberry Pi hat keinen Sleepmodus. Um den Stromverbrauch zu reduzieren, muss ich deshalb extern den Strom anschalten können.
Wenn ich jetzt auch zu faul bin einen konkreten Typ zu suchen, so gibt es doch, wenn ich mich recht entsinne, RTC (Real Time clock) chips, die einen Alarmausgang haben.
Jan S. schrieb: > okay, ich präzisiere: es handelt sich um einen raspberry Pi Dann sag's doch gleich, damit man nicht erst rum rätseln muss.
Nimm das http://www.conrad.de/ce/de/product/494722/Wochenzeitschaltuhr-230-V50-Hz-3500-W/?ref=category&rt=category&rb=1 ist wie geschaffen für RPi Anwender.
Ich würde einen Atmel Tiny mit PicoPower bei 32kHz im Watchdog-Mode laufen lassen. Dann kann das RPi sogar dem µC beischeid geben, wenn wieder Zeit ist zum Schlafen... Strombedarf im Sleepmode ca. 500nA also so ca 3µW Gruß Ovular
Danke für die Antworten! Die Variante mit dem Atmel Tiny ist sicher die eleganteste! Allerdings müsste ich mich da erst einarbeiten, deshalb werde ich wahrscheinlich den RCT mit Alarm-Ausgang nehmen, zum beispiel hier: http://www.ebay.de/itm/5V-DS3231-IIC-Real-Time-Clock-Module-EEPROM-Memory-Temperature-Measure-Battery-/251300072934?pt=Elektromechanische_Bauelemente&hash=item3a82a6cde6 Cornelius Fillmore schrieb: > Nimm das > > http://www.conrad.de/ce/de/product/494722/Wochenze... > > ist wie geschaffen für RPi Anwender. aber nicht für mich! Der Timer muss auch über den Pi einstellbar sein, außerdem wird meine Anwendung per Akku versorgt.
Wenn Du so einen Tiny programmieren kannst (Equipment hast...), ist das weniger das Problem. Ich kann Dir einen kurzen Beispiel-Quellcode schicken. Hab sowas noch in meinem Projektordner... Gruß Ovular
So, hier kannste mal gucken... Soll ein Tiny861A gewesen sein. Benötigt übrigends ca. 6µA Gruß Steven
Ach ja, man kann mit Atmel sogar noch mehr Strom sparen, er muss einen 32kHz Quarz zulassen und den PowerSave Mode haben (z.B. ATMega48A). Der 8-Bit Timer Timer2 kann den Controller wieder wecken. In ca. 3-4Wochen werde ich das mal testen. Und vielliecht schreib ich sogar einen kleinen Artikel. Gruß Steven
Ich hatte das damals si gelöst, den avr nur mit dem watchdog Oszillator laufen lassen (den 32khz) und den watchdog interrupt auf die größte Zeit gesetzt (das ergab irgendwas um die 4 oder 8 Sekunden) und in den deepsleep versetzt. Das sind insgesamt 3 oder 4 Register. Wenn er aufwacht, einfach eine uint_32 variable hochzählen lassen. Bei erreichen eines Wertes der der Zeit entspricht, führst du die gewünschte Aktion durch, ansonsten wieder schlafen legen. Nicht sonderlich genau (bestimmt +-20%) aber kann ja quasi kalibriert werden und ist unschlagbar im Verbrauch.
Alex schrieb: > Zwei Wochen sind vergangen. Steven () schrieb: > Dann hab ich ja nochmal so viel Zeit... :) Die zwei Wochen waren schon vor fast drei Wochen vorbei ;-)
Das "+1 Jahr" hast du übersehen oder bist du durch ein Wurmloch hier? ;)
@Gerald Hat der Watchdog nicht 128kHz? Auch wenn er 32kHz hätte, kann man laut Datenblatt ohne wdt mehr Strom sparen. Damit man mit mit einem 32kHz Uhrenquarz Strom sparen kann, müsste man einen extern anschließen. Das ganze kann man vom Timer 2 steuern lassen. D.h. Zählen und Interrupt auslösen. Ich bin schon am zusammen suchen von Artikel Material. Gruß Ovu
Attiny85 hat 32,xxx kHz. Strom im power down: Ohne watchdog timer: 2 uA Mit: 10uA Selbstentladung einer AA Batterie: 4% der 2500mAh: 11uA Dass du bei einem externen Quarz strom sparst, bezweifle ich einfach mal. Und die einzelnen Takte bei ein Quarz mit dem AVR Timer zu zählen geht auch nicht im power down mode. Intern mit dem watchdog im power down geht. Was eben Strom brauch, ist das aufwachen alle 4/8/16 Sekunden (weiß nicht mehr genau was mit dem Timer als Maximum geht) Aber die paar Takte sind wahrscheinlich auch winzig im Stromverbrauch. Ich denke nicht dass du es schaffst weniger zu verbrauchen, und ich denke auch nicht, dass es nötig ist. (Es gibt auch etwas sparsamere Controller, aber hier bekommst du quasi von allen Ecken einen passenden Beispielcode) Wie gesagt, die Batterie verliert von alleine schon mehr Energie, bei Akkus oder größeren Batterien ist das ein vielfaches davon.
:
Bearbeitet durch User
@Gerald und doch sind es 128kHz. Zum Glück hab ich nachgeschaut, sonst hätte ich mir das so gemerkt. Nicht jeder hat so eine "große Batterie" wie Du. Mir gehts (immernoch aktuell) darum mit einem Lithium-Ionen-Akku möglichst viel Laufzeit hinzubekommen. Ein solcher hat <2% pro Monat und 100mAh also etwa 2µA "Selbstentladestrom". Und wenn man jetzt eine Primärzelle hätte, läge der Strom sogar bei 0,1µA. Und da macht viel Stromsparen schon Sinn, gerade wenn es um sehr kleine Projekte geht. Und 1µA mit laufendem Timer2 könnten schon möglich sein... Aber ich will mal noch nicht zu viel versprechen. Gruß Ovu
:
Bearbeitet durch User
da gibts ja schon ein paar Hinweise: Ultra low power oder Sleep Mode Fehlt nur noch ein Beispielcode und ein Testaufbau. Mal sehen, ob das wieder ein Jahr bei mir dauert. :)
:
Bearbeitet durch User
Ja, hast recht. Die 32kHz sind für einen externen Quarz angegeben. Aber wie du 1uA himbekommen willst, wenn der AVR in power down schon 2uA benötigt ist mir schleierhaft. Aus diesem status kommt er übrigens nur nur einen externen interrupt, oder dem watchdog. Wie gesagt, andere Hardware, oder mich überraschen. Bin sehr gespannt ob es eine Rückmeldung mit einem Prototyp gibt (wäre eigentlich eher überrascht).
Sooo, meine Damen und Herren! Hier ist ein Programm im Anhang, einem ATMega88PA zugehörig. Der Code ist recht globig, und kann und wird noch etwas reduziert. Bei 3,3V Versorgungsspannung ergeben sich folgende Ströme. Im PowerDown: 0,3µA Im PowerSave mit Timer2 (1s sleep, 100µs awake(1MHz)): 1,2µA Das ganze gemessen mit einem 220µF-Elko und einem Fluke 289 mit 10MOhm Innenwiderstand. Gemessen habe ich einfach die Zeit, in der der Verbraucher den Kondesator um 10mV entläd. (Hinweis: bei 3,3V!) Nur Messgerät 65s -> 0,3µA PowerDown 34s -> 0,6µA -> Iµc = 0,3µA PowerSave 13s -> 1,5µA -> Iµc = 1,2µA bei 1sec sleep und 100µs awake Ein Präzisionspreis gewinne ich damit nicht, aber ich denke nicht dass die Summe aller Fehler über 20% liegen. Natürlich liese sich das auch genauer messen, aber für mich persönlich reicht das. Jetzt mach ich mal noch ein neues Projekt, kopiere den Code und komprimiere ihn mal aufs Wesentiche. Mal sehen was mit dem 128kHz dann rauskommt. Gruß Steven
:
Bearbeitet durch User
Steven () schrieb: > Jetzt mach ich mal noch ein neues Projekt, kopiere den Code und > komprimiere ihn mal aufs Wesentiche. Mal sehen was mit dem 128kHz dann > rauskommt. Und was kommt bei diesem Projekt überhaupt raus ? Was macht dein uC überhaupt (abgesehen davon, daß er die meiste Zeit ohnmächtig ist) ?
Ich hätte eine externe I²C-Uhr genommen und meinen µC via Interrupt aufwecken lassen. Notfalls mittels FET in der Versorgung. Letzteres sollte den µC-Stromverbrauch in die Nähe von Null drücken. Die Uhren sind relativ genau, ich kann also die tatsächliche Zeit jederzeit auslesen. Wenn mich nicht alles täuscht bist Du mit 0,4µA dabei. Irgendwo habe ich mal eine gesehen, die das 32KHz-Signal ausgibt, wodurch man sich den µC-Quarz spart.
Er ist für das Powermanagement eines 50mAh Li-Ion-Akkus tätig. -schaltet die Versorgungsspannung zum Rest der Schaltung per P-Kanal Mosfet. -soll Tiefentladung vermeiden, geht dann in den Power-Down, und lässt sich nur durch eine Lade-Kontrollspannung wecken. -Die versorgte Schaltung soll an- und ausgeschaltet werden können, per Taster. Also nix besonderes. Gruß Steven
Gerald G. schrieb: > Attiny85 hat 32,xxx kHz. > Strom im power down: > Ohne watchdog timer: 2 uA > Mit: 10uA Das kommt mir zu viel vor. Sind die Portpins auf einem definiertem Level? Welche Versorgungsspannung? BOD aktiv?
Amateur schrieb: > Ich hätte eine externe I²C-Uhr genommen und meinen µC via > Interrupt > aufwecken lassen. > > Notfalls mittels FET in der Versorgung. > Letzteres sollte den µC-Stromverbrauch in die Nähe von Null drücken. > > Die Uhren sind relativ genau, ich kann also die tatsächliche Zeit > jederzeit auslesen. Wenn mich nicht alles täuscht bist Du mit 0,4µA > dabei. > Irgendwo habe ich mal eine gesehen, die das 32KHz-Signal ausgibt, > wodurch man sich den µC-Quarz spart. Und die Gesamtschaltung soll weniger Stromverbrauchen als meine Lösung? Gerne lese ich mir ein Datenblatt dazu durch, wenn du mir ein Link schickst. Außerdem darf diese Schaltung nicht mehr Fläche verbrauchen als grob 35mm². Und es sollen variable Sleep-Zeiten von 60µs bis mehrere Sekunden programmierbar sein. Gruß Steven
Steven () schrieb: >> Ich hätte eine externe I²C-Uhr genommen und meinen µC via >> Interrupt >> aufwecken lassen. ich auch mit dem DS3231, statt 32kHz Quarz MC > Außerdem darf diese Schaltung nicht mehr Fläche verbrauchen als grob > 35mm². das könnte ein Problem werden > Und es sollen variable Sleep-Zeiten von 60µs das auch > bis mehrere Sekunden programmierbar sein. das nicht aber hinterher die Bedingungen zu nennen ist nicht die feine englische Art ....
Joachim B. schrieb: > aber hinterher die Bedingungen zu nennen ist nicht die feine englische > Art .... Ich schildere auch kein Problem, sonder versuche dem TE bzw. anderen Interessenten zu helfen.
Schau Dir mal die PCF8563 von NPX an. Muss aber nicht sein. Die gibt es in verschiedenen Büchsen (8-10Anschlüsse). Ein Nachteil: Fixe Anschrift (A2/A3)
Amateur schrieb: > Schau Dir mal die PCF8563 von NPX an. Muss aber nicht sein. > Die gibt es in verschiedenen Büchsen (8-10Anschlüsse). > Ein Nachteil: Fixe Anschrift (A2/A3) Das liest sich tatsächlich interessant. Ist auch relativ klein. Danke für den Tipp, merke ich mir.
Steven () schrieb: > Ich schildere auch kein Problem, sonder versuche dem TE bzw. anderen > Interessenten zu helfen. OK der TE hat sich hier nie wieder blicken lassen und hatte als Bedingung keine 35mm² sondern einen PI der zwar eine RTC auch mit Int über I2C programmieren kann, aber kein sleep beherrscht und 32kHz Quarz und sowieso auch runtergefahren weiter Strom frisst.... aber egal, wenn Programmierbarkeit ab 60µs besteht und 32kHz Quarze angeschlossen werden können und keine Fläche für einen DS3231 zur Verfügung steht dann hilft dein Tipp wirklich.
@Joachim Es wurde ja auch nach meinem Problem gefragt, also hab ich darauf geantwortet. Mir waren die RTCs nicht mit so geringen Strömen bekannt, hilft mir aber so oder so nicht weiter. Jedenfalls versuche ich gerade, den Stromverbrauch eines AtMega88PA auf ein Minimum zu reduzieren. In wie weit das für Euch Sinn macht, wenn ihr auf ein RTC zurückgreifen wollt, ist dahingestellt. Jedenfalls habe ich den Code schon vor einem Jahr versprochen einzustellen, und jetzt ist er da. Wers nicht braucht kann gern den nächsten Thread aufmachen. Das mag sein, dass das etwas zickig klingt, aber für mich ist es jedenfalls nützlich. Gruß Steven
Jo, Fehler hab ich auch ein paar eingebaut. Neue Version kommt demnächst...
avr schrieb: > Gerald G. schrieb: > Attiny85 hat 32,xxx kHz. > Strom im power down: > Ohne watchdog timer: 2 uA > Mit: 10uA > > Das kommt mir zu viel vor. Sind die Portpins auf einem definiertem > Level? Welche Versorgungsspannung? BOD aktiv? Das sind die Werte aus dem Datenblatt :P
Stimmt, aber auch nur im gesamten Temperaturbereich. Bei 25°C sieht es deutlich niedriger aus.
Mal wieder etwas weiter gekommen... benötigt ca. 1,2µA EDIT: Hoppla, die Sleep-Zeit war nicht auf 1sec eingestellt
:
Bearbeitet durch User
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.