RTC in Beaglebone durch DCF77 - Problem mit dem Signal

Gast #5291008
Lesenswert?

Hi Leute,

um eine RTC in meinem BBB zu haben, will ich das Zeitsignal aus einer 
DCF77 bekommen und dekodieren. Problem dabei:

Ich verbinde die DCF-Empfängerplatine (GND VCC 3,3V UART4). Durch ein 
Skript zum Dekodieren bekomme ich fehlerhafte Ergebnisse. Grund dafür 
ist, dass das Signal das ich bekomme kein binäres Signal ist:

screen /dev/ttyO4 gibt mir Wörter ab und nicht eine Reihe von 1 und 0.
Wie z.B. : ôâôôôôôâòá

Danke !
Gast #5291114
Lesenswert?

Danke für deine Rückmeldung Jim. Ich werde es versuchen.

Ich habe es auch anders versucht, indem ich den Ausgang des UART Pins in 
einer Variable eintrage und sie dann printe durch

ser = serial.Serial(port = "/dev/ttyO4")
...
old_state = ser.read(59)
print(old_state)
...
--> print(ser.read(10))


Das hat auch das gleiche wie screen abgegeben.

Danke für die Unterstützung. Bin neulich in dem Bereich eingestiegen...
#5291919
Lesenswert?

Majd schrieb:
> Ich verbinde die DCF-Empfängerplatine (GND VCC 3,3V UART4). Durch ein
> Skript zum Dekodieren bekomme ich fehlerhafte Ergebnisse.

Das Problem ist, dass so ein normaler DCF77 Empfaenger keine seriellen 
Daten im Format einer RS232 oder serial-TTL ausgibt, sondern nur eine 
Art 0 und 1 indem es digitale High und Low Signale in entsprechender 
Laenge ausgibt.

D.h. man braucht anstatt eines seriellen Ports einen freien GPIO, den 
man auf digital und Eingang stellt und dann den Wert (0 oder 1) ausliest 
und die Laenge misst.

Bis jetzt kenne ich zusaetzlich nur Bausteine, die DCF77 selber 
dekodieren und dann seriell die Uhrzeit ausgeben.

Ausserdem gibt es meist Probleme, wenn der BB (oder sonstige Rechner) 
die Spannung fuer den DVF77 Empfaenger liefern, weil dann das Signal 
gestoert empfangen wird.
Gast #5296605
Lesenswert?

Guido L. schrieb:

> D.h. man braucht anstatt eines seriellen Ports einen freien GPIO, den
> man auf digital und Eingang stellt und dann den Wert (0 oder 1) ausliest
> und die Laenge misst.

Danke Guido.. Wie sind die Werte eines gpios auszulesen? Am meisten dass 
es sich hier nicht nur um ein Bit sondern um >58 handelt?

wDanke im Voraus
#5296621
Lesenswert?

Majd schrieb:
> Wie sind die Werte eines gpios auszulesen?

angenommen positive Logik, Sekunden Puls ist 100ms oder 200ms für 1/0

1. hi oder low feststellen
2. die Länge von hi und von low ermitteln
3. die Abstände von hi zu hi ermitteln

wenn alles passt auswerten!

Beispielprogramme und Erklärung gibts doch oft im Netz

https://de.wikipedia.org/wiki/DCF77
http://www.hopf.com/pics/dcf77-time-code-format.jpg
https://www.ptb.de/cms/ptb/fachabteilungen/abt4/fb-44/ag-442/verbreitung-der-gesetzlichen-zeit/dcf77.html
https://www.elv.de/elektronikwissen/das-dcf77-zeitsignal.html

Beitrag "Re: DCF77 Code von Peter Dannegger?"
#5296676
Lesenswert?

die Referenzimplementierung des ntp Protokolls
(https://www.eecis.udel.edu/~mills/ntp/html/refclock.html#list)
bietet unter Typ8 sogar mehrere RAWDCF Modelle an, die eine breite 
Auswahl von Modulen unterstützen (Eingang, div. Ausgänge in bestimmten 
Pegeln zur Versorgung). Natürlich muß man sich einlesen um sein 
"Spezialmodul" zuordnen zu können oder eben pasend zu adaptieren.
Läuft der ntp-demon mal, ist die lokale Zeit gesichert.
#5296774
Lesenswert?

Majd schrieb:
> Danke Guido.. Wie sind die Werte eines gpios auszulesen? Am meisten dass
> es sich hier nicht nur um ein Bit sondern um >58 handelt?

Fuer den Beaglebone kann ich es Dir nicht direkt schreiben...
Beim GPIO muesstest Du dann die Wechsel und Laenge messen/pruefen, denn 
DCF77 hat auch eine Pruefsummem und am Anfang der Minute eine Pause, die 
muss man erkennen und dann im Programm mitzaehlen.

Alternativ kann man eine Universal-Moeglichkeit nutzen und einen Arduino 
beauftragen, der dem BBB dann die Daten gibt:
http://ahsoftware.de/dcf77-hid-usb-rtc/
Gast #5300621
Lesenswert?

btp schrieb:
> Mit einem negierten DCF Signal auf dem Rx Pin einer UART ging das
> doch
> auch?!
> Die Bitrate muß auf ~50 BPS konfiguriert werden, IIRC.

Nein .. es hat mit dem UART nicht geklappt. Mit den Gpios leider auch 
nicht. Hatte als signal nul "NULLen" .

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren