Pfad: Home => AVR-Übersicht => Anwendungen => DCF77-Empfänger   This page in english: Flag EN
DCF77-Empfang Anwendungen von
AVR-Einchip-Prozessoren AT90S, ATtiny, ATmega und ATxmega
DCF77-Empfänger
Logo
Achtung! Webseite noch nicht fertig! Enthält noch ungetestete Schaltbilder und unfertige Software!

DCF77-Empfänger

Klar: es gibt billigst (und auch sehr teure) fertige DCF77-Empfänger zu kaufen. Warum also selbst bauen? Nun, weil es Spaß macht und weil man auf einfache Weise lernt, Funkwellen zu beherrschen (und nicht als verelendeter Handy-Sklave dahin zu vegetieren).

Herunterladen:

Überblick über die beschriebenen Empfänger Hier gibt es ein paar Bauvorschläge für eigene Empfänger. Da ist für jeden Geschmack etwas dabei: von einfach bis kompliziert, von taub bis hochempfindlich, von niedriger bis hoher Frequenzselektivität, von trimmbar bis quarzstabil und von analog bis digital.

Grün markierte Module sind fertig und funktionieren. Gelb markierte Teile sind noch in Entwicklung, Hard- und Software noch nicht final. Rot markierte Teile werden von mir nicht mehr weiter verfolgt, sie sind obsolet.

Wie man sieht, kommt man ohne Mikrocontroller im Empfängerbau nicht hin: Fünf Stück AVR sind hier verbaubar, zwei davon sind die Mindestmenge. Natürlich kann man das auch alles mit CMOS-IC's, Trimmern oder Potenziometern erledigen, aber Controller brauchen weniger Aufsicht und viel weniger externe Bauteile und sind dazu noch viel zuverlässiger.

Wo landet man, wenn man auf Controller verzichtet? Ich kann ein Lied davon singen, ich habe in den Achtzigern eine solche gebaut. Die Zeit- und Datums-Bits von DCF77 bestehen aus 59 Einzelbits. Dafür braucht man alleine schon mal 8 Stück CMOS-Schieberegister. Verzichtet man auf die untersten 20 Bits, ist man bei 39 Bits oder immer noch bei 5 8-Bit-Schieberegistern. Um die Paritäten der Minuten und Stunden zu überprüfen, braucht man zwei Paritätsgeneratoren. Wenn man auch noch die 23 Datumsbits der Paritätsüberprüfung zuführen will, braucht man drei weitere Paritätsgeneratoren. Da meine Uhr das nicht hatte, zeigte sie oft eigenwillige Zeiten an.

Will man das alles anzeigen, braucht man mindestens zehn 4-Bit-BCD-Speicher-zu-Siebensegment-Decoder. Sollen auch die Sekunden und die Wochentage angezeigt werden, drei weitere davon. Wer noch zu einer einstellbaren Zeit geweckt werden will, braucht dann noch jede Menge weitere Zähler und Vergleicher. Dann noch ein paar Gatter und prall voll ist die Euro-Platine, eng bepackt mit CMOS-ICs, wenn es dazu reicht. Mit allen Zusatzfeatures braucht man zwei Euro-Platinen voll. Und wegen der stromfressenden Siebensegment-Anzeigen wenigstens ein halbes Ampere Betriebsstrom. Das alles schaffen ein 8-poliger ATtiny25 und ein 14-poliger ATtiny24 mit einer 4-zeiligen LCD ganz mühelos, ein 28-poliger ATmega48 zusätzlich mit einem frequenzgenauen Quarz, und für unter 10 mA (im Wesentlichen der Backlight-Strom der LCD), mit 1.200-mAh-Akkus auch bei Stromausfall über mehrere Tage lang. Nein: es lohnt sich einfach nicht mehr, auf Achtziger Jahre CMOS zurückzufallen, nur um sich das Programmieren der zwei oder drei AVRs zu ersparen.

Das HF-Signal kommt entweder von einer einfachen Ferritantenne oder von einer Luftspule. Sowohl die Ferritantenne als auch die Luftspule können einfach oder gekreuzt aufgebaut sein. Kreuzantennen sind weniger richtungsabhängig als die üblichen einfachen Antennen. Das Signal wird entweder direkt einem FET-Operationsverstärker eingespeist, mit einem FET als Trenn- und Treiberstufe für die nachfolgenden Schaltungen gekoppelt oder kommen von einer transistorisierten Vorverstärkerstufe. Fünf Varianten sind beschrieben: eine einfache Ferritantenne mit einem Stab oder zwei Kreuzantennen, mit 90° und mit 45° oder eine Luftspulenantenne aus Flachkabel, entweder einzeln oder 90° gekreuzt.

