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 ?.
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
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?
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?
Walter schrieb: > Ich verwende einen Atmega32 mit einem 16Mhz Quarz ... > #define F_CPU 1000000 Autsch :(
Teo, nee das ist das attiny Programm, ist aber ohne Funktion. Zwei Transistoren machen das selbe.
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.
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.
> 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
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 ;)
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
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.
@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.
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
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.
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.
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.
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/
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
@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?
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
@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.
@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.
@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)
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.
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.
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.
Edit: Das erste Foto ist eine alte Version. Der qC unten links ist nun durch einen NPN Transistor ersetzt. (siehe Foto 4)
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.
@Uwe S. Den DCF77 Empfänger habe ich nun auf ein eigenes Steckbrett montiert. Dieses steht am Fenster. (Bild 2)
Da Du dich sicher nicht verstöpselt hast, kann's nur an der Lötung liegen. Zeig mal die Rückseiten.
Hallo Walter, Kannst Du die DCF77 Impulslängen messen ? Wie weit weg wohnst Du von Frankfurt ?
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)
Könnte ich vielleicht einen qC so programmieren das er ein DCF77 Signal simuliert? (zur Fehlereingrenzung)
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).
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.
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
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.
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?)
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"
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.
Die DCF-Module in den billig Weckern von Aldi und Co. für ~6€ sind genauso gut wie die von Reichelt.
@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.
Hallo Walter, mit dem DCF77 Simulator doch? Dann ist deine Hardware ja soweit ok. Mehr kann man aus der ferne nicht machen.
Walter schrieb: > Antenne habe ich nach Norden ausgerichtet. Denk bitte daran, dass bei einer Ferrit Antenne die Querseite zum Sender zeigen muss.
Uwe S. schrieb: > mit dem DCF77 Simulator doch? Mit dem Simulator funktioniert es einwandfrei. Welches DCF Modul hast du?
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 !
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.
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?
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.
Ich frag mich eher was das für ein Programm ist, das Müll anzeigt wenn das DCF-Signal unsauber ist?
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
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 :(
Ja schrieb Walter, aber mit 400km Entfernung zu FFM ist das DCF77 schon sehr schwach. Ich habe nur ~70km bis FFM.
Nö, mit dem Reichelt-Modul und dem Conrad-Modul gehts auch bei halbwegs passender Ausrichtung (+/-45°) in Berlin (ebenfalls 400 km).
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.
@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?
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 ?
Uwe S. schrieb: > Wie hoch ist die Versorgungsspannung: 5V ? Die Versorgungsspannung ist 5V. 100nF SMD Kondensatoren muss ich bestellen.
Den Kondensator kannste Dir sparen. Verdopple erstmal, testweise die Wartezeit, bis neue Daten gesendet werden.
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.
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.
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.
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 ?
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.
Ich würde mich jetzt mal auf das konzentrieren. Beitrag "Re: Breadboard - hat jemand Langzeiterfahrung?" ff.
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
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.
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?
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.)
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.
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.
Uwe S. schrieb: > der Widerstand an LCD E sollte ein pulldown, also nach Masse sein. Sorry, ich habe mich verschrieben. Meinte natürlich Pulldown.
Die Probleme mit dem Flackern und die fehlerhaften Zeichen sind gelöst! (Soweit ich das feststellen kann)
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.
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!
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.
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
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.
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.
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
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.
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
Karl Heinz schrieb: >> "Auswerte-IC" auch was damit "anfangen" - klingt doch logisch oder? Richtig er hätte, "Auswerte-ICs", schreiben sollen. (1971)
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?
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)
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.