Forum: Mikrocontroller und Digitale Elektronik Meteotime-Bits stören Auerswald DCF-Uhr


von Roland S. (chromagraph)


Lesenswert?

Hallo zusammen,

seit über 25 Jahren verlasse ich mich auf meine DCF77 Funkuhr. Das ist 
ein Gerät von Conrad, in dem eine Auerswald DCM77 Platine mit einem 
ACEM-Empfänger werkelt.

Seit 2006 mit der Aufschaltung der Meteotime-Signale verliert die Uhr 
die DCF-Syncronisation bereits wenige Minuten nach dem Einschalten. Sie 
läuft zwar impulsgesteuert scheinbar richtig weiter, die LED-Anzeige der 
synchronen DCF-Kopplung (LED DCF-Zeit)geht aber aus. Eine automatische 
Zeitanpassung und eine automatische Sommerzeitumstellung erfolgt dann 
natürlich nicht mehr.

Ich gehe davon aus, dass das eingesetzte Decoder-IC (20polig von Philips 
mit der Bezeichnung GDS DCF Vers 3.1) fehlerhaft programmiert worden ist 
und durch die variablen Wetterbits durcheinander gerät. Die eingesetzte 
Decoderbaustein scheint sich wohl darauf zu verlassen, dass die Bits 
1-14 immer gleich bleiben und benutzt für die Redundanzprüfung einfach 
alle 58 Bits.

Ein Schaltplan liegt mir zwar vor, ich habe aber nirgendwo etwas darüber 
finden können, ob es in der Zwischenzeit eine neue (geänderte) Version 
von diesem IC gibt, und kann auch nicht erkennen, was für ein Baustein 
sich hinter der Bezeichnung versteckt. Ich befürchte, dadurch wird eine 
eigene Korrektur schwerlich machbar sein.

Ich möchte deshalb zwischen ACEM-Empfänger und der Auswerteplatine eine 
Schaltung einfügen, die nach dem fehlenden Sekundenbit (nach der 59. 
Sekunde) dafür sorgt, dass die nächsten 14 Bits alle nur eine Länge von 
100ms (logisch 0) haben. Die Lösung, die Bits 1-14 dauerhaft auf 0 zu 
setzen, könnte hier für einen wirksamen Workaround sorgen.

Das Problem dürfte bei eigenen Leuten aufgetreten sein, da noch viele 
dieser Uhren aus der damaligen Zeit in Betrieb sind. Oder habe ich 
womöglich ein ganz seltenes Einzelstück in Verwendung?

Gibt es solch eine Schaltung bereits? Oder hat jemand einen Tipp, wie 
ich das am elegantesten lösen kann? Eine diskrete Schaltung würde ich 
für diese Uhr passender finden, als ein kleiner ATTiny, der die 
Meteotime-Bits aus dem DCF-Signal entfernt.

Wer kann mir helfen? Gruß aus Kiel von Chromagraph

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Roland S. schrieb:
> Eine diskrete Schaltung würde ich
> für diese Uhr passender finden, als ein kleiner ATTiny, der die
> Meteotime-Bits aus dem DCF-Signal entfernt.

Passender vielleicht. Aber praktikabel?
Diskret: Du müsstest ein FlipFlop mit einem Zähler verheiraten. Dieses 
FF wartet auf die 59-ste Sekunde und gibt dann den Zähler frei, der 
durch die kommenden DCF-Pulse getriggert wird. Der Zähler muss bis 
mindestens 14 zählen können. Ein 2. FF wird über den DCF-Ausgang 
geblendet und generiert solange 0-Pulse, bis der Zähler bei 14 
angekommen ist. Dann werden die originalen Pulse wieder durchgeleitet. 
Müsste mit 3 oder 4 CMOS Gatterschaltkreisen zu erledigen sein.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ist es nicht praktikabler einfach einen neuen Wecker zu kaufen?

von Sebastian (Gast)


Lesenswert?

