Forum: Mikrocontroller und Digitale Elektronik DCF Uhr mit LCD


von Walter (Gast)


Lesenswert?

Hi

Ich versuche eine DCF77 Uhr mit einem LCD und einem Atmega32 zu bauen. 
Ich habe diesen Code verwendet:
Beitrag "DCF-Uhr mit LCD in C"
Die Sekunde auf dem Display steigt jede Sekunde auf 1 an, dann wird auf 
dem ganzen Display bei jeder Stelle ein Zeichen angezeigt das es gar 
nicht gibt. Danach werden alle Zahlen wieder auf 0 resetet. Auserdem 
flackert das Display ein wenig. Was muss ich tun damit es funktioniert?

PS:
Das Zeichen welches anzeigt ob DCF empfangen wurde ist auf ?.

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Hallo  Walter,

mit so wenigen, oder gar keinen Infos wird das ganz schwer.

Wenn ich schreibe:
Mein DCF77 Uhr mit UTC Zeitzone, mit dem atmega32u4 Board von ehajo.de 
und das Programm enthält die Basisidee von Peter (PeDa), läuft 
problemlos, dann bringt dich das überhaupt nicht weiter.

Vorschlag stelle ALLE Infos hier ein und mache ein Video von der 
Platine, dem DCF77 Empfänger und der Anzeige.

Einige DCF77 Empfänger benötigen eine extra Beschaltung, oder haben 
einen eingeschränkten Spannungsbereich oder liefern zu wenig 
Schaltstrom, oder es ist noch etwas anderes..

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

Walter schrieb:
> Was muss ich tun damit es funktioniert?

Zuerst einmal den Fehler besser beschreiben.
"steigt auf 1 an", "danach..."
Ändern sich die Zeichen im Sekunden Rhythmus? Oder sporadisch? Nur 
0-1-Mist-0-1-Mist? An allen Stellen das gleiche Zeichen?
Als erstes würde ich einmal einen Verdrahtungsfehler am Display 
vermuten.

Hast du vielleicht Stützkondensatoren eingespart? Oder ist deine 
Stromversorgung wackelig?

von Walter (Gast)


Lesenswert?

Hi

Danke für die Antworten!
@Uwe S.
Ich verwende einen Atmega32 mit einem 16Mhz Quarz und 22P Kondensatoren.
Die Stromversorgung ist ein PPS 5330 von ELV. Display ist ein HD44780 
LCD mit 2x16 Stellen.
Ich verwende den DCF Empfänger von Reichelt. Ich habe einen Attiny2313 
so programmiert das er das Signal einliest und einmal normal und einmal 
invertiert ausgibt. Dieser Teil müsste eigentlich funktionieren.
Code vom Attiny:
1
/*
2
 * GccApplication1.c
3
 *
4
 * Created: 16.05.2014 13:37:12
5
 *  Author: Walter
6
 */ 
7
#define F_CPU 1000000
8
9
#include <avr/io.h>
10
#include <util/delay.h>
11
12
int main(void)
13
{
14
  DDRB |= (1 << 2) | (1 << 4); //Led Pins
15
    while(1)
16
   {
17
    if ( PINB & (1 << 3)) {
18
       PORTB &= ~(1 << 2);
19
       PORTB |= (1 << 4);
20
    }
21
    else {
22
       PORTB |= (1 << 2);
23
       PORTB &= ~(1 << 4);
24
    }
25
    
26
   }
27
}

Ich habe die Schaltung ein paar Stunden durchlaufen lassen. Da flackerte 
das LCD nur noch einwenig. Als ich es nun resetet habe ist wieder das 
selbe  Verhalten eingetreten. Was könnte das Problem sein?
Wo soll ich das Video den hochladen?

von Teo D. (teoderix)


Lesenswert?

Walter schrieb:
> Ich verwende einen Atmega32 mit einem 16Mhz Quarz
...
> #define F_CPU 1000000

Autsch :(

von Uwe S. (de0508)


Lesenswert?

Teo,
nee das ist das attiny Programm, ist aber ohne Funktion. Zwei 
Transistoren machen das selbe.

von Walter (Gast)


Lesenswert?

Lies dir bitte den gesamten Beitrag nocheinmal genau durch.

von Amateur (Gast)


Lesenswert?

Mein Gott ...

Dein Programm hat nichts mit deiner Problemstellung zutun.

In der Praxis dürfte sich, bei Deinem Programm, nichts tun, denn was 
auch immer abgeht, passiert schneller als Deine Pupillen folgen können. 
Ein Oszi sieht das natürlich ganz anders.

von Walter (Gast)


Lesenswert?

Amateur schrieb:
> Mein Gott ...
>
> Dein Programm hat nichts mit deiner Problemstellung zutun.
>
> In der Praxis dürfte sich, bei Deinem Programm, nichts tun, denn was
> auch immer abgeht, passiert schneller als Deine Pupillen folgen können.
> Ein Oszi sieht das natürlich ganz anders.

Uwe S. schrieb ich soll Informationen zu unter anderem dem Empfänger 
liefern. Wenn man eine LED anschliessen kann man das kurze ausgehen 
sehen. Außerdem sehe ich auch mit dem Oszilloskop das das Signal 
eigentlich richtig sein müsste.

von Markus (Gast)


Lesenswert?

> Die Sekunde auf dem Display steigt jede Sekunde auf 1 an, dann wird auf
> dem ganzen Display bei jeder Stelle ein Zeichen angezeigt das es gar
> nicht gibt. Danach werden alle Zahlen wieder auf 0 resetet. Auserdem
> flackert das Display ein wenig.
Klingt alles eindeutig nach instabiler Stromversorgung. Spannung bricht 
ein -> Display wird resetted (Zeichen die es nicht gibt auf jeder Stelle 
= Display reset?) -> und gleichzeitig Controller resetted. Aber schwer 
zus sagen ohne weitere Infos

von Teo D. (teoderix)


Lesenswert?

Uwe S. schrieb:
> Teo,
> nee das ist das attiny Programm, ist aber ohne Funktion. Zwei
> Transistoren machen das selbe.
Wer o. besser warum macht man den sowas?

Walter schrieb:
> Lies dir bitte den gesamten Beitrag nocheinmal genau durch.
Lieber nich, ab schon beim ersten mal Kopfschmerzen bekommen ;)

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