Der hochohmige Ferrit-Eingangskreis wird in allen Fällen mit einem AFC-Eingang über Kapazitätsdioden optimal auf die Empfangsfrequenz für DCF77 auf 77,5 kHz eingestellt, so dass Störer weniger Einfluss haben. Mit drei Varianten können Ferritantennen mit kurzen Wicklungen (niedrige Induktivität) und solche mit sehr vielen Wicklungen (hohe Induktivität) an die 77,5 kHz angepasst werden. Dazu werden die drei Kapazitätsdioden entweder parallel geschaltet (niedrige Induktivität) oder es werden zwei antiparallel geschaltet (hohe Induktivität).

Dann müssen die Mikrovolte etwas angehoben werden. Die nötige Verstärkung des Signals gibt es in vier Varianten:
  1. Als Geradeaus- Empfänger mit einem Transistorverstärker: Empfang und Signalverstärkung finden auf der Empfangsfrequenz 77,5 kHz und mit zwei hochverstärkenden und frequenz-selektiv aufgebauten Stufen statt.
  2. Als Geradeaus- Empfänger mit einem geregelten Verstärker im TCA440: Der im TCA440 vorhandene ZF-Verstärker wird hier als geregelter HF-Verärker verwendet.
  3. Als geregelter Zweifach-Operationsverstärker: die Regelung erfolgt mit einer negativen FET-Gatespannung in einem FET-Spannungsteiler.
  4. Als Superhet-Empfänger mit dem TCA440 mit noch viel mehr Verstärkung, auch für große Entfernungen. Empfang und Vorverstärkung finden auf 77,5 kHz statt, das Signal wird mit einem Oszillatorsignal so gemischt, dass fOsz - fEmpf die Frequenz 32,768 kHz ergibt und mit handelsüblichen Uhrenquarzen hochselektiv gefiltert werden kann.
Da im letztgenannten Fall die 32,768-kHz-Quarze sehr frequenzselektiv sind, gibt es für die frequenzgenaue Erzeugung des Oszillatorsignals auch gleich drei Varianten im Angebot:
  1. mit dem im TCA440 vorhandenen Oszillatorkreis durch Anschluss einer externen Spule und eines Kondensators, zur genauen Frequenzeinstellung wird ein Trimmer verwendet,
  2. mit einem quarzbetriebenen ATtiny25, der die 15-MHz-Quarzfrequenz auf die benötigten 110,294 kHz herunterteilt und aus den Rechtecken ein symmetrisches Sinus-Signal formt, oder
  3. mit einem LC-Oszillator, deßen Frequenz von einem quarzgetriebenen ATtiny25 gemeßen und kontinuierlich auf 110,268 kHz nachjustiert wird.
Die beiden letzteren Varianten kommen gänzlich ohne Nachjustieren aus und laßen sich auch durch geänderte Temperaturen nicht beeindrucken.

Für die Gleichrichtung des 77,5- bzw. 32,768-kHz-Signals, um daraus die Amplitudenhöhe zu bestimmen, gibt es hier auch gleich drei Varianten zur Auswahl:
  1. die klassische Gleichrichtung mit doppelten Germanium- oder Schottkydioden und anschließender RC-Filterung, oder
  2. ein Gleichrichter mit einem ATtiny25 und einem PWM-Generator zur Gleichspannungsausgabe.
  3. der Gleichrichter im dritten Fall ist wie im zweiten Fall direkt ein ATtiny25, der die Amplitude mittels seines ADC bestimmt, daraus auch gleich noch die AGC- und AFC-Regelsignale erzeugt, das DCF77-Signal dekodiert und das Ergebnis in diversen Varianten an einer programmierbaren Schnittstelle ausgibt. Die AGC-Regelspannungen, die benötigt werden, können ebenfalls wahlweise erzeugt werden (negative Gatespannungserzeugung für den geregelten Operationsverstärker, analoge Regelspannung für alle anderen Module).
Während im letzten Fall schon alles (auch das Dekodieren des DCF-Signals) durch den ATtiny25 erledigt wird, muss in den ersten beiden Fällen das gleichgerichtete AM-Signal weiter verarbeitet und in einem anderen Prozessor dekodiert werden.

