Pollin DCF77 an ATMega8 will nicht wie ich

Persönliche Seite #3212504
Lesenswert?

Hi ihr Lieben,

Hab ein kleines Problem bei einem Projekt mit DCF77 Empfänger von 
Pollin.

Angeschlossen ist das Modul mit dem Data-Ausgang an den PD2 (Int 0) und 
der PON an einen anderen Pin zum kontrolliert an/ausschalten.

Versorgungsspannung ist sauber (6V Bleiakku und 78L03) und zusätzlich 
wurde der Data-Out des DCF77 mit 100nF gegen VCC gezogen, damit die 
Impulse sauberer Kommen.

Laut OSZI schickt das DCF-Modul auch sauber die Impulse raus (vgl. 
DCF_high_bit und DCF_low_bit Bilder).

Ich nutze die Firmware von Michael S. 
(Beitrag "Re: DCF-Uhr ohne Sonnenstand etc. in C"), welche ich nur an 
den Atmega8 angepasst habe (siehe dazu dcf77_mini1.c)

Laut RS232 Debug empfängt der AVR auch etwas, allerdings interpretiert 
er jedes Bit als Low-Bit außer die neue Minute (da dort das Bit 
anscheinend länger gesendet wird).

Ich vermute ich habe irgend etwas mit den Timern verrissen, komme aber 
nicht drauf wo der Fehler liegt, daher bitte ich um ein Prüfendes 
Augenpaar von euch.

In der Main (bzw. der Initialisierung) wird das DCF-Modul und der 
Interrupt so initialisiert:

  // Port D für Interrupts Initialisieren

  DDRD &= ~(1<<PD2) | ~(1<< REED_OBEN);      // INTs als Eingänge
  DDRD &= ~(1<<REED_UNTEN);            // untere Endlage
  DDRC &= ~(1<<LIGHT_SWITCH);          // Lichtschalter
  PORTD |= (1<<REED_OBEN) | (1<< REED_UNTEN);  // INT1 und untere Enlage 
mit PullUp

  MCUCR |= 0b00001001;        // INT1 bei fallender Flanke, INT0 any 
logical change
  GICR |= 0b11000000;        // INTs aktiv

  _delay_ms(1000);
  PORTC |= (1<<DCF77_PON);      // DCF77 off
  _delay_ms(1000);
  PORTC &= ~(1<<DCF77_PON);      // DCF77 Restart

  DCF_Init();            // Timer Init, Interrupts

  #if USART == TRUE
  RS232_Init();      // Serielle Schnittstelle Initialisieren
  #endif

  sei ();            // Enable Interrupts
Angehängte Dateien:
Persönliche Seite #3212608
Lesenswert?

ähhmm..sorry. Ich hatte wohl was verwechselt. Habe soeben den 100nF 
Kerko zwischen Data und Vdd entfern und siehe da die Impulse kommen 
sauber und zusammenhängend entweder 100ms oder 200ms lang.

Dennoch erkennt meine Firmware das nicht (siehe Screenshot).

Die Impulslänge wird zwar ordentlich berechnet, aber irgendwie wertet 
das Ding die Bits nicht aus...
Angehängte Dateien:
Persönliche Seite #3215302
Lesenswert?

Ok, wollte mich nur hier zurückmelden falls jemand auf das Thema stoßen 
sollte. Die Uhr läuft jetzt.

Grund für den Fehler war zum einen genannter 100nF Kondi und die 
Unfähigkeit meiner Person den genutzten Quelltext ordentlich zu lesen.

// --- DCF-Empfänger 
----------------------------------------------------------
// erwartet wird vom DCF-Empfänger:
// DCF-Ruhe-Level: HIGH, bei Signal: LOW !!!!!!!!!!!!!!!!!!!!!!!!!

...habe das Signal vom DCF-Empfänger nun über einen kleinen Mosfet 
invertriert. Läuft 1A.

Danke trotzdem allen ;)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren