PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DCF77 Config ergibt immer HIGH-PEGEL am INPUT-PIN ??



tc-maxx
31.12.2008, 16:57
Hallo,

ich habe ein kleines Problem mit BASCOM.

Ich möchte meinen Conrad DCF77 Empfänger zum laufen bringen.

Sobald ich folgendes mache:

Config Dcf77 = Pind.5 , Timer = 1 , Timer1sec = 1 , Debug = 1

bekommt der PinD.5 High Pegel.

Egal welchen Pin ich nehme, nach dem Konfigurieren hat der entsprechende PIN dann immer High-Pegel.

Wenn der PIN High ist wird mein Signal vom DCF Empfänger überlagert.

Weiß jemand Abhilfe?
Danke

Gruß
MaXX

! GUTEN RUTSCH !

AUnruh
01.01.2009, 12:45
Moin und ein frohes neues Jahr.

Folgende Konfig funzt bei mir auf einem M32 wunderbar:


Config Dcf77 = Pind.6 , Timer = 1 , Timer1sec = 0 , Debug = 0 , Inverted = 1 , _
Check = 1 , Update = 0

Enable Interrupts

Viel Erfolg.

Gruss // André[/code]

Dirk
01.01.2009, 13:16
Hallo tc-maxx,

Sobald ich folgendes mache:
Config Dcf77 = Pind.5 , Timer = 1 , Timer1sec = 1 , Debug = 1
bekommt der PinD.5 High Pegel.
Nach dem Config-Befehl wird Pind.5 von Bascom als Eingang geschaltet. Das muss ja auch so sein, damit die Impulse vom DCF-Empfänger gelesen werden können.

Wenn du da an Pind.5 ein Multimeter hälst, zeigt das u.U. "Highpegel", weil ein Pin, der als Eingang geschaltet ist, hochohmig wird.

Also: Es macht keinen Sinn, den Pegel an einem Eingang zu messen.

Wenn der PIN High ist wird mein Signal vom DCF Empfänger überlagert.
Das stimmt also dann nicht. Da wird garnichts überlagert. Wenn es nicht klappt, liegt es an etwas anderem.

Gruß Dirk

tc-maxx
02.01.2009, 13:34
Danke für eure Antworten!

Komischerweise hat der Empfänger vor ein paar Tagen schon mal am AVR funktioniert?!

Da hatte ich auch das DCF-Signal mit dem Oszi visualisiert.
Das Signal konnte sauber dargestellt werden.

Wenn ich allerdings jetzt das Oszi an den PortPin hänge (an dem der Empfänger angeschlossen ist) habe ich einen dauer High-Pegel von 4,5V... sobald der High-Pegel vom DCF Empfäger kommt geht der Pegel auf 5V hoch.

eventl. etwas kaputt gegangen?


Gruß
MaXX

Dirk
02.01.2009, 20:45
Wenn ich allerdings jetzt das Oszi an den PortPin hänge (an dem der Empfänger angeschlossen ist) habe ich einen dauer High-Pegel von 4,5V
Wenn das Oszi am Empfängerausgang (ohne Anschluß an den Portpin!) ein vernünftiges Signal zeigt, ist zumindest der Empfänger ok.
Den Portpin (als Eingang geschaltet) selbst kannst du ja z.B. mit einem Taster testen: Wird high und low Pegel erkannt?

Gruß Dirk

tc-maxx
03.01.2009, 00:31
Wenn das Oszi am Empfängerausgang (ohne Anschluß an den Portpin!) ein vernünftiges Signal zeigt, ist zumindest der Empfänger ok.

Ja das Signal nur am Empfänger sieht gut aus!



Den Portpin (als Eingang geschaltet) selbst kannst du ja z.B. mit einem Taster testen: Wird high und low Pegel erkannt?

Ja High/Low wird erkannt. Ich denke mal daß mein DCF-Empfänger hinüber ist.

Das DCF-Signal zieht den Pegel am AVR-PortPin nicht zu LOW runter. (bleibt im undef. Bereich) Quasi so als ob zum 'Low-Pegelzeitpunkt' der Portpin unbeschaltet ist??!!

Ich habe schon mal versucht den PortPin mit einen 10K dauerhaft auf Low zu ziehen aber da kommt das High nicht mehr durch.. ich versuche es mal mit 100K..

Dirk
03.01.2009, 12:39
Hallo tc-maxx,