Es geht hier mit ziemlicher Sicherheit um den Nostalgiefaktor und Erhalt 
historischer Geräte. Die Auerswald-Funkuhr kenne ich auch, allerdings 
ist bei meiner der Empfänger defekt, daher ist sie nicht mehr in 
Betrieb.
Wenn sich das ganze mit vier CMOS-Schaltungen abbilden ließe, was wäre 
dann mit einem, dem Nostalgiefaktor absolut angemessenen, GAL-Baustein? 
Notfalls eben zwei, oder ein Mini-CPLD (Lattice Mach4-32, oder ein 
ispLSI 1016 - könnte sogar von der technischen Epoche her hinkommen).

Wenn jemand Lust hat, die erforderliche Logikbeschreibung zu liefern (ob 
nun CUPL, ABEL, PALASM oder irgend einem moderneren Tool bis hin zu 
VHDL), dann wäre ich durchaus bereit, ein oder zwei damit programmierte 
GALs zu spendieren.

von eProfi (Gast)


Lesenswert?

Roland, ist der Schaltplan öffentlich zugänglich?
Oder kannst Du ihn bitte hier veröffentlichen?

von MaWin (Gast)


Lesenswert?

> Ich möchte deshalb zwischen ACEM-Empfänger und der Auswerteplatine eine
> Schaltung einfügen, die nach dem fehlenden Sekundenbit (nach der 59.
> Sekunde) dafür sorgt, dass die nächsten 14 Bits alle nur eine Länge von
> 100ms (logisch 0) haben. Die Lösung, die Bits 1-14 dauerhaft auf 0 zu
> setzen, könnte hier für einen wirksamen Workaround sorgen

Problemlos mit Standardchips aufbaubar:

      +-------------------------|\
      |  +-------+   +-------+  |&)-- DCF
DCF --+--|74HC123|---|74HC123|--|/
         +-------+   +-------+ _
           1.5sec      14 sec  Q

(schau ins Datenblatt des 74HC123 nach der Beschaltug)

von eProfi (Gast)


Lesenswert?

MaWin, das ist ein bisschen zu einfach, da Du die ersten 14 Bits ganz 
entfernst. Sie müssen aber durch 0,1s-Impulse ersetzt werden.

von Roland S. (chromagraph)


Angehängte Dateien:

Lesenswert?

Saubere Idee mit nur einem Dual-Mono-Multivibrator. Zuerst wird die 
Pause detektiert und dann die folgenden gesamten ersten 14 Sekunden 
weggeschnitten. Ich bin mir allerdings ziemlich sicher, dass dadurch der 
Sekundentakt verloren geht. Irgendwie müßte für die ersten 14 Sekunden 
jeder Minute ein Monoflop nur die Impulsdauer vom DCF-Signal auf 100 ms 
begrenzen. Ist das Bit im Datentelegramm nur 100 ms, passiert nichts. 
Ist das Bit aber 200 ms lang, dann wird der Ausgang vom Und-Gatter nach 
100 ms nach Low gelegt. Dadurch kommen dann alle Bits als Sekundentakt 
durch, haben aber eine einheitliche Länge von 100 ms.

@ eProfi: Der Schaltplan ist mit dem Bausatz mitgeliefert worden. Ich 
denke, dass nach 30 Jahren keine Probleme mit einer Weitergabe 
entstehen.

@ Sebastian: Der Schaltplan vom ACEM-Empfänger liegt auch vor. Solltest 
du deine Uhr wieder instandsetzen wollen, kann ich den Plan 
veröffentlichen. Der Empfänger ist eigentlich überschaubare Technik mit 
handelsüblichen Bauteilen.

von Jürgen L. (Gast)


Lesenswert?

Vielleicht ein bisschen abwegig... aber warum nicht einfach den 
Controller komplett ersetzen durch etas selbst programmiertes?

von MaWin (Gast)


Lesenswert?

> MaWin, das ist ein bisschen zu einfach, da Du die ersten 14 Bits ganz
> entfernst. Sie müssen aber durch 0,1s-Impulse ersetzt werden.

Ok, also:

          0.1 sec
         +-------+              +----+
      +--|74HC123|--------------|B   |
      |  +-------+              | MUX|--
      +-------------------------|A   |
      |                         +----+
      |  +-------+   +-------+    |