bitte schreibe hier alle Definitionen, wie atmega32 @16Mhz, lcd, input 
dcf77 pin, dcf77 Polarität, Taster etc. rein, dann passe ich mein 
Programm an.
Und du hast etwas zum testen.

Wie ist das DCF77 Modul angeschlossen?
Mit einem Vdd RC Filter?
Wird das DCF77 Ausgangssignal über einen Transistor gepfuffert?

: Bearbeitet durch User
von Walter (Gast)


Lesenswert?

Hi

Ich habe nun festgestellt das das Display manchmal ein bisschen weiter 
rauf zählt und wenn es bei 3 Sekunden ist dann wird meist (manchmal auch 
ein wenig später) aus dem ? oben rechts ein !, was bedeuten würde das 
die Synchronisation erfolgreich war. Allerdings wird dann plötzlich 
alles wieder auf 0 gesetzt und es geht von vorne los.

von Walter (Gast)


Lesenswert?

@Uwe S.
Controller: Atmega32

Lcd: HD44780 LCD mit 2x16 Stellen. Anschluss wie es in diesem Artikel 
gezeigt wird: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

Quarz: 16Mhz mit 2x22P Kondensatoren Fuses: JTAGEN = kein Häckchen, und 
SUT_CKSEL = Ext. Crystal/Resonator High Freq. Startup Time: 1K CK + 0ms

Input DCF Signal: PC1

DCF77 Polarität? Meinst du ob es im Normalfall auf High oder Low ist?
Wenn ja: Das Signal geht jede Sekunde einmal kurz auf High. Im Attiny 
wird es invertiert. Also geht es jede Sekunde kurz auf Low.

Was für einen Taster meinst du?

Das DCF Modul ist so angeschlossen:
Pin 1: +5V
Pin 2: GND
Pin 3: Offen (ist auf der Platine mit GND verbunden)
Pin 4: geht zum Attiny

Nein, ich habe es direkt an das Netzteil angeschlossen.

Nein, ich habe anstelle von Transistoren den Attiny genommen.

von Walter (Gast)


Lesenswert?

Teo Derix schrieb:
>> Teo,
>> nee das ist das attiny Programm, ist aber ohne Funktion. Zwei
>> Transistoren machen das selbe.
> Wer o. besser warum macht man den sowas?

Das wird in diesem Artikel vorgeschlagen: 
http://www.mikrocontroller.net/articles/DCF77-Funkwecker_mit_AVR

von Uwe S. (de0508)


Lesenswert?

Hallo  Walter,

soll ich mir die LCD Belegung irgendwo heraus suchen ?

Du hast doch ein Programm, dann kopiere das Stück mit den Definitionen 
hier rein.

von Uwe S. (de0508)


Lesenswert?

Walter schrieb:
> DCF77 Polarität? Meinst du ob es im Normalfall auf High oder Low ist?
> Wenn ja: Das Signal geht jede Sekunde einmal kurz auf High.

Ok, dann ist das Signal invertiert.

von Uwe S. (de0508)


Lesenswert?

Walter schrieb:
> Was für einen Taster meinst du?


Evtl. verwendest Du noch einen Eingang für weitere DCF77 Anzeigen.

Ich schalte mit einem Einschalter zwischen MEZ/MESZ und UTC um.

von Uwe S. (de0508)


Lesenswert?

Walter schrieb:
> Quarz: 16Mhz mit 2x22P Kondensatoren Fuses: JTAGEN = kein Häckchen, und
> SUT_CKSEL = Ext. Crystal/Resonator High Freq. Startup Time: 1K CK + 0ms

Hmm, ich verwende diese Programm "fusecalc" zum kalkulieren der 
Fuse-Bits und speise die Ausgabe direkt in avrdude ein.

Das wären meine gewählten Fuse-Bits: -U lfuse:w:0x2e:m -U hfuse:w:0xd9:m

_Link_:
http://www.engbedded.com/fusecalc/

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Hallo,

so hier ist dein Testprogramm:

AVR µC atmega32 @16MHz

