In meiner Hauselektronik sind mehrere SPS (siehe Menü Elektronik/SPS/SPS) und das DCF77-Modul per CAN-Bus miteinander verbunden. Die Software ist in BASCOM (MCS-Electronik) geschrieben und unterstützt zur Zeit nur den CAN-Bus. Andere Schnittstellen sollten sich aber recht einfach programmieren lassen. Die entsprechenden Pins für I2C, SPI oder seriell sind bereits zur Anschlussleiste herausgeführt.

Je nach verwendeter Schnittstelle gibt es Unterschiede in der Bestückung (siehe Stückliste). Für die serielle Schnittstelle muss z.B. ein anderer Quarz eingebaut werden, um Timingfehler zu vermeiden. Bei der Variante mit CAN-Bus ist für den Schnittstellentreiber zusätzlich der Adapter SO-8 (siehe Menü Elektronik/Adapter/SO-8) nötig, da bei Reichelt das IC nicht mehr im DIL-Gehäuse erhältlich ist. Dafür wird der AT90CAN128 dieses mal direkt aufgelötet, ohne Adapterplatine.

Die grüne LED blinkt im Sekundentakt und zeigt dadurch die Funktion des AT90CAN128 an. Bei fehlender Synchronisation blinkt die gelbe LED immer im Takt des DCF-Empfangssignals. Nach erfolgreicher Synchronisation geht das Blinken in ein Dauerleuchten über. Im Datenprotokoll wird ein Statusbyte mitgesendet, welches anzeigt, ob der DCF-Empfänger synchronisert ist, der Atmel mit der internen Uhr läuft oder seit mehr als 24 Stunden keine DCF-Daten empfangen wurden. Nach dem Einschalten muß der Empfänger einmal sychronisiert gewesen sein, bevor CAN-Nachrichten versendet werden.

Zu jeder vollen Minute werden dann 8 Byte gesendet : Stunde, Minute, Sekunde, Tag, Monat, Jahr, Wochentag, Status.

Wochentag :

1 = Montag
2 = Dienstag
......

Status :

0 = interne Uhr
1 = DCF synchron
2 = Fehler, keine Synchronisation seit 24 Stunden (wenn Extend_errormsg = 1)

Wegen Empfangsproblemen wurde im Herbst 2020 eine Überarbeitung der Platine nötig. Das Empfängermodul sychronisierte nicht mehr bzw. es wurden keine CAN-Nachrichten mehr gesendet. Um Störungen auf der Spannungsversorgung zu vermindern, bekam der Eingang eine Entstördrossel mit Kondensator. Trotzdem verweigerten die Conradmodule weiterhin die Synchronisation.

1. Das Conrad-Modul (open collector-Ausgang) stirbt recht frühzeitig und reagiert dann auf die kleinste Restwelligkeit der Versorgungsspannung mit Empfangsstörungen. Man kann die Spannung sieben / filtern wie man will, das Modul empfängt nur noch Müll. Mit Batterie funktioniert es noch.

2. Das Reichelt-Modul (Digitalausgang 0V-5V) hat einen so schwachen Ausgang, daß der Eingang vom Atmel nicht auf 0V gezogen wird. Das Oszilloskop zeigte Impulse zwischen 5V und 4V. Mit dem nachgeschalteten FET ist dieses Problem beseitigt.

3. Das Pollin-Modul (Digitalausgang 0V-3V) arbeitet mit 3V, was recht knapp über der Spannung liegt, die der Atmel-Eingang als 1 erkennt. Vorsichtshalber habe ich auch hier den FET eingebaut.

Die fehlenden CAN-Nachrichten hatten mehrere Ursachen. Mit einem defekten Funkmodul gerät anscheinend die DCF-Software durch zu viele Fehlimpulse durcheinander. Problematischer war in BASCOM die fehlerhafte Einstellung der $hwstack / $swstack / $framesize. Laut BASCOM-Hilfe werden hier recht hohe Werte benötigt. Durch die falschen Werte wurden Teile des Programmes im SRAM überschrieben.

DCF77 CAN-Bus

Dokumentation, Layout für Europakarte (160mm x 100mm), Bestückungsplan, Stückliste und Software

Datenblatt AT90CAN128

Datenblatt PCA82C250

Datenblatt 78L05

Datenblätter DCF-Module

Datenblatt ZVN4206A