Forum: Mikrocontroller und Digitale Elektronik DCF-Empfänger probleme (erhalte kein high-signal am pin)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein DCF-Empfangsmodul von Pollin 
(https://www.pollin.de/p/dcf-77-empfangsmodul-dcf1-810054?gclid=EAIaIQobChMIgaf6jLqx6gIVh6ztCh03FQcaEAQYASABEgJ2avD_BwE)
Der Atmega läuft mit 3,3V. Auch das DCF-Empfangsmodul läuft mit der 
selben Spannungsversorgung.

Die habe ich wie folgt an meinem Atmega328P/ Platine angeschlossen:
DCF - ATmega
VCC - 3,3V
GND - Masse
TCO - PB0
PON - PD7 (ist auf low)

zwischen VCC und GND am Empfangsmodul habe ich einen 10uF Elko

Mein Atmega hat einen externen 8MHz quarz

Das Signal taste ich alle 20 ms ab und berechne mir dann die Uhrzeit 
(ist zumindest der plan).
Dies funktioniert leider nicht, da der Input am Atmega die ganze zeit 
auf low ist.
Ich lasse mir in der ISR den Zustand des Input pins ausgeben

in main:
1
  /* PB0 als Eingang fuer DCF (TCO) */
2
  DCF77_TCO_REGISTER &= ~(1<<DCF77_TCO_PIN);  // PB0 als Eingang
3
  DCF77_TCO_PORT |= (1<<DCF77_TCO_PIN);  // Interner Pull-up einschalten
4
5
  /* PD2 als Eingang fuer Button 1 */
6
  BUTTON_1_REGISTER &= ~(1<<BUTTON_1_PIN);  // PD2 als Eingang
7
  BUTTON_1_PORT |= (1<<BUTTON_1_PIN);  // Interner Pull-up einschalten
8
9
  /* PD3 als Eingang fuer Button 2 */
10
  BUTTON_2_REGISTER &= ~(1<<BUTTON_2_PIN);  // PD3 als Eingang
11
  BUTTON_2_PORT |= (1<<BUTTON_2_PIN);  // Interner Pull-up einschalten
12
  
13
  /* PD7 als Ausgang fuer DCF (PON) */
14
  DCF77_PON_REGISTER |= (1<<DCF77_PON_PIN);  // PD7 als Ausgang
15
  DCF77_PON_PORT &= ~(1<<DCF77_PON_PIN);  // PD7 low
16
  
17
  /* PB5 als Ausgang fuer LED zum Testen */
18
  LED_REGISTER |= (1<<LED_PIN);
19
  LED_PORT &= ~(1<<LED_PIN);
20
... ...
21
  /* 20 ms */
22
  TCCR1B = (1 << WGM12) | (1 << CS11) | (1 << CS10); // CTC-Mode clkIO/64
23
  OCR1A = (2500-1);
24
  TIMSK1 = (1 << OCIE1A);
25
26
  uart_sendString("\r\nstart\r\n");
27
28
  sei();
29
30
    while (1) 
31
    {
32
    }

timer-isr
1
ISR (TIMER1_COMPA_vect)
2
{
3
  if ((PINB & (1<<DCF77_TCO_PIN))) uart_sendString("1");
4
  else uart_sendString("0");
5
}

Erst bin ich davon ausgegangen, dass der Empfänger defekt ist. Am 
Logicanalyzer bekomme ich allerdings noch die Signale empfangen.

Anbei mal den schaltplan wie ich den empfänger angebunden habe.

Habe alles schon öfters nachgemessen und kontrolliert.
Es ist keine brücke eingelötet, die Verbindungen sind nur zu den Pins wo 
sie hin sollen und Spannung und Masse ist auch richtig verbunden.

Woran könnte es liegen, dass der Input die ganze Zeit low ist?

Beitrag #6325877 wurde von einem Moderator gelöscht.
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Messe den Spannungspegel nach. Für High müssen es mindestens 2 Volt 
sein.

Bei den mir bekannten Modulen darfst du keinen Pull-Up Widerstand 
verwenden, weil dieser das DCF Modul zu stark belastet.

Allerdings sagst du, dass du keinen High Pegel bekommst. Wenn der 
Pull-Up Widerstand zu stören würde, dann hättest du immer High und 
keinen Low Pegel.

: Bearbeitet durch User
von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> /* PB0 als Eingang fuer DCF (TCO) */
>   DCF77_TCO_REGISTER &= ~(1<<DCF77_TCO_PIN);  // PB0 als Eingang
>   DCF77_TCO_PORT |= (1<<DCF77_TCO_PIN);  // Interner Pull-up einschalten

Laut Beschreibung/Kommentaren braucht er einen PullDown am Ausgang.
Wo ist der in deiner Hardware?? Antwort: Nirgends.

Stattdessen programmierst du einen PullUp?

> Der Atmega läuft mit 3,3V. Auch das DCF-Empfangsmodul läuft mit der
> selben Spannungsversorgung. Die würde ich zur Sicherheit etwas niedriger setzen. 
Du bist an der Max.-Grenze.

: Bearbeitet durch User
von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:

> Woran könnte es liegen, dass der Input die ganze Zeit low ist?

Warum fragst du dasselbe noch einmal in einem neuen Thread?

Die Sachlage hat sich doch nicht geändert seit dem letzten. Dauer-Low 
ist nur durch ein Hardwareproblem erklärbar, also Kurzer zwischen PB0 
und GND und/oder defekter Empfänger.

Ansonsten müßte sich Dauer-High ergeben, weil du hier:

> DCF77_TCO_PORT |= (1<<DCF77_TCO_PIN);  // Interner Pull-up einschalten

den Pullup aktivierst.

Das kann doch nicht so schwer zu begreifen sein?!

> Am
> Logicanalyzer bekomme ich allerdings noch die Signale empfangen.

Das ist eine neue Information. Da wäre die Frage zu stellen: welche 
Stelle hast du für die Messung angetastet? Wirklich aussagekraftig ist 
sie nur dann, wenn direkt an PB0 gemessen.

Wenn das der Fall war, dann bleibt aber immer noch eine Sache: was 
steckt eigentlich hinter "uart_sendString"? Ist diese Routine überhaupt 
in der Lage, aus einer ISR heraus aufgerufen zu werden. Oder 
(wahrscheinlicher) auch: mehr als einmal aus einer ISR heraus aufgerufen 
zu werden?

Wie wäre es, wenn du statt dessen an die LED an PB5 eine Kopie des 
Status von PINB0 auszugeben? Damit hast du erstmal alle Unwägbarkeiten 
der UART-Ausgabe vom Tisch...

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael M. schrieb:

> Laut Beschreibung/Kommentaren braucht er einen PullDown am Ausgang.

Quatsch mit Soße. Der hat einen PushPull-Ausgang und braucht weder 
PullDown noch PullUp.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Quatsch mit Soße. Der hat einen PushPull-Ausgang und braucht weder
> PullDown noch PullUp

Ob es Quatsch mit oder ohne ist...
In den Kommentaren steht es. Mehr kann ich nicht sagen. Pollin sagt erst 
recht nix.

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Woran könnte es liegen, dass der Input die ganze Zeit low ist?

Und täglich grüßt das Murmeltier --- wurde hier schon x-mal beantwortet.
Hardwaremäßig : Kein Pull-Up-Widererstand (!), Antenne absetzen und 
ausrichten.
Zur Software in C kann ich leider nichts beitragen.

von Johannes (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael M. schrieb:
> Laut Beschreibung/Kommentaren braucht er einen PullDown am Ausgang.
> Wo ist der in deiner Hardware?? Antwort: Nirgends.
>
> Stattdessen programmierst du einen PullUp?

Das steht aber nirgends im Datenblatt/Bedienungsanleitung

Stefan ⛄ F. schrieb:
> Messe den Spannungspegel nach. Für High müssen es mindestens 2 Volt
> sein.

mhh,
zwischen GND und PD7 (TCO von DCF) messe ich konstant 0,0V. Das zwar, 
warum ich nur "0" raus bekomme. Aber kontakt zwischen PD7 und TC0 ist da

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> TCO - PB0
> PON - PD7 (ist auf low)

> Aber kontakt zwischen PD7 und TC0 ist da

??

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Dann hast du wohl einen Kurzschluss nach GND.

Klemme den DCF-77 EMpfänger mal ab, dann muss der Pin (wegen deinem 
Pull-Up) sofort auf 3,3V gehen.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Das steht aber nirgends im Datenblatt/Bedienungsanleitung

..in den Kommentaren... einfach mal lesen hilft..

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Michael M. schrieb:
> ..in den Kommentaren

Wo denn?

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
Für das zickige Pollin-DCF-Modul verwende ich folgende Anschaltung:
Beitrag "[Bascom/AVR] Uhr und DCF"
Der Pull-Up ist in diesem Fall eingeschaltet. Das Modul kann mit einige 
Meter abgesetzt werden.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Wo denn?

Text-Ausschnitt vom o.a. Link:
-Der Signal-Pin (TCO) ist mit dem Signalabnehmer und einem 
10K-Widerstand zu verbinden, dessen anderes Ende mit GND verbunden wird. 
Als ein PULL-DOWN(!!!!) Widerstand und nicht wie im Datenblatt direkt an 
den MCU. Bei mir hat ein Pullup nicht funktioniert.

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Alex D. schrieb:

> Der Pull-Up ist in diesem Fall eingeschaltet.

Dann hast du erstens Glück, dass das Modul das überlebt hat und zweitens 
würde es auch ohne Pullup funktionieren...

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Michael M. schrieb:

> Text-Ausschnitt vom o.a. Link:

Welcher Link? Ich sehe keinen.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Empfehlung: Sehhilfe.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Michael M. schrieb:
> Der Signal-Pin (TCO) ist mit dem Signalabnehmer und einem
> 10K-Widerstand zu verbinden,

Dann lies mal den nächsten Beitrag:

"Den Ausführungen meines Vorredners muss ich widersprechen. Die alte 
Pinbelegung war (bei allen mir bisher zugegangenen Modulen) korrekt. 
Allerdings sollte der Ausgang möglichst nicht belastet werden, besonders 
kapazitive Last ist kritisch. Wenn man dieses beachtet, funktioniert das 
Modul einwandfrei. "

von Johannes (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alex D. schrieb:
> Kein Pull-Up-Widererstand (!)

Wie groß muss den der Pull-Down-widerstan sein?

Alex D. schrieb:
> Antenne absetzen und
> ausrichten

Warum? Das Signal bekomme ich ja mit dem Logicanalyzer.
Aber auch wenn ich die noch mehr ausrichte, bleibt das Verhalten das 
selbe

S. Landolt schrieb:
>> TCO - PB0
>> PON - PD7 (ist auf low)
>
>> Aber kontakt zwischen PD7 und TC0 ist da
>
> ??

Ja, da habe ich mich vertan. ich meinte, dass der kontakt zwischen PB0 
und TC0 da ist.
zwischen PD7 und PON ist der Kontakt aber auch da.

Stefan ⛄ F. schrieb:
> Klemme den DCF-77 EMpfänger mal ab, dann muss der Pin (wegen deinem
> Pull-Up) sofort auf 3,3V gehen.

Ja, das macht der auch

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Alex D. schrieb:
>
>> Der Pull-Up ist in diesem Fall eingeschaltet.
>
> Dann hast du erstens Glück, dass das Modul das überlebt hat und zweitens
> würde es auch ohne Pullup funktionieren...

Du hast dir das Schaltbild garnicht angesehen, aber meckern !

Der Pullup hat überhaupt nichts mit dem Modul-Ausgang zu tun.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Dann lies mal den nächsten Beitrag:

Dann muss sich der Käufer eben damit abfinden. So einen Schrott a) 
anzubieten b) keine konkreten und zuverlässigen Daten in der 
Beschreibung/"Bedienungsanleitung" ...
Wer das kauft-- selber Schuld.

Was übrig bleibt: Ausprobieren und evtl. Lehrgeld zahlen.

: Bearbeitet durch User
von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alex D. schrieb:

> Du hast dir das Schaltbild garnicht angesehen

Das stimmt. Weil es absolut nix mit der Situation des TO zu schaffen 
hat. Der hat einfach das Modul direkt an den Mega geknotet.

Es macht also im Rahmen dieses Thread absolut keinen Sinn, über deine 
Adapterschaltung zu diskutieren...

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Wie groß muss den der Pull-Down-widerstan sein?

Lies endlich die Seite deines eigenen Links KOMPLETT durch..


> Stefan ⛄ F. schrieb:
>> Klemme den DCF-77 EMpfänger mal ab, dann muss der Pin (wegen deinem
>> Pull-Up) sofort auf 3,3V gehen.
>
> Ja, das macht der auch

Der (progr.) PullUp kann ja nichts bewirken, wenn der Empfänger 
abgezogen ist.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Wie groß muss den der Pull-Down-widerstan sein?

Auch kein Pull-Down! Das Modul kann nur wenige Mikroampere liefern. Da 
es eine Push-Pull Ausgangsstufe hat, sind weder Pull-Up noch Pull-Down 
sinnvoll.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Michael M. schrieb:
> Der (progr.) PullUp kann ja nichts bewirken, wenn der Empfänger
> abgezogen ist.

Doch natürlich, er zieht den I/O Pin hoch.

Wenn der Pin mit DCF-Modul immer auf 0V liegt, dann ist entweder das DCF 
Modul kaputt oder du hast in der Verbindung einen Kurzschluss.

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
> Es macht also im Rahmen dieses Thread absolut keinen Sinn, über deine
> Adapterschaltung zu diskutieren...

Da hast du wohl recht, nur, die Anschaltung funktioniert und lässt sich 
auch leicht an 3,3V anpassen. Mein Modul hatte vorher schon einige Tage 
im Papierkorb verbracht, ich habe es halt noch mal probiert und jetzt 
läufts schon seit Jahren ohne Probleme.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alex D. schrieb:

> nur, die Anschaltung funktioniert

Das glaube ich, schließlich sie hat alle Eigenschaften, um funktionieren 
zu können.

> und lässt sich
> auch leicht an 3,3V anpassen.

Nur wird dann praktisch alles davon überflüssig... Die beste Anspassung 
an 3.3V-Versorgung des µC ist also, sie einfach komplett wegzulassen...

Die einzige Ausnahme von diesem Ansatz ist, wenn man einen vom µC 
entfernten Betrieb des Empfangsmoduls anstrebt, was u.U. durchaus 
sinnvoll sein kann. Nur sind im Falle des TO diese Umstände 
offensichtlich in keinster Weise relevant, da er ja folgendes behauptet:

> Am
> Logicanalyzer bekomme ich allerdings noch die Signale empfangen.

von Michael M. (michaelm)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Doch natürlich, er zieht den I/O Pin hoch.

Du meinst am uC. Ok. Ws geht hier aber um das DCF-Modul; wenn ich das 
trenne, nützt der PU im uC wenig.

Bin dann raus, es wird mir zu spaßig hier :-(

: Bearbeitet durch User
von Johannes (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> dann ist entweder das DCF
> Modul kaputt

Dann dürfte am Logicanalyzer ja auch nichts mehr ankommen.

Stefan ⛄ F. schrieb:
> der du hast in der Verbindung einen Kurzschluss

Habe ich schon alles nachgemessen. Einen Kurzschluss ist nicht drinn.

Was kann ich denn noch machen? Die einen sagen einen Pull-down 
widerstand (habe es jetzt auch in den Kommentaren von der Pollin-Seite 
gelesen), die anderen sagen kein pull-down.

Dann wird gesagt, dass es falsch war das Modul direkt am controller zu 
packen (obwohl nichts anderes bis auf den zusätzlichen Elko in der 
Beschreibung stand).

Muss es so eine komplexe Schaltung wie in Beitrag "[Bascom/AVR] Uhr und 
DCF" sein?

Würde es gerne mal zum laufen bekommen.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Dann dürfte am Logicanalyzer ja auch nichts mehr ankommen.

Du hast uns mit widersprüchlichen Informationen versorgt.

Es kann nicht sein, dass der Logic Analyzer ein pulsierendes Signal 
anzeigt, während der gemessene Spannungspegel durchgehend 0 Volt ist.

> Was kann ich denn noch machen?

Richtig messen, am Besten mit einem Oszilloskop.

Oder du hängst mal diese oben gezeigte Transistorschaltung an das Modul, 
dann hast du eine bequeme Statusanzeige (Blinkende LED) und einen 
ordentlich belastbaren Ausgang.

: Bearbeitet durch User
von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Würde es gerne mal zum laufen bekommen
c-hater hatte doch einen profunden Vorschlag:
> an die LED an PB5 eine Kopie des Status von PINB0 auszugeben

Wäre ein zehnzeiliges Programm, man könnte sämtliche pull-Varianten 
ausprobieren, und zusätzlich mit dem Logikanalysator reinschauen.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:

> Was kann ich denn noch machen? Die einen sagen einen Pull-down
> widerstand (habe es jetzt auch in den Kommentaren von der Pollin-Seite
> gelesen), die anderen sagen kein pull-down.

Die Kommentare bei Pollin stammen nicht von Pollin, sondern von 
irgendwelchen Leuten, offensichtlich auch von Vollidioten.

Was Pollin zu dem Modul zu sagen hat, steht im sog. "Datenblatt" und 
insbesondere auch auf dem schicken Papierzettel, den es zu jedem dieser 
Module gratis dazu gibt.

Mehr ist nicht nötig, denn da steht alles drin, was wichtig ist.

> Muss es so eine komplexe Schaltung wie in Beitrag "[Bascom/AVR] Uhr und
> DCF" sein?

Die hat gewisse vorteilhafte Eigenschaften, ist aber dafür ausgelegt, 
dass der µC mit 5V betrieben wird. Im Prinzip könnte man sie aber mit 
geringen Änderungen auch an mit 3.3V betriebenen µC verwenden.

Nötig ist sie aber meist nicht. Eigentlich nur, wenn die Versorgung des 
µC von Hause aus Scheiße ist und/oder aus derselben Versorgung 
irgendwelche Verbraucher mit hohen Transienten betrieben werden, z.B. 
LEDs mit PWM-Steuerung oder als Matrix mit Multiplexansteuerung.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> Die einen sagen einen Pull-down widerstand

Hier bist du der einzige, der das sagt. Alle anderen haben dem 
widersprochen. Auch auf deine Quelle dieser behauptung wurde dem 
widersprochen. Brauchst du das schriftlich per Einschreiben, um es zu 
glauben? Wenn du es nicht glaubst, dann probiere es doch einfach aus. 
Danach weißt du es aus eigener Erfahrung.

> Dann wird gesagt, dass es falsch war das Modul direkt am
> Controller zu packen

Das hat niemand gesagt. Auch hier bist du selbst wieder derjenige, der 
Verwirrung stiftet. Du stehst Dir selbst im Weg.

> Muss es so eine komplexe Schaltung wie in
> Beitrag "[Bascom/AVR] Uhr und DCF" sein?

Die Antwort hast du bereits vorher bekommen und gerade nochmal: Nein 
muss nicht, geht aber.

> Würde es gerne mal zum laufen bekommen.

Vielleicht schläfst du mal ein paar Tage darüber und versuchst es später 
wieder. Kaufe Dir zwischenzeitlich mal ein DSO-138, falls du kein 
Oszilloskop besitzt.

Hier in Kapitel 12 hast du die Bestätigung, dass der direkte Anschluss 
an den AVR funktioniert: 
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%203.pdf

Da steht auch, wie du das Modul (ohne Mikrocontroller) testen kannst und 
ein kommentiertes Programmierbeispiel.

: Bearbeitet durch User
von Gerald K. (geku)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> Erst bin ich davon ausgegangen, dass der Empfänger defekt ist. Am
> Logicanalyzer bekomme ich allerdings noch die Signale empfangen.

Ist einmal ein gutes Zeichen!

Laut Beschreibung haben die Pegel folgende Bedeutung  :

• TCO= GND wenn die Trägeramplitude das Maximum erreicht.
• TCO= VDD wenn die Trägeramplitude absinkt (moduliert wird).

Das bedeutet, dass der 77,5kHz Träger erkannt wird.

TCO=VDD tritt einmal pro Sekunde für 100 bzw. 200ms auf wenn ein Zeichen 
gesendet wird.

TCO ist die meiste Zeit (900 bzw. 800ms von 1000ms) auf GND. Aber am 
Logikanalysator müsste ein kurzer Impuls sichtbar sein. Können wir das 
Ergebnis vom LA sehen?

Wird die Ferritspule kurzgeschlossen, dann dürfte der Modul keinen 
Träger sehen und TCO müsste für die Dauer dieses Kurzschlusses auf VDD 
gehen.

Ich vermute das Problem liegt an  der Auswertungssoftware.

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Alex D. schrieb:
> Für das zickige Pollin-DCF-Modul

ich hatte mir 4 Pollin Module zerschossen weil ich es aus +5V versorgte 
lt. Beipackzettel! Ich zweifelte schon an mir.

Erst ein Thread hier machte mich darauf aufmerksam das die neueren NUR 
mit maximal 3,3V versorgt werden dürfen.
Pollin schickte aber Ersatz mit neuen Beipackzetteln.

weiter gilt der DCF77 Ausgang darf nicht groß belastet werden das ist 
aber mit einen OC
https://www.elektronik-kompendium.de/sites/slt/1206121.htmBC547

o.ä. locker zu erledigen, also den Collector vom BC am AVR über 4,7k bis 
20k an AVR VCC.

Der Transistor sollte aber ans DCF77 Modul mit kurzen Leitungen.

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> Alex D. schrieb:
>> Für das zickige Pollin-DCF-Modul
>
> ich hatte mir 4 Pollin Module zerschossen weil ich es aus +5V versorgte
> lt. Beipackzettel! Ich zweifelte schon an mir.

Zur Versorgung habe ich 2,9V mit einer einfachen LED-Stabilisierung 
verwendet.

von Gerald K. (geku)


Bewertung
0 lesenswert
nicht lesenswert
Johannes schrieb:
> ISR (TIMER1_COMPA_vect)
> {
>   if ((PINB & (1<<DCF77_TCO_PIN))) uart_sendString("1");
>   else uart_sendString("0");
> }

Ich sehe in der Interruptroutine keine  Ansteuerungen der LED!

Ich hoffe die Baudrate ist genügend groß um ein Zeichen innerhalb der 
20ms absetzen zu könnten. Werden die 20ms stark unterschritten gibts 
Probleme mit dem UART.
Die Ausgabe an den UART halte ich gerade für Testzwecke nicht sehr gut 
geeignet.

Wenn ich schon einen LA habe , *dann würde ich diesen beim Test auch 
benutzen* !

Als Erstes würde ich den periodischen Aufruf der TimerInterruptroutine 
überprüfen
Zu diesen Zwecke würde ich am  Beginn der  Interruptroutine eine 
Portpin invertieren und mit dem LA beobachten. Der Pin müssen 
abwechselnd für 20ms HIGH und für 20ms LOW sein.

Im nächsten Test würde ich den Portpin  anstelle der UART Ausgabe 
verwenden.
Den DCF Module abhängen und den Eingang manuell zwischen GND und VDD 
wechseln. Das Signal am LA müsste im 20ms Raster dem Eingang folgen.

Erst dann würde ich den DCF Modul anschliessen um zu sehen was der LA 
liefert.

Gutes gelingen !

von Gerald K. (geku)


Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> also den Collector vom BC am AVR über 4,7k bis 20k an AVR VCC.

Da eignet sich auch der MC-interne Pullup. Man kann leicht zwischen 
Pullup und Pulldown und hochohmig wechseln.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Gerald K. schrieb:
> Man kann leicht zwischen
> Pullup und Pulldown und hochohmig wechseln.

Die klassische AVR (wie der hier genannte Atmega328P) haben keinen 
internen Pull-Down.

von Gerald K. (geku)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Die klassische AVR (wie der hier genannte Atmega328P) haben keinen
> internen Pull-Down.

Beim MSP430 ist das Standard.

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Gerald K. schrieb:
> Beim MSP430 ist das Standard.

Mag sein, aber es geht hier um den ATmega328. Stifte bitte nicht noch 
mehr Verwirrung. Du siehst doch dass der TO schon ganz durcheinander 
ist.

: Bearbeitet durch User
von Gerald K. (geku)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Du siehst doch dass der TO schon ganz durcheinander ist.

Ihm fehlt die systematische Vorgangsweise bei Fehlersuche.


Wenn ich Messgeräte, wie Logikanalysatoren, zur Verfügung habe, dann 
muss ich sie auch konsequent einsetzen um eine qualifizierte Aussage 
treffen zu können.

Was hat es mit der LA Messung auf sich? Gibt es Signale am Ausgang des 
DCF-Moduls oder gibt es sie nicht? Wenn JA, wie sehen die Signale aus? 
....

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Ich fasse nochmal zusammen:

Der µC Eingang ist mit internem Pull-Up Konfiguriert. Ohne DCF-77 Modul 
liegt der Pin ständig auf High. Mit DCF-Modul liegt er ständig auf Low.

Es liegt aber kein Kuzschluss nach GND vor und irgendwie (wie genau?) 
ist es gelungen, das DCF-Signal mit einem Logic Analyzer sichtbar zu 
machen.

Diese Aussagen stehen im Widerspruch zueinander, also bitte nochmal von 
vorne anfangen:

1) Betreibe das DCF-77 Modul ohne Mikrocontroller. Prüfe dessen Ausgang 
mit dem Logic Analyster. Kommt das Signal heraus?

2) Messe den Pegel am Eingang des Mikrocontroller mit ein Multimeter, 
während das DCF-Modu noch nicht angeschlossen ist. Ist es High?

3) Schließe einen Widerstand mit 1...5kΩ an den Eingang des 
Mikrocontrollers und an GDN an. Welche Spannung misst du dann?