DCF --+--|74HC123|---|74HC123|----+
         +-------+   +-------+
           1.5sec      14 sec

von Bal T. (baltic)


Lesenswert?

Hallo Roland,

persönlich würde ich den alten MC (Dekoder) entfernen und durch ein 
aktuelles Modell mit einem eigenen Programm ersetzen. Ein ATtiny2313 
(AVR) bzw. ein AT89S2051 (8051) sollte mit wenigen Änderungen an der 
Schaltung den Platz vom alten MC einnehmen können. Ein Zwischensockel 
zur Anpassung des Pinouts wäre auch denkbar.

Gruß Jens


PS: Hast Du mal ein Foto von der Platine?

von sffdfdf (Gast)


Lesenswert?

eh ihr leut!

lasst doch die Finger von den Monos, das funktioniert nie richtig.
Die Cs altern, es gibt Probleme mit Fehltriggerungen duch spikes.

Einfach einen kleinen PIC oder Atmel rein und fertig.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

sffdfdf schrieb:
> Einfach einen kleinen PIC oder Atmel rein und fertig.

Siehe ersten Beitrag:

Roland S. schrieb:
> Eine diskrete Schaltung würde ich
> für diese Uhr passender finden, als ein kleiner ATTiny,

von Michael U. (amiga)


Lesenswert?

Hallo,

sffdfdf schrieb:
> lasst doch die Finger von den Monos, das funktioniert nie richtig.
> Die Cs altern, es gibt Probleme mit Fehltriggerungen duch spikes.
Stimmt, die Dinger wurden entwicklet und hergestellt, weil man sie nicht 
benutzen konnte...
Der Toleranzbereich ist hier so groß, so altert kein C in sinnvollen 
Zeiträumen.
Wenn Spikes ankommen sollten, muß sie auch der jetzige Decoder 
wegstecken können.
Schlimmstenfalls wird der ein paar mehr Pakete verwerfen als jetzt 
sowieso schon.

Man kann es zumindest mit wenig Aufwand aufbauen und testen.

Gruß aus Berlin
Michael

von Henrik Haftmann (Gast)


Lesenswert?

Mikrocontroller davor setzen, wie hier zu sehen:
http://www-user.tu-chemnitz.de/~heha/bastelecke/Konsumg%C3%BCter-Bastelei/Funkuhr/#Filter
Funktioniert seit nunmehr 5 Jahren einwandfrei.

von Roland S. (chromagraph)


Lesenswert?

Hallo Hendrik,
das ist eine wirklich vorzügliche Idee, die fehlerhafte Programmierung 
meiner Uhr mit nur einem Att12p zu korrigieren.

Ich habe in der Zwischenzeit die Lösung von MaWin ausprobiert. Sind also 
drei Monoflops mit zusätzlichen Eingangs- und Ausgangsgattern. Die 
Lösung läuft seit 18 Manaten ohne Störungen. Mir ist diese Lösung 
platzmäßig jedoch zu groß. Ich konnte dadurch aber zweifelsfrei 
feststellen, dass der Philips-Dekoder mit der Bezeichnung GDS DCF Vers 
3.1 fehlerhaft programmiert worden ist.

Deine Lösung hatte ich damals schon gefunden und würde sie wirklich gern 
ausprobieren und einsetzen. Leider hat die DCF-Uhr von Auerswald keinen 
Taktquarz mit 32,768 kHz. Ich könnte dort nur den Quarztakt von 4,9152 
MHz abgreifen. Siehe Schaltplan oben. Das ist Faktor 150x schneller. 
Könnte man die Taktfrequenz in deinem Programm darauf einstellen? Ich 
würde es sehr gern ausprobieren. Ich müßte allerdings noch jemanden 
finden, der mir den Attiny12 beschreibt. Gern würde ich alle Kosten 
dafür übernehmen. Könnte ich dich dazu überreden?

fragt Roland mit vielen Grüßen aus Kiel (Chromagraph@t-online.de).

von Anja (Gast)


Lesenswert?

Roland S. schrieb:
> seit über 25 Jahren verlasse ich mich auf meine DCF77 Funkuhr.

