Anwendungen von
AVR-Einchip-Mikrocontrollern AT90S, ATtiny, ATmega und ATxmega Anzeige für geregeltem OpAmp async-Signale mit ATmega48
Dieses Projekt ist experimentell. Ich bin nicht sicher, ob und
wie es funktioniert. Die Software dafür ist noch in Arbeit. Nachbau auf eigene Gefahr!
4.7 DCF77-Anzeige für Sync-Signale vom geregelten Operationsverstärker mit ATmega48
Der DCF77-Geradeausempfänger mit dem
geregelten Operationsverstärker
gibt am Pins 3 auf Wunsch ein asynchrones serielles Signal ab. In diesem
Teilprojekt werden diese asynchronen Signale empfangen, ausgewertet und auf einer
LCD angezeigt. Damit kann eine Anzeige von Datum und Uhrzeit auf einer beliebigen
LCD erfolgen und es können Statusmeldungen des DCF77-Empfängers
dargestellt werden.
4.7.1 Benötigte Hardware
Um nicht in die allzu große Tiefe abzugleiten und einen Empfangsalgorithmus
für asynchrone serielle Kommunikation schreiben zu müssen, wählen
wir hier einen AVR, der eine serielle Schnittstelle an Bord hat. Das kann ein
ATtiny2313, ein ATmega8 oder, wie hier gezeigt, ein ATmega48 ganz mühelos.
Wer seine Uhr auch ohne DCF77 ganz genau haben will, braucht natürlich
einen Quarz als Taktgeber. Da der ATmega48 dann aber keinen vollständigen
8-Bit-Datenbus für die LCD hat, habe ich hier mal auf diese Genauigkeit
verzichtet. Wer das unbedingt haben will, steigt auf einen 40-poligen ATmega324
oder ähnlich um, wie
hier gezeigt.
Die seriellen Signale werden am RXD-Pin von Mega48 aufgesammelt. Da zwischen dem
ATtiny25 im geregelten Operationsverstärker und dem ATmega48 hier keine
invertierenden Zwischenstücke liegen und weil für eine kurze Verbindung
zwischen ATtiny25 und ATmega48 eine RS232-Schnittstelle überkandidelt wäre,
stellen wir den ATtiny25 auf nicht-invertierte asynchrone Signalausgabe ein und
verbinden den Data-Ausgang direkt mit RXD und den Clock-Eingang (Clear-To-Send)
an Pin 7 direkt mit PD1. Nachdem der ATmega48 seine Auftaktveranstaltung absolviert
hat und empfangsbereit ist, legt er PD1 dauerhaft auf High und regt damit den
ATtiny25 zum Senden an.
An den Pins PD2 und PD3 liegen zwei Tasten an. Diese dienen dazu, die Uhr auch
ohne DCF77-Signal auf die korrekte Zeit einzustellen. Key1 startet mit dem INT0
den Einstellvorgang, am Poti, der an ADC0 hängt, werden dann die Stunden
eingestellt. Sind die Stunden ok, wird Key2 (INT1) betätigt und die Minuten
eingestellt. Ist beides ok, lässt ein weiterer Tastendruck mit den Sekunden
auf Null die Uhr loslaufen.
Die LCD hängt mit ihrem Datenbus am Port B, mit ihren drei Kontrolleingängen
am Port D (PD5 bis PD7. Angeschlossen werden kann jede beliebige LCD, deren Anzahl
Zeilen und Spalten bestimmen dann über die verfügbaren Darstellungsarten.
Diese Einstellung wird im Quellcode vorgenommen.
Berechnungsgrundlagen für das Projekt sind in der Libre-Office-Calc-Datei
hier angegeben.