LCD
DB4= pd0
DB5= pd1
DB6= pd2
DB7= pd3
RS = pd4
EN = pd5
WR = GND !!

DCF77
DCF77 = pc1 0->1->0

Debug *LED*
LED_DCF77_PULSE = pb2 // LED DCF77 Eingangssignal
LED_DCF77_SYNC  = pb3 // LED DCF77 Synchronisierung

alle LED: Anode an den AVR PBx und die Kathode über einen Widerstand 
nach GND.

UTC-Zeitzone
SW_TIMEZONE_UTC = pb0
GND_TIMEZONE_UTC = pb1 = GND

Schalter zwischen PB0 und PB1.

: Bearbeitet durch User
von Walter (Gast)


Lesenswert?

@Uwe S.
Danke für den Code.
Ich habe nun alles so eingerichtet und geflasht.
Nach dem Copyright ist alles auf null. Die DCF Synchronisations Led 
leuchtet dauerhaft und die DCF Puls Led blinkt immer wieder kurz auf. In 
der Oberen Rechten Ecke hat es 2 Striche am Boden. Bei dem der links ist 
steht ein S und manchmal auch dieser Unterstrich. Beim Unterstrich ganz 
rechts blinkt ab und an ein ! auf.
Ich habe den Schalter so eingestellt das er dauerhaft leitend ist.
Wie lange sollte es dauern bis es Synchronisiert ist?

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

was Du beschreibst klingt gut, den MEZ/ UTC Schalter benötigen i.A. nur 
die Funkamateure.

Auf dem LCD zeigt "S" die aktuelle Synchronisierung auf den DCF77 Frame 
an, nach erfolgreicher Synchronisierung sieht man "_".

Rechts daneben siehst Du mit "_" kein Impulse und mit "!" signalisiert 
einen DCF77 Impulse, die Zeitdauern sind 100ms = SPACE und 200ms = MARK 
Signal.

Die Sync. kann nach 3 Minuten abgeschlossen sein. Hängt von deinem DCF77 
Modul, der Senderfeldstärke, allg. HF Störungen und Störungen auf der 
Versorgungsspannung ab.

Bitte stelle noch ein Video von, einschalten bis zur Anzeige der Zeit 
bei youtube ein.

Danach sollte wir auch deinen Aufbau sehen können.
 Danke.

Link
# http://de.wikipedia.org/wiki/DCF77

: Bearbeitet durch User
von Walter (Gast)


Lesenswert?

@Uwe S.
Das Display zeigt zwischen der Uhrzeit und der Zeitzone ein 
Prozentzeichen an und die erste Stelle von der Uhrzeit zeigt manchmal 
eine 2 oder ein ü an.
Die Schaltung ist erst auf dem Steckbrett aufgebaut. Ein Video kann ich 
im Moment schlecht machen. Ich kann allerdings ein paar Fotos machen.

von Walter (Gast)


Lesenswert?

@Uwe S.
Die Zeit hat sich noch nicht Synchronisiert. Sobald es funktionieren 
wird werde ich schnellstmöglich ein Video machen. Die der ersten Stelle 
der Stunden wird manchmal auch ein Zeichen angezeigt das es nicht gibt.

von Walter (Gast)


Lesenswert?

@Uwe S.
Ich habe die Schaltung vor einer halben Stunde neu gestartet, und jetzt 
blinkt bei den Stunden ein ü. oben rechts ist zuerst ein _ und dann ein 
R was bedeutet das? (es ist noch immer nicht synchronisiert)

