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 !
Das IST ein binäres Signal. Screen kann Dir das nur nicht korrekt anzeigen, denn das will ASCII. Schau Dir mal an wie man binäre Daten einliesst und in lesbare Zeichen konvertiert.
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...
Nabend, Info zum DCF77 Empfänger (Typ) wäre hilfreich MfG
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.
Guido L. schrieb: > 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. https://de.wikipedia.org/wiki/DCF77#Zeitinformation
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
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?"
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.
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/
Mit einem negierten DCF Signal auf dem Rx Pin einer UART ging das doch auch?! Die Bitrate muß auf ~50 BPS konfiguriert werden, IIRC.
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" .
ASCII oder so darf man dann aber auch nicht erwarten. Bei einem 100ms low Puls und 50bps sollte dann die Bits 0 bis ~3 low sein. (LSB first!) Bei einem 200ms sollte alle Bits low sein.
alternativ läßt sich eventuell auch das Projekt vom RasPi auf BBB übertragen: http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-DCF77/index.html
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.