Da wirds aber mal Zeit die Elkos zu wechseln.

Bei meiner Selbstbau-DCF77 Uhr hat der Spannungsregler für den Empfänger 
angefangen zu schwingen weil 2 Elkos ausgetrocknet waren.

Gruß Anja

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Roland S. schrieb:
> Leider hat die DCF-Uhr von Auerswald keinen
> Taktquarz mit 32,768 kHz. Ich könnte dort nur den Quarztakt von 4,9152
> MHz abgreifen. Siehe Schaltplan oben. Das ist Faktor 150x schneller.

Nimm statt des Tiny12 einen Tiny13, der hat einen internen Taktteiler. 
Wenn Dein Quarz tatsächlich auf 4,91 und nicht auf 4,19Mhz läuft, muss 
das Programm intern halt auf den Sekundentakt umrechnen.

von HFF (Gast)


Lesenswert?

Leichenschänder... mann... :P

von berry (Gast)


Lesenswert?

Was mache ich falsch? Ich habe den Code von Henrik Haftmann in AVR 
Studio 4 kopiert und wollte diesen testweise assemblieren. Daraufhin 
hagelt es haufenweise Fehlermeldungen, die nicht nachvollziehbar sind. 
Eigentlich müsste doch die gleiche .hex-Datei dabei heraus kommen wie in 
FunkFilt.zip. Oder liege ich da völlig daneben?
ich würde dann die Power-Down Option heraus nehmen, weil ich diese für 
o. g. Funkuhr nicht benötige.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

berry schrieb:
> Daraufhin
> hagelt es haufenweise Fehlermeldungen

Welche?

von berry (Gast)


Lesenswert?

Hallo Knut,

habe folgende Meldungen bekommen:

error : Undefined variable referenced
error : Internal - label changed between passes -
warning: Immediate byte operand out of range

diese kommen mehrfach vor, davon 10 mal "Internal - label changed 
between passes -"

im Ergebnis: "Assembly complete with 13 errors"

Gruß berry

von [Frank] (Gast)


Lesenswert?

@berry

Stell unter Projekt -> Assembleroptionen
AVR Assembler Version 2 und nicht Version 1 ein, dann geht das schon.

von berry (Gast)


Lesenswert?

[Frank] schrieb:
> Stell unter Projekt -> Assembleroptionen
> AVR Assembler Version 2 und nicht Version 1 ein, dann geht das schon.

Habe ich probiert, funktioniert leider auch nicht.

Ich hatte inzwischen versucht einen Tiny13A zu programmieren, hatte 
dafür die Register TIMSK nach TIMSK0 und TCCR0 nach TCCR0B im Code 
geändert. Fehler werden so beim Erzeugen der HEX-Datei nun nicht mehr 
angezeigt. Bekomme das mit dem Takt aber nicht hin (interner Takt des 
Tiny13 auf 128kHz gefused). Bin einfach noch zu sehr Anfänger um den 
Code richtig ändern zu können. Der Ausgang PB0 Pin 5 bleibt ständig auf 
Low. Auch der Aufbau eines externen Taktgebers ist gescheitert. TTL 7400 
schwingt nicht an, CMOS 4011 schwingt wild (ca. 2,5MHZ) offensichtlich 
sind die Drähte am Steckbrett zu lang. Ich verwende einen Diamex 
USB-ISP-Programmer mit STK500 Protokoll, aber Atmel unterstützt den 
Tiny12 anscheinend nicht mehr und ich weiß nicht wie ich das Ding 
beschreiben soll.
Weiß Jemand Rat, wie man einen Tiny 12 mit STK500 Protokol programmieren 
kann?

von berry (Gast)


Lesenswert?

Nun gut, wenn man natürlich AVR-Studio4 nicht in der letzten Version 
hat, darf man natürlich auch keine Antwort erwarten. Hab's nun 
hinbekommen einen Tiny12 zu beschreiben. Doch nach vielen Stunden 
vergeblicher Mühe funktioniert auch das nicht. Wie mir scheint, hat es 
nach der Henrik-Methode auch noch Niemand hinbekommen.

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
Noch kein Account? Hier anmelden.