von Walter (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe ein Foto des LCDs angehängt. Was bedeutet dieses _R?

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

dein Display zeigt Müll an, kann an der Leitungslänge des Kabels, an 
keine Kondensator über die Versorgungsspannung und einem nicht HD44780 
konformen Display liegen.

Mache bitte einige Bilder mit max. 1280px wo Du alle Baugruppen und eine 
gesamt Ansicht ablichtest.

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Hallo Walter,

für das DCF77 Modul sind wahrscheinlich noch einige Klimmzüge notwendig.

Siehe:
Beitrag "Re: DCF Uhr mit LCD"

Ich habe das bei meinem englischen DCF77 Modul so gelöst.
Siehe 05-dcf77_crc-filter.jpg und 04-dcf77_empfaenger.jpg.

Im Netz findet man auch für Dein Modul entsprechende Vorschläge.
Evtl. reicht schon dieser von dcf77vt.png aus.

von Teo D. (teoderix)


Lesenswert?

Ich fände auch mal die Lötung am LCD interessant und vom restlichen 
Aufbau aber bitte nich wieder ein 5MB Bild!

Die Länge des Kabel sehe ich unkritischer, hatte noch keines das sich 
über 50cm beklagt hätte.

von Walter (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Ich habe nun ein paar Fotos angehängt.

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

sag nur der attiny2313 liegt auch noch auf der DCF77 Signal ?

von Walter (Gast)


Angehängte Dateien:

Lesenswert?

Edit:
Das erste Foto ist eine alte Version. Der qC unten links ist nun durch 
einen NPN Transistor ersetzt. (siehe Foto 4)

von Uwe S. (de0508)


Lesenswert?

Teo Derix schrieb:
> Ich fände auch mal die Lötung am LCD interessant und vom restlichen
> Aufbau aber bitte nich wieder ein 5MB Bild!
>
> Die Länge des Kabel sehe ich unkritischer, hatte noch keines das sich
> über 50cm beklagt hätte.

Hallo Teo Derix ,

wenn ich mit meinen 2m Handfunkgerät mit nur 0,5Watt sende, koppelt das 
Signal schon in eine Schaltung ein.

von Walter (Gast)


Lesenswert?

@Uwe S.
Den DCF77 Empfänger habe ich nun auf ein eigenes Steckbrett montiert. 
Dieses steht am Fenster. (Bild 2)

von Teo D. (teoderix)


Lesenswert?

Da Du dich sicher nicht verstöpselt hast, kann's nur an der Lötung 
liegen. Zeig mal die Rückseiten.

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

Kannst Du die DCF77 Impulslängen messen ?

Wie weit weg wohnst Du von Frankfurt ?

von Walter (Gast)


Angehängte Dateien:

Lesenswert?

@Teo Derix
Ich habe dir ein Bild mit der Unterseite angehängt.

von Walter (Gast)


Lesenswert?

Uwe S. schrieb:
> Kannst Du die DCF77 Impulslängen messen ?

Nein kann ich leider nicht? Ich habe nur ein Tektronix 465

Uwe S. schrieb:
> Wie weit weg wohnst Du von Frankfurt ?

ca. 400km (in der Schweiz)

von Walter (Gast)


Lesenswert?

Könnte ich vielleicht einen qC so programmieren das er ein DCF77 Signal 
simuliert? (zur Fehlereingrenzung)

von Teo D. (teoderix)


Lesenswert?

Sorry, nehme auch alles was ich vermutet hatte zurück :)
Dann fällt mir nichts mehr ein warum dein Display Murks anzeigt, am 
DCF-Signal sollte es nicht liegen (kenn PeDas Soft aber nicht).

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

wenn Du dein DFC77 Modul nicht richtig filterst wird das wohl nie etwas 
werden.

Die DCF77 Ferritantenne muss in Richtung FFM zeigen und evtl. ist das 
Signal erst am Abend Störrungsfrei, so dass dann erst die Sync. klappt.

Zum Tektronix 465 ist doch super, damit gehst Du an den DCF77 LED 
Ausgang und vergleichst das Signal ohne µC mit dem DCF77 Modul direkt.

DC Eingang, Bandbreite 20MHz.
Trigger steigende Flanke Y-Ablenkung 50ms/DIV, X-Skalierung 2V/DIV.

von Uwe S. (de0508)


Lesenswert?

Walter schrieb:
> Könnte ich vielleicht einen qC so programmieren das er ein DCF77 Signal
> simuliert? (zur Fehlereingrenzung)

Ja klar mit dem attiny2313 evtl., die Kodierung ist ja bekannt

#http://de.wikipedia.org/wiki/DCF77

#http://endorphino.de/projects/electronics/timemanipulator/bilder/timemanipulator_dcf77code_01.gif

#http://endorphino.de/projects/electronics/timemanipulator/bilder/timemanipulator_codescheibe_01.gif

und ein passt Programm vielleicht in die 2k des attiny2313 hinein.

: Bearbeitet durch User
von holger (Gast)


Lesenswert?


von Walter (Gast)


Lesenswert?

holger schrieb:
> Beitrag "DCF77 Simulator Generator Encoder Atmega8 Assembler"

Danke!
Ich habe die Schaltung aufgebaut und die Uhr läuft! Das würde bedeuten 
das etwas mit Empfang nicht stimmt.

von Walter (Gast)


Lesenswert?

Ich habe gelesen das das Conrad Modul besser ist. Würde es etwas bringen 
dieses zu kaufen? (oder ein anderes mit welchen habt ihr gute 
Erfahrungen?)

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

wenn Du meine Beiträge nicht lesen willst, ok, dann musst Du selbst 
raten und im Web nach einer Lösung suchen.

Beitrag "Re: DCF Uhr mit LCD"

von John (Gast)


Lesenswert?

Die Reichelt-Module möchten eine saubere Betriebsspannung.
Du hast ja bereits einen Kondensator direkt am DCF77-Modul. Schalte 
einfach noch einen Widerstand (1kΩ) in die Spannungsversorgung vor den 
Kondensator.

Du hast auch besseren Empfang, wenn Du ein dreiadriges Kabel an dein 
DCF-Modul lötest, und es in ca. 0,5m-1m Entfernung von Deiner Schaltung 
(und anderen Störquellen) betreibst.

von Teo (Gast)


Lesenswert?

Die DCF-Module in den billig Weckern von Aldi und Co. für ~6€ sind 
genauso gut wie die von Reichelt.

von Walter (Gast)


Lesenswert?

@Uwe S.
Ich habe deine Schaltung eingebaut. Es funktioniert immer noch nicht. 
die Antenne habe ich nach Norden ausgerichtet. Das DCF Modul ist ca. 3M 
vom PC entfernt.

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

mit dem DCF77 Simulator doch?

Dann ist deine Hardware ja soweit ok.

Mehr kann man aus der ferne nicht machen.

von Georg G. (df2au)


Lesenswert?

Walter schrieb:
> Antenne habe ich nach Norden ausgerichtet.

Denk bitte daran, dass bei einer Ferrit Antenne die Querseite zum 
Sender zeigen muss.

von Walter (Gast)


Lesenswert?

Uwe S. schrieb:
> mit dem DCF77 Simulator doch?

Mit dem Simulator funktioniert es einwandfrei.
Welches DCF Modul hast du?

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

oben ist ein Bild davon, und dieser Händler ist auch bei Ebay vertreten, 
hat natürlich auch einen Onlineshop in UK.

http://www.ebay.de/itm/231053879588

Wichtig die LED muss entlötet werden !

von John (Gast)


Lesenswert?

Hast Du es mit dem invertierten und dem nicht invertiertem Signal 
versucht? Vielleicht benötigt die Software doch das andere Signal.

Hast Du mit dem Oszi das Signal mal etwas länger beobachtet (mehrere 
Minuten), ob es Störungsfrei empfangen wird? Eine kurze Störung 
innerhalb einer Minute reicht, damit die Software das Signal als 
fehlerhaft einstuft.

von John (Gast)


Angehängte Dateien:

Lesenswert?

Ich verwende auch das Modul von Reichelt.
Im Anhang sind ein paar Messungen die ich gerade durchgeführt habe. Die 
Einzelimpulse sind Aufzeichnungen von einigen Minuten.
gemessene Impulslängen 100ms: 91ms…98ms
                       200ms: 186ms…192ms

Meine Entfernung zum Sender beträgt ca. 200km.

Wie sieht das Signal bei Dir aus?

von Oldie (Gast)


Lesenswert?

Ist ja gruselig:

Eine DCF-Uhr nachbauen und nachzufragen, warum sie nicht
geht und was die Anzeige bedeutet!
Da fällt mir nur ein:
Gekauft gibt's die mit 2 Jahren Gewährleistung/Garantie!

Eine DCF selbst zu entwerfen und bauen, ist der "Freischwimmer",
wenn man sich halbwegs in die HW und SW-Programmierung von µCs
eingefuchst hat.

Da geht man Schritt für Schritt vor, probiert Polling und
Ext-Interrupt für die Dekodierung, .....

DANN sind Nachfragen bei Problemen OK.

von Teo (Gast)


Lesenswert?

Ich frag mich eher was das für ein Programm ist, das Müll anzeigt wenn 
das DCF-Signal unsauber ist?

von Uwe S. (de0508)


Lesenswert?

Teo es liegt nicht am Programm-Logic, das läuft und ist ausgereift.
Evtl. ist das LCD vom Timing problematisch, ich verwende 50µs Wartezeit 
nach lcd command, da bei Walter WR nicht aktiv ist.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Ich dachte gelesen zu haben, das es mit dem DCF-Simulator bestens läuft 
und wenn der Empfänger dranhängt, nicht sinnvolle Zeichen auftauchen?

Hab mir eh schon gedacht, sowas zu Programmieren müsste ich mich echt 
anstrengen.
Da liegt wohl doch noch mehr im Busche :(

von Uwe S. (de0508)


Lesenswert?

Ja schrieb Walter, aber mit 400km Entfernung zu FFM ist das DCF77 schon 
sehr schwach.
Ich habe nur ~70km bis FFM.

von Teo D. (teoderix)


Angehängte Dateien:

Lesenswert?

Jo, aber das kann doch nicht der Grund sein für solch eine Anzeige!

von Oldie (Gast)


Lesenswert?

Nö,
mit dem Reichelt-Modul und dem Conrad-Modul gehts auch
bei halbwegs passender Ausrichtung (+/-45°) in Berlin
(ebenfalls 400 km).

von Asko B. (dg2brs)


Lesenswert?

Teo Derix schrieb:
> Jo, aber das kann doch nicht der Grund sein für solch eine Anzeige!

Wenn ich das auf dem Bild richtig erkennen kann,
dann verwendest Du als Flachbandkabel die starre "Drahtversion".

Ich hatte mir damit auch schon einmal Fehler eingehandelt.
Mit Schneidklemmverbindern ja kein Problem.
Aber beim loeten dann doch.
Kalte Loetstellen, Kabelbruch beim bewegen usw.

Seitdem nehme ich grundsaetzlich fuer sowas nur noch
die "Litzenversion".
Die macht zwar mehr arbeit beim verdrillen und verzinnen,
aber ich kann sicher sein, das da alles haelt und leitet
wie es soll.

Tausch mal das Kabel aus, oder kontaktier das
Display mit Stiften direkt am Breadboard.

Es muss jetzt nicht die Ursache sein, koennte aber sein.

Gruss Asko.

von Walter (Gast)


Lesenswert?

@Asko B
Das ist die Litzenversion.

Ich habe die Uhr diese Nacht durchlaufen lassen und jetzt am Morgen ist 
das Display Leer. Es wird nichts mehr angezeigt. Soll ich mir vielleicht 
ein neues LCD kaufen?

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

bitte kürze die Leitungen zwischen LCD und µC und verwende direkt am LCD 
SMD 0805 100nF zwischen  Vdd - Vss.

Ich könnte auch das LCD-Timing verlängern, aber dieses LCD soll nur 37µs 
für die Abarbeitung haben, und eingestellt sind 50µs.

Wie hoch ist die Versorgungsspannung: 5V ?

von Walter (Gast)


Lesenswert?

Uwe S. schrieb:
> Wie hoch ist die Versorgungsspannung: 5V ?

Die Versorgungsspannung ist 5V. 100nF SMD Kondensatoren muss ich 
bestellen.

von Teo D. (teoderix)


Lesenswert?

Den Kondensator kannste Dir sparen. Verdopple erstmal, testweise die 
Wartezeit, bis neue Daten gesendet werden.

von Walter (Gast)


Lesenswert?

Ich habe nun festgestellt das manchmal nach dem das Display nichts mehr 
angezeigt hat, die Uhrzeit wieder angezeigt wird. Allerdings sind dann 
ein paar Zeichen da, welche vorher noch nicht da waren.

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

verkürze bitte die Zuleitungen auf max. 5 cm zum LCD und löte/ stecke 
einen 10k Pulldown Widerstand nach GND an LCD E.

Und berichte bitte weiter.

Evtl. schreibst Du noch ein LCD Testprogramm mit 50µs Timeing und 
wechselnde Zeichenausgabe "!" / "_" alle 100ms.

von John (Gast)


Lesenswert?

Muffin schrieb im Beitrag #3668205:
> "Das Displayflackern ist ein Zeichen, dass der DCF-Emfang zwar vorhanden
> ist, aber der Displaycontroller diese "Stromschübe" nicht verarbeiten
> kann. Diese benannten "Stromschübe" entstehen wegen der zu hohen
> Impuls-Datenrate des DCF-Modul-Chips, der die Datenpakete an den
> Displaycontroller übergibt. "

Das scheint mir eher ein Zeichen für schlechte Programmierung zu sein, 
wie zum Beispiel: auswerten des DCF77 Signals per externem Interrupt in 
Verbindung mit einer viel zu langen ISR. Wenn, durch eine Störung, die 
ISR zu oft aufgerufen wird hat der Controller nicht mehr genug Zeit, um 
das Display zu aktuallisieren.

von Uwe S. (de0508)


Lesenswert?

Hallo John,

wie ich in
# Beitrag "Re: DCF Uhr mit LCD"
schrieb, bezieht sich die Auswertung auf das von Peter Dannegger (peda) 
in
# Beitrag "DCF77 Uhr in C mit ATtiny26"
veröffentlichte Programmidee.

Also wie kommst Du auf so etwas ab sinniges - geraten ?

von Karl H. (kbuchegg)


Lesenswert?

Wenn auf einer DCF Uhr an einer Stelle des Displays Zeichen auftauchen, 
die dort nicht sein sollten (wie zb ein "_R" in der rechten oberen Ecke) 
und sich eine derartige Ausgabe auch nicht im Code finden lässt, dann 
hat das alles erst mal nicht das Geringste mit DCF an sich zu tun.

Wer hier im DCF Modul das Problem sucht, sucht ganz einfach an der 
vollkommen falschen Stelle. Lass das DCF weg, schreib eine Ausgabe, die 
24 STunden lang das LCD mit Ausgaben malträtiert. Dann gibt es 2 
Möglichkeiten:
entweder da passiert gar nichts Ungewöhnliches, dann ist das ein Hinweis 
darauf, dass im Originalprogramm ein Fehler drinnen ist, der sich bei 
ihm eben so zeigt.
Oder man hat dort genau das gleiche Problem mit dem LCD. Dann ist das 
ein Hinweis darauf, dass entweder in den LCD Routinen oder in der 
Verkabelung des LCD oder überhaupt generell in der Hardware noch ein 
Wurm sitzt.
Aber eines ist sicher: Mit dem DCF Empfänger hat das alles nicht da 
geringste zu tun. Der liefert entweder die Pulse oder er liefert sie 
nicht. Liefert er nichts, dann läuft die Software-Uhr nicht - aber die 
Software kritzelt keine seltsamen Zeichen in eine Ecke des LCD, deren 
Ausgaben sich nicht im Programm finden lassen.

von Teo D. (teoderix)


Lesenswert?

Ich würde mich jetzt mal auf das konzentrieren.
Beitrag "Re: Breadboard - hat jemand Langzeiterfahrung?" ff.

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Hallo Walter,

hier ist nun das Testprogramm von mir mit geändertem LCD-Timing auf 
150µs Wartezeit für LCD Kommandos.

AVR µC atmega32 @16MHz

LCD
DB4= pd0
DB5= pd1
DB6= pd2
DB7= pd3
RS = pd4
EN = pd5
WR = GND !!

DCF77-Eingang
DCF77 = pc1 0->1->0

Debug-LED
LED_DCF77_PULSE = pb2 // LED DCF77 Eingangssignal
LED_DCF77_SYNC  = pb3 // LED DCF77 Synchronisierung

alle LED: Anode an den AVR PBx und die Kathode über einen Widerstand
nach GND.

UTC-Zeitzone
SW_TIMEZONE_UTC = pb0
GND_TIMEZONE_UTC = pb1 = GND

Schalter zwischen PB0 und PB1.

: Bearbeitet durch User
von John (Gast)


Lesenswert?

Uwe S. schrieb:
> Also wie kommst Du auf so etwas ab sinniges - geraten ?

Was meist Du, und auf was ist das bezogen?

Mein letzter Post war die Antwort für Muffin.

Und Walter scheint ja mindestens zwei Probleme zu haben.
Zum einen die fehlerhafte LCD Ausgabe. Und zum anderen, dass die 
DCF-Decodierung mit dem DCF-Generator funktioniert, aber nicht mit dem 
Empfangs-Modul.

von Uwe S. (de0508)


Lesenswert?

Ok John,

dann entschuldige Bitte, ich habe den Bezug nicht gesehen.

von Walter (Gast)


Lesenswert?

Hi

Danke für die Antworten!
Ich habe nun ein Programm geschrieben welches das LCD Testen sollte:
1
//
2
// Anpassungen im makefile:
3
//    ATMega8 => MCU=atmega8 im makefile einstellen
4
//    lcd-routines.c in SRC = ... Zeile anhängen
5
//
6
#include <avr/io.h>
7
#include "lcd-routines.h"
8
#include "lcd-routines.c"
9
#include <util/delay.h>
10
11
int main(void)
12
{
13
  // Initialisierung des LCD
14
  // Nach der Initialisierung müssen auf dem LCD vorhandene schwarze Balken
15
  // verschwunden sein
16
  lcd_init();
17
  
18
  // Text in einzelnen Zeichen ausgeben
19
  lcd_data( 'T' );
20
  lcd_data( 'e' );
21
  lcd_data( 's' );
22
  lcd_data( 't' );
23
  
24
  // Die Ausgabemarke in die 2te Zeile setzen
25
//  lcd_setcursor( 0, 2 );
26
  
27
  // erneut Text ausgeben, aber diesmal komfortabler als String
28
//  lcd_string("Hello World!");
29
  
30
  while(1)
31
  {
32
    lcd_setcursor( 0, 2 );
33
    lcd_data('!');
34
    _delay_ms(100);
35
    lcd_setcursor( 0, 2 );
36
    lcd_data(' ');
37
    lcd_setcursor( 1, 2 );
38
    lcd_data('?');
39
    _delay_ms(100);
40
    lcd_setcursor( 1, 2 );
41
    lcd_data(' ');
42
  }
43
  
44
  return 0;
45
}

Es funktioniert gut. Es läuft nun ein paar Stunden. (Ich war nicht immer 
dabei)

@Uwe S.
Kannst du das Programm bitte für 8Mhz kompilieren?

von Walter (Gast)


Lesenswert?

Uwe S. schrieb:
>löte/ stecke einen 10k Pulldown Widerstand nach GND an LCD E.

Ich denn Pulldown angesteckt und dein neues Programm geflasht. Bisher 
läuft es problemlos.(läuft erst seit 1/2 Minute.)

von Uwe S. (de0508)


Lesenswert?

Walter,

bitte registriere Dich hier, dann kann ich Dir auch PN zusenden.

von Walter P. (walter_pf)


Lesenswert?

Ich habe mich nun registriert.
Mit dem Pullup und dem Programm mit 150µs Wartezeit wird die Zeit vom 
DCF77 Simulator richtig und ohne Unterbruch angezeigt.

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

der Widerstand an LCD E sollte ein pulldown, also nach Masse sein.

Einige LCD möchten keine offenen Steuereingänge, den LCD E ist high 
Aktiv.

von Walter P. (walter_pf)


Lesenswert?

Uwe S. schrieb:
> der Widerstand an LCD E sollte ein pulldown, also nach Masse sein.

Sorry, ich habe mich verschrieben. Meinte natürlich Pulldown.

von Walter P. (walter_pf)


Lesenswert?

Die Probleme mit dem Flackern und die fehlerhaften Zeichen sind gelöst! 
(Soweit ich das feststellen kann)

von Teo D. (teoderix)


Lesenswert?

Muffin schrieb im Beitrag #3669163:
> Nun, der DCF-Empänger-IC liefert "Nadel-Impulse" - UNABHÄNGIG des
> Emfanges, stimmt, aber: der Microcontroller, der diese Daten-Impulse
> "verarbeiten" muss, weiß aber mit "Bruchstücken" nichts anzufangen, und
> erzeugt daher undefinierte Zeichensätze, die u.U. auch zu diesem
> Phänomän "Displayflackern"

Ooohhaa... ROFEL...


Danke hab schon lange nicht mehr so herzhaft gelacht.

von Uwe S. (de0508)


Lesenswert?

Danke Muffin,

für Deine Beiträge.

Walter hat nun eine DCF77 Testversion mit 150µs Wartezeit für LCD 
Kommando erhalten und auch die LCD Zuleitungen auf ca, 20cm Länge 
verkürzt.

Ich bin auf die realen Empfangsergebnisse über den DCF77 Empfänger 
gespannt!

von Walter P. (walter_pf)


Lesenswert?

Uwe S. schrieb:
> Walter hat nun eine DCF77 Testversion mit 150µs Wartezeit für LCD
> Kommando erhalten und auch die LCD Zuleitungen auf ca, 20cm Länge
> verkürzt.

Außerdem habe ich noch einen 10k Pulldown Widerstand an Enable gehängt.

von Walter P. (walter_pf)


Angehängte Dateien:

Lesenswert?

Ich habe noch ein paar Fotos angehängt wie es aktuell aussieht.

von Teo D. (teoderix)


Lesenswert?

Muffin schrieb im Beitrag #3669195:
> frag den Walter mal, ob er überhaupt weiß, WANN die
> SYNCRONISIERUNGES-ZEITEN der Atom-Uhr mit seiner DCF-Uhr täglich /
> nächtlich sind.

...
....

Ich kann nich mehr :D

von Teo D. (teoderix)


Lesenswert?

@Muffin
Bleib jetzt bei dem Stil, der is echt lustig :)

von Uwe S. (de0508)


Lesenswert?

Hallo Muffin,

so wie es aussieht, ist das der DCF77 Simulator als DCF77 Quelle.

von Walter P. (walter_pf)


Lesenswert?

@Muffin
Die Zeit synchronisiert sich doch nur 3x am Tag? ;)