4) Mache am Mikrocontroller einen Dauer-Reset, so dass dessen Eingang 
permanent hochohmig ist. Zeigt der Logic-Analyzer nun immer noch das DCF 
Signal erfolgreich an?

5) Jetzt danach macht es Sinn, das Verhalten deines Programms zu 
überprüfen. Nimm das Reset Signal weg, so dass dein Programm startet. 
Zeigt der Logic-Analyzer nun immer noch das DCF Signal erfolgreich an?

6) Erkennt dein Programm das DCF-Signal?

: Bearbeitet durch User
von Alex D. (allu)


Bewertung
1 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> 1) Betreibe das DCF-77 Modul ohne Mikrocontroller. Prüfe dessen Ausgang
> mit dem Logic Analyster. Kommt das Signal heraus?

Sehr guter Vorschlag von Stefan zur Einkreisung des Problems.

Zur ständigen Anzeige der Qualität des DCF-Signals ist m.E. eine LED die 
während der 100/200 msec Pausen aufleuchtet geeignet. Das DCF-Signal ist 
so langsam, das alles gut zu erkennen ist. Man kann sogar die einzelnen 
Bits mitschreiben und dann auf dem Papier in Datum und Uhrzeit umsetzen. 
Ist das nicht machbar, hat auch ein Auswerteprogramm kaum eine Chance.
Die LED muss über eine, wie auch immer aufgebaute Schaltung, sehr 
hochohmig (> 1MOhm) an das Modul angeschlossen werden.

von Alex D. (allu)


Bewertung
0 lesenswert
nicht lesenswert
Der To hat wohl aufgegeben. Kein gutes Zeichen. Jeder der sich für DCF 
interessiert hat, sollte einmal im Leben ein DCF-Auswerteprogramm 
geschrieben haben.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alex D. schrieb:

> Der To hat wohl aufgegeben. Kein gutes Zeichen. Jeder der sich für DCF
> interessiert hat, sollte einmal im Leben ein DCF-Auswerteprogramm
> geschrieben haben.

Das war doch garnicht das Problem des TO. Dessen Problem war, dass er 
erst garnix sieht, was man auswerten könnte. In dieser Situation würde 
auch mein eigener, hochentwickelter DCF77-Decoder einfach nur eins tun: 
ganz jämmerlich aufgeben.

Was sollte er deiner Meinung nach auch sonst tun? Und inwiefern könnte 
die Kenntnis des DCF77-Protokolls irgendwas daran ändern, dass man rein 
garnix sieht, was auch nur entfernt danach ausschaut? Von einem 
konstanten Pegel kann man das wohl annehmen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.