www.mikrocontroller.net

Forum: Projekte & Code DCF77-Signal generator


Autor: Clemens Helfmeier (sum)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe eine Funkuhr gebaut. Leider ist der Empfang in der Nähe von
PC-Monitoren immer sehr miserabel, so dass ich auf ein Ersatzsignal
angewiesen war. Dafür ist dieses kleine Programm entstanden, welches
die aktuelle Systemzeit über die seriell Schnittstelle (TXD-Leitung) in
DCF77-Codierung ausgibt. Einfach 100k von TXD an den Eingangspin vom
AVR, der das DCF77-Signal aus einem Modul sonst empfangen würde, hängen
und schon ist es fertig.

Nun wollte ich nicht das "wertvolle" Teil (ich habe leider keine
Alternative im Netz für die seriell Schnittstelle finden können) der
Nachwelt zur Verfügung stellen.

Achtung: Es ist ein Linuxprogramm.

Schöne Grüße, Clemens

Autor: Thomas Schattat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich schon vor Jahren mal als Windows Programm gemacht. Bei Interesse
kann ich das auch mal einsatellen.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas,

bitte darum.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Kollege hat sowas mal in QBasic programmiert. Er kann einer neben
dem PC-Monitor stehenden DFC77-Uhr eine beliebig wählbare Zeit
übermitteln, ich meine, er läßt den Monitor einfach im Sekundenrhythmus
ein Bild anzeigen, das bei 77,5 kHz eine starke Störfrequenz hat. Ist
schon eine Weile her, daß er mir das vorgeführt hat, ich weiß die
Einzelheiten nicht mehr.

