Guten Tag, ich habe eine Frage bezüglich Sleep Modi: Ist es prinzipiell möglich, eine Art Uhr (externer Oszillator) zum Aufwecken des uCs zu verwenden. Das heißt, dass er nach 10 Sekunden schläft und nach 5 Stunden aufwacht o.Ä.? Danke.
Ja schrieb: > Ist es prinzipiell möglich, eine Art Uhr (externer Oszillator) zum > Aufwecken des uCs zu verwenden. Das heißt, dass er nach 10 Sekunden > schläft und nach 5 Stunden aufwacht o.Ä.? Definitiv ja.
Viele MCs haben sogar einen internen Timer der mit einem Uhrenquarz laufen kann. Und manche sogar einen extra V_Batt Anschluß, da läuft die RTC auch ohne VCC. Etwas nervig ist, daß viele RTC oft ein crudes Dezimalformat zählen und nicht einfach als 32Bit Sekunden. Außen noch ne extra RTC ranzupappen ist daher veraltet.
:
Bearbeitet durch User
Ließe sich bspw. der Timer0 ( in Zusammenarbeit mit dem internen Taktgeber) so instrumentalisieren, dass er das Ein- und Aufwachen regelt?
Bzw. Wäre es möglich (wenn auch armselig), den Watchdog (hat ja ein Maximum von 8sec) mit einem Counter zu versehen, der ihn dann immer wieder in den Schlaf schickt, bis der Counter den entsprechenden Wert für z.B. eine Stunde erreicht hat?
Ja schrieb: > Bzw. Wäre es möglich (wenn auch armselig), den Watchdog (hat ja ein > Maximum von 8sec) mit einem Counter zu versehen, der ihn dann immer > wieder in den Schlaf schickt, bis der Counter den entsprechenden Wert > für z.B. eine Stunde erreicht hat? Ja. Allerdings ist der Watchdog ein RC Oszillator du nicht besonders genau, ausserdem braucht der uC bei laufendem Watchdog mehr Strom. PicoPower uC sind besser selbst wenn der Quartz-Oszillator einen Timer durchlaufen lässt.
Ja schrieb: > Ist es prinzipiell möglich, eine Art Uhr (externer Oszillator) zum > Aufwecken des uCs zu verwenden. Das heißt, dass er nach 10 Sekunden > schläft und nach 5 Stunden aufwacht o.Ä.? sogar sehr einfach mit einer RTC DS3231, vergesst den doofen 32kHz Quarz am AVR http://www.ebay.de/itm/DS3231-AT24C32-IIC-Module-Precision-RTC-Module-Memory-Module-/251357891421?pt=LH_DefaultDomain_0&hash=item3a86190b5d aber Achtung manche liefern die LiR2032 nicht mit, der hier ja. Eine LiR2032 hier kaufen ist teurer als das Modul, eine CR2032 kann man nicht überall einsetzen wenn Diode und Lade R bestückt sind. Ja schrieb: > dass er nach 10 Sekunden > schläft Ja schrieb: > nach 5 Stunden aufwacht stellt man den Wecker in der DS3231 auf +5 Stunden und +10s und schickt den Atmel nach 10s schlafen.
:
Bearbeitet durch User
Ja schrieb: > Bzw. Wäre es möglich (wenn auch armselig), den Watchdog (hat ja ein > Maximum von 8sec) mit einem Counter zu versehen, der ihn dann immer > wieder in den Schlaf schickt, bis der Counter den entsprechenden Wert > für z.B. eine Stunde erreicht hat? Genau so tut man das, wenn man lange Schlafzeiten erreichen will und die Anforderungen an die Genauigkeit eher gering sind. Und es ist keineswegs armselig. Alternativen sind ein Uhrenquarz am Low Frequency Crystal Oscillator und Timer2 zum Aufwecken. Das geht auch nur längstens alle 8 Sekunden. Allerdings unterstützen das nicht alle AVRs. Oder eine externe RTC die den µC per Hardware-Interrupt weckt. Was davon den wenigsten Strom verbraucht, muß man mal mit spitzem Stift durchrechnen. Das "aufwachen und den Software-Zähler eins hochzählen" verbraucht allerdings viel weniger Energie als man gemeinhin annimmt.
Axel Schwenke schrieb: > Das "aufwachen und den Software-Zähler eins hochzählen" > verbraucht allerdings viel weniger Energie als man gemeinhin annimmt. das mag sein nur mag ich die filigranen 32kHz Quarze nicht und mit einer RTC muss ich weder Platz für Uhr Code und Datum Code im µC vorrätig halten noch das in die SW einbauen, so eine RTC erleichtert doch sehr, zumal sie kaum mehr kostet als ein Uhrenquarz hier. wie oft muss ein µC aufwachen um die Uhr weiterlaufen zu lassen wenn das Ereignis in 100 Tagen stattfinden soll? RTC einmal programmieren Alarm auf +100 Tage µC aufwachen um die Uhr eine Sekunde weiterzuschalten, den Vergleich machen?
:
Bearbeitet durch User
Servus, soweit ich sehe, hat der Threadstarter nur von "einer Art Uhr" geschrieben und keine Angaben zur geforderten Genauigkeit gemacht. Vielleicht ist ein simpler, interner und relativ ungenauer Watchdog genau das, was er braucht...
Joachim B. schrieb: > Axel Schwenke schrieb: >> Das "aufwachen und den Software-Zähler eins hochzählen" >> verbraucht allerdings viel weniger Energie als man gemeinhin annimmt. > > das mag sein nur mag ich die filigranen 32kHz Quarze nicht Ich hege Zweifel daran, daß der TE deine Abneigungen gegen bestimmte Bauelemente als valides Argument ansieht. > und mit einer > RTC muss ich weder Platz für Uhr Code und Datum Code im µC vorrätig > halten noch das in die SW einbauen, so eine RTC erleichtert doch sehr, > zumal sie kaum mehr kostet als ein Uhrenquarz hier. Das ist auf so vielen Ebenen falsch. Zum einen stimmt es nicht, daß eine RTC "kaum mehr kostet" als ein Uhrenquarz. Vor allem schon deswegen nicht, weil die meisten RTC erfordern, einen externen Uhrenquarz anzuschließen. Was dein Argument von oben gleich nochmal hinfällig macht. Und die RTC, die einen Quarz eingebaut haben, sind nicht billig, sondern im Gegenteil oft deutlich teurer als RTC plus Quarz. Was den Aufwand an Code angeht - die Kommunikation mit der RTC kriegt man auch nicht zum Nulltarif. Aber man braucht dann zusätzlich noch Platinenfläche. Und Pins zur Kommunikation mit der RTC. > wie oft muss ein µC aufwachen um die Uhr weiterlaufen zu lassen wenn das > Ereignis in 100 Tagen stattfinden soll? Nutzen sich bei deinen µC die Interrupts ab? Oder bekommst du Geld zurück, wenn dein µC länger schläft? Deine Argumente sind so armselig und an den Haaren herbeigezogen, daß ich mich frage ob du nicht bloß gegen mich stänkern wolltest. Dabei hätte es durchaus gute Argumente für eine RTC gegeben. Z.B. daß die meisten RTC eine Notversorgung per Batterie vorsehen und so das Aufwachen auch dann noch funktioniert, wenn zwischenzeitlich mal die Hauptversorgung ausfällt. Oder daß RTC typisch noch ein bisschen RAM enthalten, das man zum Abspeichern von Konfigurationsdaten verwenden kann und das im Gegensatz zu EEPROM instantan und beliebig oft beschreibbar ist.
Joachim B. schrieb: > wie oft muss ein µC aufwachen um die Uhr weiterlaufen zu lassen wenn das > Ereignis in 100 Tagen stattfinden soll? Konstruier hier nicht so einen an den Haaren herbeigezogenen Unsinn. Der Normalfall ist, dass der Controller mehrmals pro Sekunde aufwacht. Joachim B. schrieb: > das mag sein nur mag ich die filigranen 32kHz Quarze nicht Das ist dein Problem. Ich nenne sowas Wurstfingereffekt. mfg.
Joachim B. schrieb: > das mag sein nur mag ich die filigranen 32kHz Quarze nicht Die Metallröhrchen mit 2 Anschlußdrähten sind auch vom ungeübten Bastler leicht einzulöten. Ganz im Gegensatz zu den modernen RTCs im Fine-Pitch oder BGA. Die uralten RTCs im DIL sind ja am aussterben. Außerdem haben die meisten RTCs so ein crudes Dezimalformat. Ich programmiere meine internen RTCs immer als 32Bit Sekunden. Damit kann man ganz leicht Zeiten vergleichen oder Zeitabstände messen. Nur für Ein-/Ausgabe für den Menschen braucht man 2 Umwandlungsfunktionen.
Axel Schwenke schrieb: > Zum einen stimmt es nicht, daß eine RTC "kaum mehr kostet" als ein > Uhrenquarz. Vor allem schon deswegen nicht, weil die meisten RTC > erfordern, einen externen Uhrenquarz anzuschließen. Was dein Argument > von oben gleich nochmal hinfällig macht. Beitrag "Re: Sleep Mode Logik Frage" wie bitte, ich kaufe eine RTC mit DS3231 und du schreibst von Quarz anschliessen? und wo bekommt man hier einen 32 kHz Quarz ins Haus für unter 1,50€ ? jaja ist klar, ich schreibe falsch und du wahr, nun los Butter bei die Fische: 32kHz Quarz ins Haus unter 1,50€ gibts auch als nackten Chip, aber der ist hier teurer DS3231 ins Haus unter 1,50€ offensichtlich kennst du den DS3231 nicht mal, sonst würdest du sowas nicht schreiben. Axel Schwenke schrieb: > Nutzen sich bei deinen µC die Interrupts ab? Oder bekommst du Geld > zurück, wenn dein µC länger schläft? > Deine Argumente sind so armselig wie du meinst, mir ist es egal wenn dein AVR jedesmal aufwacht um eine Sekunde zu zählen, jeder wie er mag. Axel Schwenke schrieb: > Deine Argumente sind so armselig und an den Haaren herbeigezogen, daß > ich mich frage ob du nicht bloß gegen mich stänkern wolltest. das frage ich mich auch du meinst also an einen DS3231 einen Quarz anlöten zu müssen? du meinst also 1000x den AVR zu wecken gibts umsonst aus der Batterie? Thomas Eckmann schrieb: > Ich nenne sowas Wurstfingereffekt. könnten wir ja mal vergleiche, ich lade dich gerne ein....... ändert aber nix dran das der Quarz filigran ist und gut behütet in der Schaltung sitzt, deswegen darf ich den nicht mögen gelle. Peter Dannegger schrieb: > Die Metallröhrchen mit 2 Anschlußdrähten sind auch vom ungeübten Bastler > leicht einzulöten. darum ging es mir nicht, aber die meisten die hier mitstänkern kennen nicht mal die von mir genannte RTC Axel Schwenke schrieb: > Und die RTC, die einen Quarz > eingebaut haben, sind nicht billig, sondern im Gegenteil oft deutlich > teurer als RTC plus Quarz. oh ja die hat mich völlig ruiniert Ca. EUR 1,04 http://www.ebay.de/itm/251357891421?clk_rvr_id=795514561958&rmvSB=true hier die mit Quarz Ca. EUR 1,06 (gibts noch 3 Ct billiger nur wollte ich den Quarz zeigen) http://www.ebay.de/itm/I2C-Tiny-RTC-DS1307-Real-Time-Clock-Module-AT24C32-Board-for-Arduino-AVR-/281541321180?pt=LH_DefaultDomain_0&hash=item418d2ba1dc es gibt für mich nur ein Argument für den 32 kHz Quarz, Massenfertigung und Platz, als Hobbybastler ist mir Platz fast egal.
Joachim B. schrieb: > Axel Schwenke schrieb: >> Zum einen stimmt es nicht, daß eine RTC "kaum mehr kostet" als ein >> Uhrenquarz. Vor allem schon deswegen nicht, weil die meisten RTC >> erfordern, einen externen Uhrenquarz anzuschließen. Was dein Argument >> von oben gleich nochmal hinfällig macht. > > wie bitte, ich kaufe eine RTC mit DS3231 und du schreibst von Quarz > anschliessen? Das mit dem Lesen mußt du noch üben. Ich schrieb nirgendwo, daß man an jede RTC einen externen Quarz anschließen muß. > und wo bekommt man hier einen 32 kHz Quarz ins Haus für unter 1,50€ ? Reichelt, Artikel "0,032768" für EUR 0,12. Dazu MCP7940 für EUR 0,88. In Summe also EUR 1,00. Wohlgemerkt Endkundenpreis für Einzelstücke. Den DS3231 gibt es gar nicht bei Reichelt. Bei Mouser als Einzelstück für EUR 7,31. Tolle Ersparnis. > DS3231 ins Haus unter 1,50€ Anscheinend ein ebay "Schnäppchen". Ist niemals ein Original. Datenhaltigkeit fraglich. Lieferzeit unterirdisch. Langfristige Verfügbarkeit nicht gegeben. >> Deine Argumente sind so armselig und an den Haaren herbeigezogen, daß >> ich mich frage ob du nicht bloß gegen mich stänkern wolltest. > du meinst also 1000x den AVR zu wecken gibts umsonst aus der Batterie? Nein, sondern ich schrieb: > Was davon den wenigsten Strom verbraucht, muß man mal mit spitzem Stift > durchrechnen. Das "aufwachen und den Software-Zähler eins hochzählen" > verbraucht allerdings viel weniger Energie als man gemeinhin annimmt. Aber weil es so schön ist, hier mal als Überschlagsrechnung. Der µC möge alle 8 Sekunden aufwachen und eine 32-Bit Variable dekrementieren. Für den Interrupt mit allem pipapo braucht er dann wie lange? Sagen wir mal großzügig 80 Taktzyklen. Bei 1MHz Systemtakt sind das 80µs. Alle 8 Sekunden. Also ein 100.000-stel der Maschinenzeit. Bei 1Mhz Takt braucht der µC wieviel Strom? Sagen wir großzügig 1mA (ATmega88PA: max 0.55mA). Der mittlere Stromverbrauch durch die Realtime-ISR ist dann 1mA/100.000. Also 10nA. Zum Vergleich: im Power-Save mit aktiviertem 32kHz Oszillator braucht der ATmega88PA permanent ca. 900nA. Dein heißgeliebter DS3231 genehmigt sich im Standby 130µA wenn er regulär versorgt wird. Oder 2µA wenn er aus der Batterie läuft. Das Original von Maxim wohlgemerkt. Für das was die Chinesen da verkloppen wird wohl niemand seine Hand ins Feuer legen.
Ich melde mich mal wieder, ist ja genial was hier veranstaltet wird :-) Also: ich benötige eine Art Uhr, die auf 5 Stunden durchaus Toleranz von mehreren Minuten haben darf. Deshalb auch "Art Uhr", da sie durchaus ungenau sein darf. Habe ich es nun richtig verstanden , dass es am effektivsten ist, den Watchdog einen Zähler hochzählen zu lassen, bis die entsprechenden Werte erreicht sind?
Ja schrieb: > Habe ich es nun richtig verstanden , dass es am effektivsten ist, den > Watchdog einen Zähler hochzählen zu lassen, bis die entsprechenden Werte > erreicht sind? Hmm, der Watchdog ist nun wirklich sehr ungenau und ausserdem noch temperaturabhängig. Ob die gelieferte Genauigkeit reicht, solltest du einfach mal testen. Wenn du so etwas noch rumliegen hast, kannst du auch die Platine eines alten Quarzuhrwerkes nehmen und mit dem Signal für den Schrittmagneten den MC aufwecken. Aber probier ruhig erstmal den WD.
Axel Schwenke schrieb: > Anscheinend ein ebay "Schnäppchen". Ist niemals ein Original. ach und das weisst du genau? woher? Axel Schwenke schrieb: > Das mit dem Lesen mußt du noch üben. danke gebe ich gerne zurück: Joachim B. schrieb: > und wo bekommt man hier einen 32 kHz Quarz ins Haus für unter 1,50€ ? ergo passt deine Antwort wohl nicht Axel Schwenke schrieb: > Reichelt, Artikel "0,032768" für EUR 0,12. ach und Reichelt versendet umsont? was kostet der bis er bei mir ist? (immer diese Milchmädchenrechnungen) ich will dir nix böses, wir haben halt unterschiedliche Meinungen, aber deswegen mir das Wort im Munde umdrehen nur das du Recht behälts ist kein guter Stil. Axel Schwenke schrieb: > Der µC möge > alle 8 Sekunden aufwachen und eine 32-Bit Variable dekrementieren. welche Uhr tickt im 8s Takt? ich glaube doch eher der muss jede Sekunde aufwachen um ein Sekunde zu inkrementieren. Axel Schwenke schrieb: > Bei 1Mhz Takt braucht und bei 128kHz noch weniger...... mir scheint diese Diskusion ist sinnlos duch schönrechnen und tricksen.... Ja schrieb: > Deshalb auch "Art Uhr", da sie durchaus > ungenau sein darf. > Habe ich es nun richtig verstanden , dass es am effektivsten ist, den > Watchdog einen Zähler hochzählen zu lassen, bis die entsprechenden Werte > erreicht sind? ich denke ja, das dürfte dir reichen.
Ja schrieb: > Habe ich es nun richtig verstanden , dass es am effektivsten ist, den > Watchdog einen Zähler hochzählen zu lassen, bis die entsprechenden Werte > erreicht sind? Ja, das ist einfach. Aber nicht mit dem Watchdog-Reset, sondern mit dem Watchdog-Timer-Interrupt. Das können die meisten AVR. Die Genauigkeit ist allerdings, wie schon gesagt, bescheiden. Mit einem Atmega8 geht das selbstverständlich nicht. mfg.
Ja schrieb: > Okay warum? Weil die alte Gurke keinen Watchdog-Interrupt hat. Bei dem müsstest du das Zählergebnis im EEPROM ablegen, sonst fängst du nach jedem Reset wieder von vorne an zu zählen. Bei anderen AVRs, z.B. ATtiny13, kannst du statt des WD-Reset auch einen Interrupt ausführen lassen und in der ISR deinen Zähler hochzählen. Wenn es auch ein bisschen ungenauer sein darf, ist das durchaus eine elegante Lösung, die ausschliesslich mit Boardmitteln des Controllers auskommt. mfg.
:
Bearbeitet durch User
Joachim B. schrieb: > welche Uhr tickt im 8s Takt? > > ich glaube doch eher der muss jede Sekunde aufwachen um ein Sekunde zu > inkrementieren. Hm. 5 Stunden = 18.000 Sekunden. Geteilt durch 8 = 2.250. Geht sogar genau auf, obwohl dies bei der geforderten Genauigkeit ja auch egal ist. Kommt mal alle wieder runter. Es kommt wie immer auf den konkreten Anwendungsfall an, welche Hard- und Software man nimmt (genauer: Braucht).
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.