Für dieses Dekodieren des DCF77-Signals wurde ein Controller mit dem ATtiny45 entwickelt, der Das stellt alles der ATtiny45-Controller bereit.

Dieses Konzept wird von mir nicht mehr weiter verfolgt, das oben genannte Modul mit einem einzigen ATtiny25 macht dies alles viel vielseitiger.

Nun will das DCF77-Zeitsignal aber auch angezeigt werden. Dazu hatte ich einen ATtiny24 mit angeschlossener LCD geplant, der die Bit-Erkennung, -Sammelei, Fehlererkennung und die korrekt erkannten Zeitinformationen in lesbarer Form auf einer LCD darstellt. Auch dieses Konzept wird von mir nicht mehr weiter verfolgt.

Als Alternative zu diesem Konzept habe ich eine Uhr entwickelt, die mit dem ATmega48/88 (A/PA) arbeitet. Diese hat einen quarzgetriebenen Taktgenerator, so dass die Uhr auch ohne DCF77 quarzgenau läuft und auch manuell auf korrekte Uhrzeit und richtiges Datum umgestellt werden kann. Wer eine größere LCD mit zwei oder vier Zeilen spendiert, kann auch eine Weckzeit einstellen und sich mit programmierbaren Melodien wecken lassen. Diese Uhr wird mittels eines synchronen seriellen Signals vom ATtiny25 mit DCF77 synchronisiert. Diese Uhr findet man hier.

Geregelter OpAmp-Verstärker Ursprünglich war diese Uhr nur für den Geradeausempfang mit Doppel-Operationsverstärker vorgesehen. Nachdem ich aber das ATtiny25-Modul mit dem AM-Gleichrichter, dem DCF-Decoder, dem AFC/AGC-Regler (wahlweise analog und als Negativspannungsgenerator) und sehr vielseitigem Ausgang flexibel gestaltet habe, so dass es mit allen hier beschriebenen Modulen eingesetzt werden kann, kann diese Uhr so ziemlich alles ersetzen, was an anderen Modulen zum Dekodieren und Anzeigen hier beschrieben wurde. Der flexible ATtiny25-Controller kann so eingestellt werden, dass er die dekodierten Zeitinformationen entweder
  1. asynchron über eine serielle RS232-Schnittstelle sendet, wo sie von einem Terminalprogramm dargestellt werden, oder
  2. asynchron an einen Controller sendet (hier ein ATmega324), der die Zeit auf einer riesigen 7-Segment-Anzeige anzeigt, oder
  3. asynchron an einen anderen Controller gesendet wird (hier ein ATmega48), der diese dann auf einer LCD darstellt, oder
  4. synchron an einen anderen Controller sendet, der als eigenständige Uhr mit einer LCD fungiert, die gelegentlich mit DCF77-Signalen synchronisiert wird (hier mit einem ATmega48)


Kreuzantenne Flachkabel Geradeaus Transistoren Geradeaus TCA440 Geradeaus OpAmp Superhet Controller tn45 Anzeige tn24 AM-Gleichrichter tn25 Platinenlayouts Störsignale Wecker m324

a) DCF77-Empfang: Grundlegendes vom Geradeaus-Prinzip

Hier, nicht weit von Mainflingen entfernt, liegen an meinen Ferritantennen-Kreisen Signale mit einigen mV an. Ich kann also mit einem einfachen Oszilloskop das amplitudenmodulierte Signal am Eingangskreis schon sehen. Verstärke ich das Signal um das 1000-fache, reicht eine Diode und ein Kondensator zum Gleichrichten. Weiter weg ist das Signal nicht so üppig stark und es braucht etwas mehr Verstärkung, um die Mikrovolte HF aus dem Rauschen weiter hochzupeppeln.

Amplitude von DCF77 Das sind die beiden Signale von DCF77 in einer Hochphase und in einer Niedrigphase bei der übertragung eines Informationsbits, während ein-einhalb Sinusdurchgängen. Die Information steckt dabei in der Dauer, über die der Sender niedrige Amplitude hat (AM-moduliert). Die Amplitudenhöhe ist daher die entscheidende Größe.