von Uwe S. (de0508)


Lesenswert?

Hallo Walter,

in meiner Software ist das so, dass bei einem synchronisierten DCF77 
Datenpaket auch die interne Uhr neu gestellt wird.

Wenn ein/ die DCF77 Datenpakete ungültig sind, dann läuft die Uhr mit 
der Genauigkeit des 16MHz Quarzes weiter.

Mehr ist dabei nicht zu beachten.

von Walter P. (walter_pf)


Lesenswert?

Muffin schrieb im Beitrag #3669246:
> aber auch zwischendurch stellt sich eine DCF Uhr selbst innerhalb 3
> Minuten maximal, falls Signalemfang hast, also, poste mal die aktuelle
> DCF-Uhrzeit bitte im Bild Wir warten... danke

Die Synchronisation mit dem DCF Empfänger funktioniert noch nicht. 
Deshalb ist sie am Simulator angeschlossen. (Die Schaltung unten rechts)
Sobald alles funktioniert werde ich ein Video machen.

von Uwe S. (de0508)


Angehängte Dateien:

Lesenswert?

Hallo,

da es meine Software ist, hier ein Bild mit der aktuellen Uhrzeit.

Die Hardware ist nur eine andere Atmega32U4 Breakout-Board.

# 
http://www.ehajo.de/baus%C3%A4tze/bedrahtete-baus%C3%A4tze/atmega32u4-breakout-board.html