Autor: Thomas Schattat (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, war ein paar Tage nicht im Forum.
Ich hänge mal ein ZIP an mit drei Borland Dateien und meiner EXE. Die
steuert am COM1 Port eines der Steuerbits (hab vergessen welches) im
DCF Takt. Quelle ist die PC Zeit.
Einfach mal am COM1 messen, da wackelt ein Pin in Sekundentakt.
Bei Fragen helfe ich gerne. Viel Spaß

Thomas

Autor: Michael S. (michi88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

super Sache!
Sowas hab ich gesucht. Ich werde das mal umschreiben, dass man sich 
seinen Algorythmus ohne µC aufm PC schreiben kann und das als Quelle 
nutzen kann!

Falls ich es schaffen sollte, dann würde ich das hier auch zur Verfügung 
stellen, insofern ich es darf. ;)

Vielen Dank

Gruß

Michael

Autor: rogger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Clemens Helfmeier schrieb:
> Leider ist der Empfang in der Nähe von
> PC-Monitoren immer sehr miserabel

da kann man doch Abhilfe schaffen:
Wir wäre es wenn der Monitor das DCF77 signal "emmitiert"?

https://github.com/mazzoo/dcf77

ist auch ein Linux-Programm

hmm sorry, dass ich in so einen alten Thread reinposte

Autor: Michael S. (michi88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich finde, wenn ein Beitrag in einem alten Thread Sinn macht, dann ist 
das total in Ordnung da auch rein zu posten.

So finden andere Leute einfacher etwas was im Zusammenhang steht!

Gruß

Michael

Autor: Thorsten S. (whitejack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...habe gerade meine selbstgebastelte DCF Uhr hier liegen, projektiere 
im Keller, da wäre das hilfreich gewesen, aber nu ist sie schon fertig.

trotzdem. witzige Idee.

T.S:

Autor: Gerrit H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
witziger Weise baue ich momentan in der Schule mit 2 Klassenkameraden 
einen detailgetreuen Nachbau sammt Dezimaluhr. Da sich mein Zimmer im 
Keller befindet haben wir dort das Problem, dass ich das DCF-77 Signal 
kaum empfange. wir haben versucht das Signal zu verstärken, doch dann 
kann es von unserem Microkontroller nichtmehr ausgelesen werden.

Wir haben deswegen auch versucht einen DCF77 Simulator zu entwickeln.
Leider können wir nicht sonderlich gut mit VisualBasic programmieren.
Da dein Simulator genau das ist, was wir brauchen, wollten wir fragen ob 
du uns vielleicht den Quellcode von deinem Programm zur verfügung 
stellen könntest.

mfg Gerrit

Autor: Torben S (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nice. obwohl ich mit meinem projekt fertig bin hat mir dein programm 
nochmal sehr geholfen

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gerrit,
da haste aber Glück gehabt, ich bin nicht immer im Forum und nur 
zufällig drauf gestossen dass da jemand den Quellcode will.
Ich hab die Dateien mal angehängt. Das Ding ist Jahre alt, ich kann da 
keine Hilfestellung geben, wie das funktioniert.
Es war ein Timer drin, weiß nicht mehr wie of der feuerte.
Das ganzte hab ich mit BCB (Borland C++ Builder) geschrieben, glaub 
Version 3 oder so.
Die CPP Dateien könnten zum Verständnis dienen, die sind so keinesfalls 
compilierbar.

Hoffe es hilft, viel Erfolg...

Gruß
Thomas

PS: Wofür der Quellcode? Die EXE macht doch schon was man will...

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... und hier eine Assembler-Variante:

Beitrag "DCF77 Simulator Generator Encoder Atmega8 Assembler"

Bernhard

Autor: Wilhelm; DK4TJ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.

@ Thomas Schattat

Und jetzt das Ganze bitte in Turbo3 oder in Borland Pascal 7...
Bitte nicht ganz ernst nehmen, aber es würde mir weiter helfen.

73 Wilhelm

Autor: Horst Hahn (horha)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

unter TP7 in der Linux-DosBox läuft es.
Es läßt aber nur den Bildschirm blinken, von wegen CRT als DCF77-.Sender 
missbrauchen.
Ich hoffe die ganzen Paritäten richtig hinbekommen zu haben.
Das Verfahren ist einfach. Einmal in der Minute wird ein AusgabeString 
umgemodelt und dann jedes Zeichen Null/Eins entsprechend ausgegeben.
1-> 100ms hell 900 ms dunkel, 0-> 200ms hell und 800 ms dunkel.
Hell entspricht also der Absenkung der Sendeleistung zu Beginn jeder 
Sekunde, ausser der 59.ten

Autor: Thomas Berends (t5b6_de) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute, das ich habe auch noch in petto

http://www.dcf77logs.de/Software.aspx?id=000002

Ich arbeite seit geraumer Zeit an einem Nachfolger, welches etwas 
zuverlässiger ist, aber leider ist es Zeitlich immer mehr von 
wichtigeren Dingen verdrängt worden.

Ebenso habe ich auch einen Generator und Signalerzeuger (77Khz) zum 
Einkoppeln in den Antenneneingang handelsüblicher Uhren erstellt.
(AVRStudio Projekte)

Der Generator besteht aus einem ATTiny 25, und kann bis zu 16 Minuten 
Speichern. Die werden nacheinander "abgespielt".

Programmieren lässt sich das teil über eine Serielle Datenleitung (Takt 
und Daten)

Ich habe das mal Implementiert, weil ich den AVR-Programmer damals nur 
geliehen hatte, mtitlerweile habe ich einen Eigenen, darum programmiere 
ich das EEprom meist nur noch über AVR-Studio.

Der Signalerzeuger ist ebenfalls ein ATTiny25 musste aber einen 18.4MHz 
Quarz von einem alten Mainboard benutzen, weil ich den Internen Takt 
nicht hoch genug treiben konnte, für die Signalerzeugung. Dann geht das 
Signal über einen Bandpass sodass ich nen halbwegs sauberen Sinus am 
Ausgang habe.

Anbei ein paar Fotos
(Im nächsten Post, irgndwie will das beim bearbeiten nicht)

Falls Interesse besteht suche ich diese gerne heraus.

Autor: Thomas Berends (t5b6_de) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag an den Admin:
Die Foren-Software Sollte mal aktualsiert werden, Ich sehe hier nicht 
das schon Fotos hochgeladen wurden, Sehe nur "Keine Datei" bei 
Dateianhang im Editor. Browser ist Chrome.
Nun sind 3 Dateien Oben, sollten aber nur 2 sein.

Autor: PeterL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte man damit z. B. Kirchenglocken testen ?
(natürlich mit mehr 77kHz Power)
Ich denke, dass die meisten über DCF77 synchronisieren.
Wollte immer schon wissen wie die Glocken um Mitternacht klingen (zu 
Sylvester ists zu laut, da gehen sie unter)

Autor: Thomas Berends (t5b6_de) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Können tut man vieles, nur das Signal muss dann da oben um ein 
Vielfaches stärker ankommen, als das Original, und darf auch nicht zu 
stark sein.

Wobei die einfachere Methode die wäre, dass man besser bis Mitternacht 
wartet. Und ob man so Ohne weiteres ein vorhandenes DCF77-Signal 
übertönen darf,...

Gruß

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Berends schrieb:
> Und ob man so Ohne weiteres ein vorhandenes DCF77-Signal
> übertönen darf,...

Ich glaub das darf mann leider nicht sonnst kommt die BNA ganz schnell 
daher und tauscht deinen Sender gegen eine Rechnung aus wegen Illegaler 
frequenznutzung, usw.

Das andere wäre, wie schlau ist die Uhr, wenn da jetzt plötzlich eine 
andere Zeit gesendet wird. Da würde mir auch so einiges an Unsinn mit 
Schulgonganlgen einfallen...

Autor: Horst Hahn (horha)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein Programm oben hat so seine Macken.
dayofweek war falsch, weil ich KalTagE (= Einerstellen von KalTag) statt 
KalTag übergeben habe. Bei der Ausgabe der Parität der Minute habe ich 4 
statt 1 BIT ausgeben lasssen, sodass die Stunden verschwanden., das sah 
ich beim Test von 23:59 auf 00:00 nicht...
Anbei eine neue Version die an der serieller Schnittstelle 1 DTR/RTS 
invertiert, sogar mit FreeDos auf einer SD-Card und TP7 getestet und 
tatsächlich, es tut sich was.
Dummerweise sind die delay Routinen sehr ungenau beziehungsweise steckt 
ein Faktor 2 drin( bei DOSbox unter WIN7 auch).
Mit {$DEFINE Echtzeitausgabe} kann man die zeitliche Ausgabe testen, 
sonst { $DEFINE Echtzeitausgabe} ist es nur ein Geschwindigkeitstest der 
Ausgabeaufbereitung.
Mit {$DEFINE HatPortZugriff} oder {  $DEFINE HatPortZugriff} regelt man 
den Zugriff auf die serielle Schnittstelle. sonst moppert Win7 /Linux 
mein Notebook ohne Schnittstelle.
EDIT:
Nur in der DOSBox waren die Zeiten so ungenau.
Linux/Win7/Feedos kamen nach einer Minute auf 59,95 s..60,09 Sekunden.

Autor: Jens Schilling (jens24)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Schattat schrieb:
> Hallo, war ein paar Tage nicht im Forum.
> Ich hänge mal ein ZIP an mit drei Borland Dateien und meiner EXE. Die
> steuert am COM1 Port eines der Steuerbits (hab vergessen welches) im
> DCF Takt. Quelle ist die PC Zeit.
> Einfach mal am COM1 messen, da wackelt ein Pin in Sekundentakt.
> Bei Fragen helfe ich gerne. Viel Spaß
>
> Thomas

Hallo,
habe mir die zip mal geladen. Am pin 4 der seriellen schnittstelle 
blinkt es. Habe nun über einen Optokoppler den atmega angeschlossen, 
aber der synchronisiert nicht. Das gleiche auch wenn ich den direkt über 
einen vorwiderstand an den com anschließe. Die ersten 20 sekunden sieht 
alles normal aus aber dann kommt error.
Jemand das Teil schonmal erfolgreich getestet???

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@jens,

vielleicht muss das Ausgangssignal noch invertiert werden?

Hier findest Du Möglichkeiten, das DCF-Signal (bzw. die Signalquelle) 
genauer zu untersuchen.

Beitrag "Ein VB6-Programm dekodiert das DCF77-Signal. Das kommt von einem Mikrocontroller/avrasm über COM1"

Beitrag "DCF77 Simulator Generator Encoder Atmega8 Assembler"

Bernhard

Autor: Jens Schilling (jens24)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard S. schrieb:
> @jens,
>
> vielleicht muss das Ausgangssignal noch invertiert werden?
>
> Hier findest Du Möglichkeiten, das DCF-Signal (bzw. die Signalquelle)
> genauer zu untersuchen.
>
> Beitrag "Ein VB6-Programm dekodiert das DCF77-Signal. Das kommt von einem Mikrocontroller/avrasm über COM1"
>
> Beitrag "DCF77 Simulator Generator Encoder Atmega8 Assembler"
>
> Bernhard

Hallo Bernhard,

es liegt an dem Programm. Im ATMega steht invertiren auf Automatik.
Habe mir dann mal den DCF Generator geladen, damit funktioniert es. Der 
Nachteil ist aber das das Programm nur zum Testen gut ist. Ich wollte 
mir den Ärger mit schlechtem Empfang und Störungen einfach sparen und 
das Signal vom NTP-Server über die serielle Schnittstelle in meine Uhren 
einspeisen.Da könnte ich nämlich direkt mit der dezentralen 
Stromversorgung aller meine Uhren über eine 3. Ader auch zentral das 
Signal einspeisen. Momentan hat jede Uhr ihren eigenen Empfänger und 
jeder Empfänger so seine Tücken, sei es das Vorschaltgerät meiner 
LED-Lampe oder sonstwas.
NTP dort einzuspeisen wäre ideal, da mein Server eh rund um die Uhr 
läuft.
Oder hast du inzwischen was neues kreiert was ohne Störungen läuft?

Autor: Jens Schilling (jens24)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Schattat schrieb:
> Hallo, war ein paar Tage nicht im Forum.
> Ich hänge mal ein ZIP an mit drei Borland Dateien und meiner EXE. Die
> steuert am COM1 Port eines der Steuerbits (hab vergessen welches) im
> DCF Takt. Quelle ist die PC Zeit.
> Einfach mal am COM1 messen, da wackelt ein Pin in Sekundentakt.
> Bei Fragen helfe ich gerne. Viel Spaß
>
> Thomas

Ja wackelt, aber keine Uhr synchronisiert. Funktioniert leider nicht. 
Die Pulse sehen auch viel zu lang aus.

Autor: Vladimir Strokun (Firma: AKSON) (supervolens)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Hallo Gerrit,
> da haste aber Glück gehabt, ich bin nicht immer im Forum und nur

> Die CPP Dateien könnten zum Verständnis dienen, die sind so keinesfalls
> compilierbar.
>
> Hoffe es hilft, viel Erfolg...
>
> Gruß
> Thomas
>
> PS: Wofür der Quellcode? Die EXE macht doch schon was man will...

Hallo!
Ich brauche die fehlenden Dateien Form1,DCFSimulator.res

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.