Daher können wir bei der Verstärkung des DCF77-Signals auch keine ungeregelten Verstärker gebrauchen. Sie würden bei zu geringer Verstärkung gar kein Amplitudensignal erkennen. Bei zu hoher Verstärkung würde das Signal im oberen Teil abgeschnitten (clipping) und es käme gar kein Unterschied zwischen High und Low zustande. In beiden Fällen ist das Ergebnis unbrauchbar zur Detektion von Nullen und Einsen.

Daher müssen wir die Verstärkung der Verstärkungsstufe regeln können (automatic gain control, AGC). Sie muss gerade genug Verstärkung einstellen, damit der Gleichrichter in der High-Phase genug Aussteuerung bekommt. Aber nicht zuviel, damit der Gleichrichter nicht übersteuert wird. Dann macht sich in der Low-Phase der Amplitudenverlust deutlich erkennbar.

Und: die Verstärkungsregelung muss so langsam reagieren, dass sie nicht die Low-Phase ausregelt. Da die Low-Phase je nach übertragenem Bit 0,1 oder 0,2 Sekunden dauert, muss die Zeitkonstante der Regelung eine Sekunde oder länger dauern.

Mit dem Geradeaus-Konzept kommt man bei Verstärkungen von 10.000 und mehr trotz der vergleichsweise niedrigen Frequenz schnell an Grenzen: Transistorschaltungen oder Operationsverstärker neigen dann durch parasitäre Rückkopplung zum Schwingen und erzeugen ihr eigenes, leider gänzlich unmoduliertes DCF77-Signal. Das kann man nur vermeiden, wenn die Verstärkung regelbar ist und immer knapp unterhalb des Schwingungseinsatzes bleibt.

Ein weiterer Nachteil des Geradeaus-Konzepts ist, dass außer dem Eingangskreis meist keine weitere Selektion mehr erfolgt. Es wird also alles mitverstärkt, was sich so neben der Empfangsfrequenz so tummelt und auch Längstwellen aussendet (z. B. chinesische Schaltnetzteile, Energiesparlampen, etc.). Ganz schlimm sind Transistorverstärker, die nur einen Widerstand im Kollektorkreis haben: sie verstärken das Nutzsignal eben so gut wie eingestreute Kurzwellen oder 50 Hz-Einstreuungen vom nahen Trafo.

Weitere LC-Filter auf 77,5 kHz können kaum schmalbandiger filtern als der Ferrit-Eingangskreis. Keramikfilter für 77,5 kHz gibt es für Normalbürger nicht zu kaufen und Quarze für 77,5 kHz sind auch sehr rar.

Hier werden zwei Arten von Empfängern nach dem Geradeaus- oder Direktprinzip beschrieben. Schaltungen
  1. mit zwei Einzeltransistoren in diskreter Bauweise, und
  2. hier mit einer integrierten Schaltung.

b) DCF77-Empfang: Grundlegendes zum Superhet-Empfang

Das Mischkonzept erfordert hingegen etwas mehr Schaltungsaufwand (aber nicht wirklich viel mehr). Dafür wird man mit einer höheren Variabilität beglückt. Eine Grundentscheidung bei diesem Konzept: welche ZF soll man wählen? Hier wurden dafür 455 kHz gewählt, aber die für diese ZF verfügbaren Standardbauteile wie Spulen, LC-Filter und Keramikfilter sind kaum noch zu beschaffen.

Daher wurde hier entschieden, mit einer ZF von 32,768 kHz zu arbeiten, denn Uhrenquarze für diese Frequenz sind leicht zu beschaffen und spottbillig. Sie taugen hervorragend als sehr schmalbandiges Filter, haben aber eine lausige Weitab-Filtergüte und werden daher hier mit einem LC-Filter für 32,768 kHz kombiniert.

c) Das A und O beim DCF77-Empfang: der Eingangskreis

Bei Längstwellenempfang mit Ferritantennen tritt eine Richtungsabhängigkeit auf: steht die Antenne quer zum Sender, kann es zu einem völligen Signalausfall kommen. Um das zu ändern, habe ich eine Kreuzantenne gebaut. Diese besteht aus zwei Ferritstäben, die um 90° versetzt angeordnet sind. Der Aufbau und die Eigenschaften sind hier beschrieben.

d) Eine besondere Antenne, die nicht jeder hat: aus Flachkabeln

Neu auf dieser Seite und ein echter Hingucker: Luftspulen aus Flachkabeln, entweder klein mit 30 cm Durchmesser und mit Holzleisten oder mit 95 cm Durchmesser und auf Hoola-Hoop-Reifen. In Einzelausführung und in gekreuzter Doppelform. Und das zusammen mit einer Einführung in Hochfrequenz gibt es hier.