Weitere Infos dazu findet man Oben.

Die Software für den Atmega32U4 unterscheidet sich nur in den 
verwendeten Timern - ich nutze Timer0 und Timer3 - der LCD Portbelegung; 
dessen Timing 50µs Wartezeit, dem DCF77 und dem MEZ/MESZ - UTC Eingang.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Muffin schrieb im Beitrag #3669251:
> lies bitte mal hier den beitrag -->
> Beitrag "Re: Optokoppler mit empfindlichen Eingängen" - aber nich gaz so
> erst nehmen - ok?

Nö, :-/
Der war lahm.

von Karl H. (kbuchegg)


Lesenswert?

Muffin schrieb im Beitrag #3669163:

> "Auswerte-IC" auch was damit "anfangen" - klingt doch logisch oder?

Nein. Klingt überhaupt nicht logisch.
Und zu deinen Bildchen: Wir sind hier nicht im Kindergarten, wo der mit 
den blödesten Sprüchen ein Sternchen kriegt.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Karl Heinz schrieb:
>> "Auswerte-IC" auch was damit "anfangen" - klingt doch logisch oder?

Richtig er hätte, "Auswerte-ICs", schreiben sollen.
(1971)

von Walter P. (walter_pf)


Lesenswert?

Hi

Die Uhr hat sich nun Synchronisiert!
Allerdings haben die Display Probleme wieder angefangen. Plötzlich wird 
nichts mehr angezeigt. Wie könnte ich das lösen?

von Walter P. (walter_pf)


Lesenswert?

Hi

Ich habe bemerkt, das das Display nur dann Müll anzeigt wenn es auf 0 
steht und nicht synchronisiert wird. Sobald es einmal Synchronisiert 
ist, funktioniert es meist. (Manchmal gibt es trotzdem Ausfälle)

von holger (Gast)


Lesenswert?

>Allerdings haben die Display Probleme wieder angefangen. Plötzlich wird
>nichts mehr angezeigt. Wie könnte ich das lösen?

Hast du AVCC angeschlossen? Mittlerweile muss man hier ja zum
letzten Strohhalm greifen.

von Uwe S. (de0508)


Lesenswert?

Hallo Holger,
das ist eine Idee und auch i.a. wichtig AVcc zu beachten.

Das Datenblatt des atMega32 schreibt hierzu:

//AVCC is the supply voltage pin for Port A and the A/D Converter. It 
should be externally connected to VCC, even if the ADC is not used. If 
the ADC is used, it should be connected to VCC through a low-pass 
filter.//

Port A wird nicht verwendet.

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.