Verständnisfrage: Quarz oder WD

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Verständnisfrage: Quarz oder WD

      Hallo AVRler,

      ich versuche zu ergründen was für mich passt.
      Hintergrund:
      AVR nach Zeit aufwecken.

      Bisher habe ich einfach den WD genommen (ca. 8 sec) und dann geschaut ob die Wartezeit schon abgelaufen ist.
      Nun brauche ich ev. eine länger Schlafzeit, bis zu Stunden usw.
      Der WD scheint mir dabei ungeeignet und ist wohl auch temperaturabhängig.

      Es gibt AVR die mit einem separatem 32k Uhren-Quarz laufen.
      Das müsste doch ev. sogar sparsamer sein als mit dem WD.

      Liege ich da richtig?
      Meine Favoriten:

      Mega 328P, Mega 2560 Mega 644.
      Die "normale" Quarzfrequenz soll 2.4 ..16 MHz betragen.

      Danke für Infos..

      Kurt
    • Pluto25 wrote:

      Nicht sparsamer (ca 7 fachen Strombedarf) . Wozu wäre die Präzision nötig? Ist es nicht egal ob er nach 60 oder 57/63 Minuten wach wird? Und zwei Pins sowie ein Timer werden verbraucht.
      Hallo @Pluto25,

      Der Timer und die Pins wären egal, die Zeit aber nicht.
      Es wird beim "Aufwachen" ein Verbraucher aktiviert der ca. 40 mA aus dem Accu nimmt.
      Da spielt es schon eine Rolle ob der erst 1 Sekunde vorher eingeschaltet wird oder mehrere Minuten.
      Im Prinzip wird auf ein "Empfangssignal" gewartet, die Daten gelesen und bewertet und dan nwieder geschlafen.

      Der Stromverbrauch bei 32k ist aber heftig, ich dache mir das der langsame Takt sparsamer ist als der WD der ja einen RC-Oszillator verwendet.
      Es würde mir ev. sogar reichen wenn der AVR nur mit dem 32k Quarz arbeitet.

      Kurt
    • Kurt wrote:

      Es würde mir ev. sogar reichen wenn der AVR nur mit dem 32k Quarz arbeitet.
      Das hilft nur während er arbeitet. Im Tiefschlaf steht alles bis auf den WT Clock.

      Michael wrote:

      Eine externe RTC
      Oder gleich eine mit "Weckerausgang" z.B. DS3231. Die kann dann den AVR zu Wunschzeiten wecken.
      Kostet wieder zwei Pins, da er ihr die nächste Weckzeit mitteilen muß.

      PS Es geht nicht andersrum? Das er sich nach dem Wachwerden meldet "Hallo,ich bin empfangsbereit"?
    • Ich denke senden ist nicht drin, weil das kostet richtig saft.
      Wenns etwas anspruchvoller zum programmieren sein soll, meist driftet die frequenz ja eher langsam.
      Die daten mehrmals mit Zeitversatz senden, dazu jeweils einen Flag das wievielte Datagramm es ist. Wenn jetzt der Empfänger aufwacht und lauscht empfängt er ja in dem eingestellen Zeitverlauf sein erstes datagramm und kann somit auswerten welche nummer er empfangen hat. Ziel sollte nicht das erste sein. Kommt eins vor dem erwarteten ist die Frequenz des Empfängers zu hoch, anderfalls zu kurz. Das kann man dann umrechnen und entweder den Watchdog anders einstellen oder bei manchen sogar den internen Resonator mit register neu abstimmen
      Nicht einfach, aber sehr interessant :)

      Tobias
    • Schraubbaer wrote:

      Ich denke senden ist nicht drin, weil das kostet richtig saft.
      Wenns etwas anspruchvoller zum programmieren sein soll, meist driftet die frequenz ja eher langsam.
      Die daten mehrmals mit Zeitversatz senden, dazu jeweils einen Flag das wievielte Datagramm es ist. Wenn jetzt der Empfänger aufwacht und lauscht empfängt er ja in dem eingestellen Zeitverlauf sein erstes datagramm und kann somit auswerten welche nummer er empfangen hat. Ziel sollte nicht das erste sein. Kommt eins vor dem erwarteten ist die Frequenz des Empfängers zu hoch, anderfalls zu kurz. Das kann man dann umrechnen und entweder den Watchdog anders einstellen oder bei manchen sogar den internen Resonator mit register neu abstimmen
      Nicht einfach, aber sehr interessant :)

      Tobias

      Hallo Tobias,

      Angedacht ist eine Art Relaisstation, betrieben mit Batterie.

      Der Sender setzt zyklisch ein Telegramm ab, das Relay soll dieses empfangen und weitersenden.
      Das Relais soll also erst kurz vor dem Telegrammeintritt aufwachen, die Empfangskomponenten einschalten und dann empfangen und anschliessend weitersenden und wieder schlafen.

      Die Verwendung eines Quarzes beim Sender und Relais wäre die optimale Lösung, hier wäre dann nur der max. Gangfehler des jeweiligen Quarzes zu berücksichtigen.
      Ein 32k Uhrenquarz wäre da wohl optimal.
      Wenn dieser aber einen 7 fachen Stromhunger wie der WD hat dann ist das nicht gut.
      Heisst: Sender und Relais mit WD betreiben und das Relais beobachten lassen wieweit zu früh oder zu spät eingeschaltet worden ist, also eine Art Regelschleife basteln die das Relais immer gerade ausreichend früh einschaltet.
      Im einfachsten Falle ist das durch nachstellen des Zählers der WD Ereignisse im Relais zu erschlagen.

      Kurt
    • Kurt wrote:

      Ein 32k Uhrenquarz wäre da wohl optimal.
      Das würde ich so nicht behaupten.

      Du verwendest sicherlich noch andere Komponenten vom Controller, die einen höheren Takt brauchen wie UART.
      Der kommt mir 32kHz nicht klar.

      Aber was spricht gegen einen normalen Quarz? z.B. 4MHz? In Verbindung mit einer Soft-Clock?

      Zum Synchronisieren der Zeit kannst du vom Sender auch eine Uhrzeit mit-übertragen, auf die sich dann deine Relaystation einstellt.

      Wenn dein Controller aufwacht (Watchdog) brauchst du ja nur die interne Uhr prüfen, ob du auf Empfang gehen misst oder nicht.

      Aber zeig doch mal deinen Code. Sonst kann man ja keine ordentlichen Tips geben.
    • Kurt wrote:

      und das Relais
      ein Relais in einer Batterieanwendung würde ich nicht benutzen. Moderne FETs können da mit deutlich weniger Ansteurleiszung auskommen.

      Mitch64 wrote:

      Aber was spricht gegen einen normalen Quarz? z.B. 4MHz? In Verbindung mit einer Soft-Clock?
      Der Quarzoszillator müsste dauerhaft an sein, Frequenz und Strom stehen im direkten Zusammenhang.

      @Kurt:Wie groß ist denn der Unterschied zwischen Watchdog-Sleep und 32kHz Uhr mit Sleep? In µA.
      Woher kommt der Faktor 7?
    • Michael wrote:

      @Kurt:Wie groß ist denn der Unterschied zwischen Watchdog-Sleep und 32kHz Uhr mit Sleep? In µA.
      Woher kommt der Faktor 7?
      Der Faktor kommt von "Pluto25" weiter oben, Beitrag 2

      Ich ging davon aus das der WDT viel schneller schwingt als 32kHz, also auch mehr Saft braucht.


      Michael wrote:

      Ahh, klar.
      Relais im Sinne von Weiterleitung von Daten, ok.
      Ein Gedankerl dazu:

      Ein Sender, der Übertagungsweg kann vielfältig sein, Kabel, Glas, Funk, WLAN und was es da so alles gibt.

      Der Sender fängt ein paar Daten ein und sendet sie zyklisch weiter.
      Eine "Relaisstation" empfängt diese, legt ev. noch ihre Messwerte dazu und gibt alles an eine Zentrale weiter.
      Das Relais ist deswegen notwendig weil die Entfernung, direkt vom Sender zum Empfänger, zu gross ist oder unterwegs noch was abgeholt werden soll.

      Bei Netzbetrieb ist das kein Problem, der Empfänger und das Relais horchen einfach ständig rein.
      Bei Batteriebetrieb geht das halt nicht, darum die genaue Einschalterei.
      Beim Sender ist das kein Problem, er schickt einfach raus und das wars für ihn.
      Bei der Relaisstation schaut das schon anders aus, sie muss bereit sein wenn was kommt.
      Damit diese nicht unnütz in Bereitschaft sein muss die möglichst genaue zeitliche Steuerung.

      Wenn der Sender schon mit WD gesteuert wird, das Relais auch, kann es zu unnötig langer Einschaltdauer des Relais kommen, oder sogar Telegramme übersehen werden.
      Mit Quarzen wäre dieses Risiko, und damit indirekt auch der Stromverbrauch des Relais, minimirbar.
      So meine Überlegung.

      Es gibt zwei Möglichkeiten:
      a) mit dem Uhrenquarz, setzt voraus das dieser nicht viel mehr an Strom braucht als der WD.
      b) mit WD, dann muss halt eine Nachregelung bei der Relaisstation her welche die Veränderungen auf Grund von WDT-Schwankungen des Senders und bei sich selber, erfasst und ausgleicht.

      Ein Rückweg vom Empfänger, über die Relaisstation zum Sender ist nicht vorgesehen, brächte nämlich noch mehr Strom.

      Kurt
    • Michael wrote:

      Kurt wrote:

      Es gibt zwei Möglichkeiten:
      naja, es gab schon 2 mal den Vorschlag, eine externe RTC zu nehmen.
      Ja, das bedeutet das dieser Taktgeber dann integriert werden muss.
      Ich meine mich zu erinnern das es sog. "Alarmgeber" gibt, RTC mit Alarmausgang den man beliebig setzen kann.
      Dieser Ausgang könnte ja dann den AVR aufwecken, und dieser wiederum den RTC stellen/nachjustieren usw.

      Kurt
    • Kurt wrote:

      Dieser Ausgang könnte ja dann den AVR aufwecken,
      z.B. DS3231 , RTC mit Weckerfunktion.

      Der Stromverbrauch stammt vom Datenblatt:
      – Power-down Mode: 0.1μA
      – Power-save Mode: 0.75μA (Including 32kHz RTC)

      PS Hat mal jemand die Genauigkeit und Schwankungen eines WD gemessen? Soweit ich weiß läßt sich sein Takt nicht ändern (keine WD_OscCal )
    • Kurt wrote:

      Ich meine mich zu erinnern das es sog. "Alarmgeber" gibt, RTC mit Alarmausgang den man beliebig setzen kann.
      Das habe ich schon durch.
      Die DS3231 können das an sich (die haben sogar zwei Alarmausgänge. Aber die tun das nur wenn auch die 5V angelegt sind. Nur die Stützbatterie alleine reicht da leider nicht, da funktioniert das nicht.
      Das brachte mich vor einiger Zeit zur Entwicklung eines Langzeittimers der nur µA braucht und somit in einer Akku-Stromversorgung praktisch nicht auffällt.

      Der Nachteil ist, dass man da ohne Kalibrierung keine exakte Wiederholgenauigkeit hat aber in der längsten Stufe weckt der eine Schaltung dennoch zuverlässig alle 4 Tage und sechs Stunden auf. Je nach Umgebungstemperatur und Bauteiltoleranz sollte das bei den gegebenen Bauteilwerten dennoch max. ±2 Stunden sein (dies ist zumindest die inzwischen langjährige Beobachtung von mir.
      Der Vorteil ist, dass die Schaltung auch ohne Spannungsregelung auskommt und man daher keinen aktiven Spannungsregler braucht.
      Langzeittimer V1.JPG
    • Pluto25 wrote:

      Kurt wrote:

      Dieser Ausgang könnte ja dann den AVR aufwecken,
      z.B. DS3231 , RTC mit Weckerfunktion.
      Der Stromverbrauch stammt vom Datenblatt:
      – Power-down Mode: 0.1μA
      – Power-save Mode: 0.75μA (Including 32kHz RTC)

      PS Hat mal jemand die Genauigkeit und Schwankungen eines WD gemessen? Soweit ich weiß läßt sich sein Takt nicht ändern (keine WD_OscCal )

      Vor Jahren habe ich mal beim 328P gemessen (und den Wert wieder gefunden).
      Bei 3V und WDT war die Stromaufnahme 22µA
      Die 0.1µA sind wohl ohne WDT und im Schlafmodus.
      Wenn das mit dem 32k-Quarz geht dann ist eigentlich klar was ich anstreben werde.
      Im PDF des Mega2560 habe ich keine Angaben zum Verbrauch der einzelnen Stufen und Spannungen gefunden.

      Hallo @Zitronenfalter, ich muss möglicherweise mit Batterie fahren, und zwar runter bis auf das Min vom AVR, also bis auf 1.8V runter.

      Mir ist aber noch nicht so recht klar wie/wo der 32k angeklebt wird und wie die Fuses dann sein müssen und wie man das dann händelt.
      Als Arbeitsquarz ist ein 2.4 oder 4 MHz Quarz angedacht, damit krieg ich saubere "Serielle" hin.

      Kurt
    • Michael wrote:

      Wenn du die Clock des AVRs mit 32kHz Quarz nutzen willst (Am Mega328), dann geht das nur an den XTAL Pins.
      Ein Arbeitsquarz funktioniert dann nicht, nur der interne RC-Taktgeber.
      Das habe ich schon befürchtet, für "Seriell" ist es aber wichtig das hier ein Quarz anschafft, der RC ist meisst zu ungenau.
      ich habe es schon erlebt das selbst ein Ceramikschwinger da Probleme machen kann.
      Hängt von der Gegenstelle ab wieweit diese toleriert.

      Die "grossen" AVRs haben ja Anschlüsse für zwei Quarze, da müsst das leicht machbar sein.

      Es ginge auch mit zwei AVR, einen als Uhrenquarz mit der Aufwachfunktion betrieben, den anderen als Arbeitsmaschine die vom kleinen eingeschaltet wird.
      Somit könnte der "grosse" gross oder klein sein, je nach Anforderung.
      Der "grosse" sagt dem kleinen wie lange er zu schlafen gedenkt.

      Quasi als RTC mit "Alarmausgang" der auch bei 1,8V noch funktioniert.

      Kurt