www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Netzfrequenz als Zeitbasis für AVR


Autor: Stefan Huebner (shaun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe nebenher gerade ein kleines Projekt laufen, bei dem ich die 
Netzfrequenz als Zeitbasis benutzen möchte. Es geht dabei nur um die 
Langzeitgenauigkeit, die Phase im Bezug zum Nulldurchgang ist egal.

Die AVR-Appnotes sehen hier einfach einen 1Meg-Widerstand zwischen L und 
AVR-Eingang vor. Ausserdem wird nach erkanntem Nulldurchgang noch 5 mal 
nachgesehen, ob der Pegel stabil bleibt, um Spikes zu unterdrücken.
Ich habe in meiner Anwendung 14VAC mit Brückengleichrichter, greife die 
Wechselspannung vor dem Glr. ab und gehe über einen RC-Filter 22k und 
2n2 auf den Analog-Komparator, Referenz ist die Bandgap-Ref des AVR. Ich 
hatte mir davon eigentlich erhofft, dass die Hysterese mir hilfreich zur 
Seite steht, aber dem scheint nicht so zu sein.
Über 12h gemittelt habe ich eine scheinbare Frequenz von ca. 58Hz.

Mein nächster Schritt wird nun sein, mit jedem erkannten Nulldurchgang 
einen Portpin zu toggeln und zu beobachten, ob sich die Phasenlage 
zwischen Wechselspannung und toggelndem Portpin ab und an mal ändert - 
das würde dann auf fehlerhaft erkannte Nulldurchgänge hindeuten.
Die Lösung könnte dann darin bestehen, nach einem erkannten ND zB 1ms 
später noch einmal nachzuschauen, ob der Komparatorausgang seinen Pegel 
behalten hat und nur dann den 20ms-Zähler zu inkrementieren.
Noch ein Stück weiter gehen könnte man, indem man nach bestätigtem 
Nulldurchgang den Eingang für >10ms taub schaltet, so dass nach der 
erkannten fallenden Flanke die nächste Steigende durch evtl. Störungen 
nicht zu erneutem Triggern führen kann.

Was meint ihr dazu? Für das Projekt ist leider keine Zeit, daher sträube 
ich mich etwas, das Rad neu zu erfinden, denn ich bin mir sicher, dass 
hier jemand schon die gleichen Sorgen hatte. Wenn's fertig ist, kommt's 
auch auf meine Homepage ;)

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal was zur grundidee: langzeitgenauigkeit und netzfrequenz sind zwei 
nicht miteinander vereinbare dinge...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> langzeitgenauigkeit und netzfrequenz sind zwei
> nicht miteinander vereinbare dinge
Doch genau das ist beim Netz garantiert, dass über lange Zeit (Tage, 
Wochen) der Mittelwert 50Hz ist. Kurzzeitig (Stunden) sind da schon 
Abweichungen bis 0,1% drin.
Siehe u.A. auch 
http://members.magnet.at/alpha-channel/electro/Las...

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell funktioniert das. Meine Uhr läuft so seit Jahren stabil und 
pendelt immer so +/-30s um die Funkuhrzeit.
Ich greife das Signal ähnlich ab wie du: Hinter dem Gleichrichter und 
einem RC Filter. Allerdings lasse ich parallel dazu einen Timer mit 1kHz 
laufen, und lasse die Netzimpulse (2x50Hz) nur dann als gültige Werte 
zu, wenn der im 1kHz Interrupt erhöhte Wert zwischen 8 und 12, also 
zwischen 80 und 120Hz liegt. Damit vermeide ich Störungen rund um den 
Umschaltpunkt.
Einfach geht das z.B. indem man den Interrupt den das externe Signal 
auslöst, immer für 8ms nach jedem Interrupt abschaltet.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andi D. wrote:
> mal was zur grundidee: langzeitgenauigkeit und netzfrequenz sind zwei
> nicht miteinander vereinbare dinge...

Das würd ich so nicht sagen.
Die Langzeitgenauigkeit der Netzfrequenz ist sogar ziemlich gut.
Die Kurzzeitgenauigkeit ist nicht so toll.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andy

Du irrst, gerade bei der Netzfrequenz ist die Langzeitstabilität sehr 
gut (siehe z.B. die netzsynchronen Uhren) - die Kurzzeitstabiltät ist 
allerdings nicht so doll(hier wird aus Lastgründen nachgeregelt).


@shaun

Den Komparator brauchst du nicht, das Signal formen die eingebauten 
Schutzdioden an jedem Portpin - ich würde aber einen 22n C nehmen.

Schau mal bei den ganzen Uhrenbastlern in den Code, da findest du sicher 
was!

Viele Grüße,

egberto

Autor: Stefan Huebner (shaun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ihr alle, das ging ja schnell. Ich merke schon, ich war hier zu 
lange nicht mehr :)
@Benedikt: die 8ms-Ausblendung hatte ich ja auch schon angedacht. Fürs 
Multiplexen habe ich eine 500Hz-Zeitbasis laufen, da liesse sich also 
was machen. Dadurch, dass Du die Werte (8 und 12) klein genug gewählt 
hast, brauchst Du die beiden Ereignisse auch nicht synchronisieren.

@Egberto: Ich hatte die 2n2 eingesetzt, um eine gewissen 
Flankensteilheit zu erhalten. Da ich nur mit 14VAC arbeite, kriecht das 
Signal schon ganz ordentlich zwischen den durch die Schutzdioden 
definierten Grenzen hin und her, kein Vergleich mit den 
Appnote-Schaltungen, die direkt am Netz hängen - da sieht der Port in 
der Tat fast ein Rechteck, bei mir ist es dann doch eher ein 
angeplatteter Sinus (naja.....)

Am wichtigsten scheint mir das Ausblenden potenzieller Störungen, ich 
werde das heute abend mal einbauen. Das Ganze ist übrigens eine 
Ersatz-Platine für die Original-Berlinuhr aus den 80ern (Tischmodell). 
Für den Nostalgiker, der an seinem Stück hängt und keinen Nachbau für 
teuer Geld erwerben will ;)

Autor: nemon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.etrans.ch/services/online/frequency/ mal so als anhaltspunkt. 
über den tag und über das jahr gesehen ist die netzfrequenz sehr gut. 
aber wenn vormittags die belastung zunimmt, geht die frequenz minimal 
zurück, das wird aber in der regel nachts ausgeglichen

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... ich habe so z.B. Betriebsstundenzähler realisiert die "hinreichend" 
aussagekräftig sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.