Das DCF-Signal zieht den Pegel am AVR-PortPin nicht zu LOW runter. (bleibt im undef. Bereich) Quasi so als ob zum 'Low-Pegelzeitpunkt' der Portpin unbeschaltet ist??!!
Hm, da kann ich mir nicht so richtig einen Reim drauf machen.
Wenn die Verbindung Empfänger - uC stimmt (bes. auch GND durchverbunden!), könnte evtl. ein Treibertransistor auf dem DCF-Empfänger defekt sein. Die haben nämlich keinen Kollektor-Widerstand, so dass sie bei externer Verbindung mit VCC hinüber sind.
Allerdings ist dann auch nur DER Transistor defekt, von dem du den Ausgang benutzt hast (invertiert oder nicht invertiert).
Das heißt, du müßtest den jeweils anderen Ausgang des Conrad-Empfängers noch nutzen können. Wenn du unbedingt die Signalumkehrung brauchst, hängst du einfach einen Transistor dahinter.

Der Empfänger läßt sich sogar reparieren, wenn nur ein Ausgangstransistor defekt ist und du SMD löten kannst. Lad dir doch von Conrad den Schaltplan herunter: Kaputt ist entweder T1 oder T3 (BC848C).

Gruß Dirk

jojo3
03.01.2009, 14:21
Hallo, ich hatte mit dem Modul vom Conrad mal ein ähnliches Problem.
Bei mit war der interne PUll-Up des AVR zu nieder-Ohmig.
Ich hab dann den internen Pull-up ausgeschaltet und so ca. 10kOhm
extern hingehängt.
Bei mir hat es dann funktioniert.

Dirk
03.01.2009, 15:11
Bei mit war der interne PUll-Up des AVR zu nieder-Ohmig.
Ich hab dann den internen Pull-up ausgeschaltet und so ca. 10kOhm
extern hingehängt.
Der Pullup des AVR hat einen deutlich HÖHEREN Widerstand als 10 kOhm.
Für den M32 z.B. 20..50 kOhm.

Gruß Dirk

tc-maxx
03.01.2009, 16:04
Hallo,

danke für eure Antworten!

Ich habe jetzt einen OPV dazwischen. Jetzt funktioniert alles wunderbar!

Es dauert aber recht lang bis die richtige Uhrzeit angezeigt wird.

Ich hatte auch versucht den internen PullUp auszuschalten, doch wenn der Portpin als DCF77 konfiguriert ist bleibt der PullUp trotzdem drin.

Gruß
MaXX

Dirk
03.01.2009, 16:32
Ich habe jetzt einen OPV dazwischen. Jetzt funktioniert alles wunderbar!
Super. Glückwunsch.

Eigentlich ist aber ein OPV bei diesem Empfänger nicht nötig. Ein Pullup (intern oder extern egal) ist aber schon nötig, weil der Empfänger Open-Kollektor ist.

Aber egal: Der Erfolg zählt. O:)

Gruß Dirk

tc-maxx
03.01.2009, 18:55
Danke :)

Aber alles viel Aufwand um eigentlich nichts:

Mein erster Code sah so aus:


'------------[DCF77 Config]-----------------------------------------------------
Config Dcf77 = Pind.6 , Timer = 1 , Update = 0 , Updatetime = 1 , Debug = 0 , Inverted = 0 , Check = 1 , Gosub = Sectic
Enable Interrupts
'================================================= ==============================
Ddrd = &B00000000 'Definition Port D ( 1 = ausgang; 0= eingang)
Portd = &B00000000 'Definition Pins an Port D ( 0= low level; 1= high level)


dieser hatte funktioniert mit direktem Anschluß des DCF77 Empfängers an den PortPin.

der zweite nicht funktionierende Code:


'================================================= ==============================
Ddrd = &B00000000 'Definition Port D ( 1 = ausgang; 0= eingang)
Portd = &B00000000 'Definition Pins an Port D ( 0= low level; 1= high level)

'------------[DCF77 Config]-----------------------------------------------------
Config Dcf77 = Pind.6 , Timer = 1 , Update = 0 , Updatetime = 1 , Debug = 0 , Inverted = 0 , Check = 1 , Gosub = Sectic
Enable Interrupts
'================================================= ==============================


Also die Definition der PortPins und der PullUPs muß nach der Konfiguration des DCF77 passieren!

Das wars es schon..

Naja.. ...wieder etwas dazu gelernt :)

Gruß
MaXX