e) Frequenz und Verstärkungsregelung: AFC und AGC

Alle DCF77-Empfänger benötigen eine automatische Verstärkungsregelung (Automatic Gain Control, AGC), damit die Signale bei unterschiedlichen Empfangsverhältnissen und Dämpfungen immer ein optimales Gleichspannungssignal liefern. Alle hier beschriebenen Empfänger haben daher einen AGC-Eingang, der mit steigendem Potenzial die Empfangsverstärkung reduziert.

Beim Direktempfang mit Transistoren habe ich Regelungen mit Dioden eingebaut. Die sind zwar sehr wirksam, brauchen aber maximal 10 mA bei voller Abregelung. Bei Direktempfang oder Superhet-Empfang unter Verwendung des TCA440 ist in diesem IC ein Regelverstärker integriert, der praktisch keine Last darstellt.

Da der Eingangskreis der hier beschriebenen Empfänger eine Frequenzregelung mit Kapazitätsdioden besitzt, muss auch eine Frequenzregelung (Automatic Frequency Control, AFC) her. Da durch die Kapazitätsdioden kein Strom fließt, kann die AFC-Regelung lastlos betrieben werden.

Für beide Regelungen kann natürlich ein einfacher Trimmer oder ein Potentiometer dienen und statt einer Automatik auch manuelle Einstellung verwendet werden. Dann entfällt das A im AGC und im AFC und ein M für Manuell tritt an seine Stelle. Für das A braucht es sinnvollerweise einen kleinen Controller, der das für uns erledigt. Mit zwei 8-Bit-PWM-Kanälen lässt sich die Aufgabe leicht lösen.

Dazu braucht man ferner einen AD-Wandler-Eingang, der die Gleichspannung am Gleichrichter beobachtet, analysiert und die beiden PWM-Kanäle für AFC und AGC entsprechend einstellt.

Da die Analyse des Gleichspannungspotenzials für die AGC und AFC sowieso erforderlich ist, kann man auch gleich die empfangenen DCF77-Signale auswerten und in fertige Zeit- und Datumsinformationen umwandeln. Natürlich mit den diversen Fehlererkennungen, die bei der Umwandlung ohnehin anfallen. Dann braucht die eigentliche Uhr diese Aufgaben nicht mehr erfüllen und wird software-mäßig viel einfacher.

Damit der Controller seine Informationen an die Uhr weitergeben kann, braucht es eine Einfachst-Einweg-Sende-Einrichtung im Regel-Controller. Ein solcher Allround-Controller ist hier näher beschrieben.

f) Empfang und Anzeige der Informationen

Um zu demonstrieren, wie der Empfang der seriellen Signale durch den Uhren-Controller funktioniert und um die diversen Fehler- und Erfolgsmeldungen des ATtiny45-Controllers zu beobachten, wird hier eine an einen ATtiny24 angeschlossene einfache LCD verwendet. Die Hardware dafür wurde hier schon ausführlich beschrieben, sie wird hier aber etwas variiert und mit der LCD-Treiber-Software hier betrieben. Hier erfolgt die Software-Anpassung an diese Aufgabe.

Eigenbau-Platinen-Layouts

Zu den diversen Empfängern gibt es hier passende Platinen-Layouts. Es sind noch nicht alle fertig und getestet. Hier schon mal einen Vorgeschmack, was da noch so kommt.

Störsignale

Auf Störsignale habe ich PWM-Generatoren, wie sie im DCF77-Controller und im AM-Gleichrichter angewendet wurden, auf ihr Störsignal-Potenzial untersucht und auch ein paar andere Störer beschrieben.

Ein Wecker mit DCF77 auf einem ATmega324PA

Die Weckuhr in der Uebersicht Zu guter Letzt noch ein weiteres Projekt aus der Bastelstube: ein Wecker mit DCF77 und zahlreichen Gimmicks. Das Projekt ist noch nicht ganz fertig, aber die Hard- und Software-Planung ist hier in vollem Gange.


Kreuzantenne Flachkabel Geradeaus Transistoren Geradeaus TCA440 Geradeaus OpAmp Superhet Controller tn45 Anzeige tn24 AM-Gleichrichter tn25 Platinenlayouts Störsignale Wecker m324


©2019-2021 by http://www.avr-asm-tutorial.net