Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: DCF77 Uhr Kategorie: Sonstige Hardware (von Joerg - 13.02.2012 8:03)
Als Antwort auf Re: DCF77 Uhr von Karl-Josef Schneider - 12.02.2012 20:55
Ich nutze:
C-Control Pro Mega128
> > > > > > Hallo,
> > > > > >
> > > > > > obwohl zu diesem Thema schon viel geschrieben wurde und ich alles gelesen habe komme ich mit meinem
> > > > > > Problem nicht weiter:
> > > > > >
> > > > > > Beim Bau eines Datenloggers (Aufzeichnen von Zählerständen auf SD-Karte) möchte ich die genaue Zeit
> > > > > > der DCF77 Uhr mit abspeichern. Als Empfänger dient das bekannte Conrad Modul 641138. Mit verschiedener
> > > > > > Beispiel-Software konnte die Uhr keine Zeit empfangen. Die Fehlersuche konzentrierte sich zunächst
> > > > > > auf die Conrad Module, hier war von 3 verfügbaren Modulen eines definitiv defekt. Bei den anderen
> > > > > > beiden ist kein sauberes Signal beim Anschluss an Port F.0 der C-Control messbar. Betreibt man das
> > > > > > Modul getrennt von der C-Control so kann man wunderbar die Signale des Senders mittels LED und
> > > > > > natürlich mit dem Oszilloskop an beiden Ausgängen nachweisen! Offenbar liegt die Störquelle ja dann
> > > > > > in der C-Control? Hierzu nun folgende Fragen:
> > > > > >
> > > > > > Welcher Ausgang (invertiert oder nichtinvertiert) muss mit der C-Control Pro verbunden werden? Hierzu
> > > > > > findet man alle 3 möglichen Antworten von invertiert, nicht invertiert oder egal!
> > > > > >
> > > > > > Pull-Up Widerstand ja oder nein? Auch hier werden beide Meinungen vertreten!
> > > > > >
> > > > > > Da ich alle Varianten ausprobiert habe sind diese Fragen nur von akademischer Bedeutung.
> > > > > >
> > > > > > Was bringt also das Signal des Senders beim Anschluss an die C-Contro Pro zum Zusammenbruch? Es
> > > > > > sind keine logischen Abläufe mit dem Oszilloskop mehr messbar. Ich habe übrigens auch zwei
> > > > > > verschiedene Application Boards getestet, bei beiden das gleiche negative Resultat!
> > > > > >
> > > > > > Für jede Antwort wäre ich dankbar
> > > > > >  
> > > > >
> > > > > Hallo,
> > > > >
> > > > > wenn Du bereits alles über DCF gelesen hast, dann auch sicherlich das die DCF_LIB.cc einen Fehler hat:
> > > > >
> > > > >
> > > > > > > suche mal in der DCF Lib nach der Zeile
> > > > > > >
> > > > > > >  if (BIT_CNT>=22)   // Start der Datenaufnahme ab Minuten
> > > > > > >
> > > > > > > und ändere sie auf
> > > > > > >
> > > > > > >  if (BIT_CNT>=21)   // Start der Datenaufnahme ab Minuten
> > > > > > >
> > > > > > > Grü�e Jörg
> > > > > > >
> > > > >
> > > > > Ich hatte das mal an Conrad geschrieben aber keine Antwort erhalten.
> > > > >
> > > > > Der Pull-Up  muÃ? gesetzt werden. Das geschieht aber in der Lib.
> > > > >
> > > > > Beim Ausgang bin ich mir nicht mehr sicher aber es mü�te der nichtinvertiert sein.
> > > > >
> > > > > Hier noch einige Tips:
> > > > >
> > > > > In der Interruptroutine eine LED schaltet. Dann mü�te man die Pulse an der LED sehen.
> > > > >
> > > > > Den Maximalen irqcnt=Irq_GetCount(INT_TIM2COMP);      abspeichern und im Hauptprogramm
> > > > > ausgeben. Der darf au�er beim ersten mal nicht über 1 kommen.!
> > > > >
> > > > > Nie Textausgaben in der Interruptroutine machen!!!!
> > > > >
> > > > > byte DCF_MODE;
> > > > > byte SEC_CNT;
> > > > > byte DATA_CNT;
> > > > > byte DCF_PARITY;
> > > > > byte DCF_ARRAY[7];
> > > > > Im Hauptprogramm cyclisch Ausgeben und sehen was passiert:
> > > > >
> > > > >
> > > > > Benutzt Du das SD schreiben schon?
> > > > > Ich bin mir nicht sicher ob man beim Schreiben auf SD nicht IRQ's verliert.
> > > > > Du mü�tes dann währen der Syncronisation auf das Schreiben verzichten.
> > > > >
> > > > > Ich habe auch einen Datenlogger mit 4 Temperatursensoren und DCF. SD fehlt allerdings noch.
> > > > > Ich zeichne die Seriellen Daten mit einem Terminalprogramm auf.
> > > > >
> > > > >
> > > > > Grü�e Jörg
> > > > >
> > > > Hallo Jörg,
> > > >
> > > > zunächst danke für Deine ausführliche Antwort.
> > > >
> > > > Den Fehler in der LIB habe ich natürlich korrigiert, ebenfalls habe ich es mit und ohne zusätzlichen
> > > > externen Pull-Up Widerständen versucht, beides hat leider nichts gebracht.
> > > >
> > > > Deine Tips zum Programm muÃ? ich noch ausprobieren, dazu werde ich mich wieder melden.
> > > >
> > > > Der Datenlogger läuft z.Z. bei mir im Probebetrieb, d.h. er ist noch nicht an die Schnittstellen
> > > > zu den Zählern angeschlossen. Diese wurden einzeln erfolgreich getestet, von der IR-Schnittstelle
> > > > des Zweirichtungszählers habe ich die SML-Protokolle über RS232 eingelesen und vom Solarzähler die
> > > > Impulse von der Ferrarisscheibe des Zählers optisch erfasst. Im Probebetrieb werden die Zählerdaten
> > > > per Zufallszahl erzeugt und zusammen mit der Uhrzeit im 1-Minutentakt auf die SD-Karte geschrieben.
> > > > Das läuft soweit prima, nur benutze ich bisher die interne Uhr da DCF77 noch nicht funktioniert.
> > > > SD-Karte ist kein Problem, man kann sie nur nicht zusammen mit der USB-Schnittstelle benutzen. Wenn
> > > > man die SD-Karte nach Conrad-Anleitung verdrahtet, muÃ? man USB deaktivieren und die Kommunikation
> > > > mit dem PC muss über RS232 erfolgen. Falls Du an Einzelheiten zu meinem Projekt interessiert bist
> > > > bitte melden.
> > > >
> > > > GrüÃ?e  Karl-Josef
> > > >
> > > Hallo Jörg
> > >
> > > habe inzwischen auch Deine Tips ausprobiert und mir die Variablen anzeigen lassen:
> > >
> > > irqcnt startet mit 11, ist dann immer 1, nimmt aber 1 x pro Sekunde den Wert 2 an
> > > DCF_MODE startet mit 2 und fällt nach 3 min auf 0 ab
> > > SEC_CNT hat wechselnde Werte
> > > DATA_CNT ist immer 0
> > > DCF_PARITY ist immer 0
> > > DCF_ARRAY[7] wird in meiner DCF77.cbas nicht angenommem!?
> > >
> > > Wie ich die LED schalten soll ist mir nicht ganz klar.
> > >
> > > GrüÃ?e   Karl-Josef
> >
> > Hallo Karl-Josef,
> >
> > > DCF_MODE startet mit 2 und fällt nach 3 min auf 0 ab
> >
> > das bedeutet, das die Synchronisation auf den Frameanfang (Pulslücke)
> > nichteinmal funktioniert hat.
> >
> > Das mit dem Wert 3 bei maxirq kommt vermutlich durch das Schreiben auf SD.
> > Ich würde das Schreiben erstmal abschalten.
> >
> > Mit der LED:
> >
> > In der Lib wied in der Interruptroutine das PortBit abgefragt.
> > Schalte ein LED ein wenn das Bit 1 ist und aus wenn es 0 ist.
> > Dann mü�tes du die Pulse sehen.
> >
> > Grü�e Joerg
>
> Hallo Joerg,
>
> wenn ich auf DCF77-Empfang teste arbeite ich nur mit dem Beispielprogramm DCF77.cbas, alle anderen
> Dinge wie SD-Karte sind dann nicht aktiv! LED1 blinkt permanent im Sekundentakt.
> Das Blinken von LED1 kann man auch mit einem simplen Beispielprogramm hervorrufen, das funktioniert
> auch. Wenn ich den Port ändere und dort eine LED mit Vorwiderstand anschlie�e funktioniert das nicht
> mehr, die LED zuckt bestenfalls im Sekundentakt, nicht aber eine Sekunde an und eine Sekunde aus wie
> vom Programm gefordert. Dieses Ergebnis liefern alle Ports, egal welchen ich ansteuere!? Hier ist
> doch etwas oberfaul?
>
> GrüÃ?e  Karl-Josef

Hallo Karl-Josef;

> wenn ich auf DCF77-Empfang teste arbeite ich nur mit dem Beispielprogramm DCF77.cbas,
> alle anderen Dinge wie SD-Karte sind dann nicht aktiv! .

Dann sollten auch kein IRQ's verloren gehen.

Was für ein Board hast du denn? Hast du dir mal in die Portbelegung angesehen?
Nicht immer alle Ports können verwendet werde. Bei einigen muss man z.B. erst SPI enable verwenden.
F0 sollte aber in Ordnung sein.

Das mit der LED würde ich aber erstmal zum Laufen bringen...

Grü�e Joerg




    Antwort schreiben


Antworten: