Hallo Dominik,
ich schätze es liegt an DCF-RS1 "GND nicht verbunden" mit RN-Control GND oder an "Baudrate falsch eingestellt an RN-Control". Klassische Fehler.
Viele Grüße
Jörg
Hallo Zusammen,
ich habe den DCF-RS232 Wandler DCF-RS1 von Robotikhardware an meine RnControll angeschloßen.
Am DCF-RS1 hängt ein DFC Empfänger von ELV.
Der Empfänger gibt die Impulse weiter an den DCF-RS1. Die Impulse stimmen soweit, die hab ich mim Oszi geprüft.
Nach ein paar Minuten geht die LED am DCF-RS1 an und er hat das Signal erkannt und verarbeitet.
Ich habe jetzt meine RNControll über einen Leiter an Pin7 des DCF-RS1 angeschloßen und das Beispielprogramm von der Robotikhardware CD über Bascom AVR auf dem Mega32 der RnControll geflasht.
Am anfang kommt immer das die Uhrzeit nicht verifiziert werden konnte, was soweit ok ist.
Sobald die LED leuchtet und der DCF-RS1 bereit ist fragt der Mega32 per RS232 an und bekommt werte.
Diese stimmen hinten und vorne nicht! Die Werte ändern sich auch nicht. Woran kann sowas liegen?
Ich hab das Beispielprogramm von der beiligenden CD genommen, welches auch in Handbuch steht.
Meine Bascom Version ist schon älter, kann es daran liegen?
Hier ein Link zu dem IC: http://www.shop.robotikhardware.de/s...roducts_id=277
Gruß Dominik
Hallo Dominik,
ich schätze es liegt an DCF-RS1 "GND nicht verbunden" mit RN-Control GND oder an "Baudrate falsch eingestellt an RN-Control". Klassische Fehler.
Viele Grüße
Jörg
Abend Jörg,
vielen Dank für deine Antwort
Das mit der Baud werde ich gleich mal schauen.
GND ist verbunden. Ich greife die 5V für das IC und den empfänger von der RnControll ab, also daran kann es nicht liegen.
Am anfang vom Code steht:
Ist das richtig? Müsste nicht normal das 2te baud wegfallen?$baud = 9600 'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9600
Ansonsten hab ich folgende Zeile:
Die besagt doch das die Baud 2400 ist.Open "comd.5:2400,8,n,1" For input As #1
Inputbin #1,bstart,uhr_tag,uhr_monat,uhr_jahr,uhr_std,
uhr_min,uhr_sek,uhr_wochentag,uhr_sommerzeit,uhr_z eitumschaltung,uhr_sync,bende
Close #1
Gruß Dominik
Also ich hab die Zeile "Baud 9600" aus dem code genommen, da sie nicht notwendig ist.
Die Baud von 2400 für das IC sollte ja auch stimmen (steht auch so in der Anleitung).
Ich bin am verzweifeln
Würde Euch vieleicht Weiterhelfen was genau ich im terminal empfange?
Gruß Dominik
Hi Dominik,
hast du auch den Pullup-Widerstand R2 vorgesehen (Datenblatt des DCF-RS1 Schaltplan S.4) und einen 100nF an VCC?
Es schadet auch nicht, einen kleineren Elko (10µF) an VCC parallel zum 100nF einzubauen.
Was du dann noch probieren kannst:
- Abstand von Störquellen (RN-Control, PC, Handy, Elektrokabel ...) vergrößern, Antenne nach Frankfurt ausrichten, Antenne an ein Fenster in Richtung Frankfurt stellen, Pullup-Widerstand 10kOhm an Pin 3 des DCF-RS1 einbauen ...
Gruß
Dirk
Hi Dirk,
vielen lieben Dank für die Tipps. Ich habe mich die letzen Tage nochmal mit dem Probelm befasst, aber keine Lösung gefunden. Ich bin da echt am verzweifeln.
Ich habe den 27kOhm Widerstand wie er im Schaltplan ist eingebaut. Zusätzlich habe ich jetzt einen 100nF Kondensator und einen 20yF Elko direkt am IC zwischen GND und VCC.
Das IC ist auf einer Steckplatine und die Rn-Controll ist davon 30cm entfernt. Einen Pullup von 10k habe ich auch mal in die Leitung mit reingemacht, keine Verbesserung.
Die LED am IC leuchtet und ich kann mit der RN Controll auch was abfragen, bekomme aber immer nur Folgendes raus:
Heute haben wir denn 227.3.2 5:223:240 Wochentag 246
Ich komme da einfach nicht mehr weiter. Das Signal von DCF Empfänger habe ich direkt am IC mit dem Oszzi gemessen, das ist sauber und gut.
Gruß Dominik
Zeig oder verlinke mal bitte das ganze Programm das Du aktuell benutzt. Das Programm ist für RN-AVR Universal - hast Du das ggf berücksichtigt?
Erscheint diese Daten im Terminal oder auf einem Display am Board.
Kommt immer die selbe Telegramm oder ändert es sich z.B. im Bereich der Sekunde? Ist eine Prüfsumme mit dabei? Ändert sich der Wochentag aufwärts?
Welchen Mode hast Du gewählt? Stell den nochmal zum testen um, jenachdem wie er jetzt schon ist.
GND des DSF Empfängers ist auch mit der Schaltung verbunden, nicht nur GND des IC's?
Ich vermute eine Routine greift nicht richtig auf die Daten zu, oder die Daten liegen falsch vor und werden somit falsch ausgegeben.
Berichtige oder prüfe bitte die Variable "uhr_z eitumstellung" auf richtige Schreibweise.
Gibt es sonst Fehlermeldungen von Bascom? Dazu sollte natürlich die Fehlerausgabe in Bascomeinstellungen eingestellt sein.
Ansosnten muss das "Sternzeit" sein
Geändert von HeXPloreR (18.06.2014 um 16:27 Uhr)
Hallo,
ersmal hier das Programm:
-Die Daten sende ich per RN-Controll auf das Terminal in Bascom AVR auf meinem PC. Dort ändert sich auch im Bereich der Sekunden garnichts. Es kommen immer die selben Werte.Code:'############################################################## 'DCF_Decoder3.bas ' 'Das Programm liest die Uhrzeit aus dem digetalen DCF-Decoder aus 'und gibt die Zeit über RS232 aus 'Den digitalen DCF Decoder gibt es nur bei Robotikhardware.de 'Es muss lediglich PIN PD7 mit dem DOUT Pin des Chips DCF-RS1 verbunden werden 'Natürlich auch GND und VCC ' 'Wenn ein USB Modul an RN-AVR UNIVERSAL angesteckt oder eingelötet wurde 'dann wird das Ergebnis über USB zu einem virtuellen COM Port übertragen 'und kann auch mit allen Programmen oder Terminalprogramm empfangen werden ' ' (c) Frank roboternetz.de 'Bezug: www.robotikhardware.de 'Weitere Beispiele auf DVD oder im www.Roboternetz.de und rn-wissen.de '###################################################################### Declare Sub DCF_UhrzeitLesen() '$programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer) $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 64 $crystal = 8000000 'Quarzfrequenz $baud = 9600 'Baudrate (Übertragungsgeschwindigkeit) 'Baud = 9600 Config Pind.6 = Output 'LED Led1 Alias Portd.6 'Diese Variablen enthalten nach dem Abruf die Uhrzeit und Datum Informationen Dim uhr_sek As byte Dim uhr_min As byte Dim uhr_std As byte Dim uhr_tag As byte Dim uhr_monat As byte Dim uhr_jahr As byte Dim uhr_wochentag As byte Dim uhr_sommerzeit As byte Dim uhr_zeitumschaltung As byte Dim uhr_sync As byte dim bstart as byte 'Enthaelt Byte Zeilenanfang immer 126 dim bende as byte 'Enthaelt Byte Zeilenanfang immer 127 dim zeitgueltig as byte zeitgueltig=0 wait 1 Do DCF_UhrzeitLesen if zeitgueltig=1 then Print "Heute haben wir den: "; uhr_tag;".";uhr_monat;".";uhr_jahr;" ";uhr_std;":"; uhr_min;":";uhr_sek;" Wochentag:";uhr_wochentag if uhr_sommerzeit=1 then print "Es gilt Sommerzeit!" print "Die Uhr wurde von "; uhr_sync; " Minuten per Funk verglichen" print endif Wait 3 toggle led1 Loop 'Hilfsfunktion 'Diese Funktion ruft der Zeit im binären Modus ab 'und uerbergibt diese den globalen Uhr Variablen Sub DCF_UhrzeitLesen() Config Pind.5 = Input if Pind.5 =1 then 'DCF Uhrzeit bereits vorhanden? 'Kurz auf GND setzen um DCF Decoderzeit ausgeben zu lassen Config PORTD.5 = output PORTD.5=0 waitus 1 Config Pind.5 = Input Open "comd.5:2400,8,n,1" For input As #1 Inputbin #1,bstart,uhr_tag,uhr_monat,uhr_jahr,uhr_std, uhr_min,uhr_sek,uhr_wochentag,uhr_sommerzeit,uhr_zeitumschaltung,uhr_sync,bende Close #1 Config Pind.5 = Input uhr_tag=uhr_tag-65 uhr_monat =uhr_monat-65 uhr_jahr =uhr_jahr-65 uhr_std=uhr_std-65 uhr_min =uhr_min-65 uhr_sek =uhr_sek-65 uhr_wochentag = uhr_wochentag-65 uhr_sommerzeit=uhr_sommerzeit-65 uhr_zeitumschaltung=uhr_zeitumschaltung-65 uhr_sync=uhr_sync-65 zeitgueltig=1 else Print "Zeit noch nicht verifiziert!" zeitgueltig=0 endif end sub
- Einen Mode am IC habe ich nicht gewählt - Also Pin 1 nicht beschaltet = als Text ausgeben, wobei ich die Anleitung so verstanden habe das der Mode Pin nur für Pin 5 ist, der 1mal die Minute die Daten per RS232 aussendet.
Ich habe jedoch Pin 7 "DOUT" Mit der RN Controll verbunden um die Daten geziehlt im Birärcode abzugragen.
- GND ist mit dem Empfäger und dem IC verbunden. Ich nutze für beides die 5V DC die an der RNControll zur verfügung stehen.
- "uhr_z eitumstellung" ist richtig geschrieben
- In Bascom kommen werden keine Fehler angezeigt. Sobald ich einen falschen Befehl zum testen in den Code reinschreibe, wird ein Fehler angzeigt = Fehlerausgabe in Bascomeinstellungen aktiviert?!
Ich hoffe wirklich das ihr mir weiterhelfen könnt. Ich kann einfach nicht verstehen, woran der Fehler noch liegen könnte
Viele Grüße
Dominik
Hallo,
naja bleibt ja nicht mehr viel übrig was man aus der Ferne abfragen kann: Die RN-Controll läuft sicher mit 8Mhz?
Was mir beim Code und Beschreibung lesen aufgefallen ist, das in der Info von Port D7 gesprochen wird, im Code selbst aber nur Port D5 als input umgeschaltet wird - von D7 keine Spur mehr?
Also prüfe nochmal Deinen Aufbau diesbezüglich.
Schreibe in die Sub direkt unter den Aufruf: Sub DCF_UhrzeitLesen() mal ein Print "Sub DCF" ...um zu sehen ob die Sub überhaupt angesprungen wird.
Ich fühle das irgendwo da der Fehler sein muss
Viele Grüße
Jörg
Geändert von HeXPloreR (19.06.2014 um 20:35 Uhr)
Hi,
ja die RnControll läuft mit nem 8Mhz Quarz. Ich habe es auch mal mit nem 16Mhz Quarz getestet, das brachte keine besserung.
Pin D7 ist an der RNControll mit dem PizzoSummer belegt, daher nutze ich D5.
Das SUB wird auch aufgerufen, ich habe mal nen Print befehl reingemacht und der erscheint auch im terminal.
Wenn das IC noch keine Zeit hat, kommt im Terminal die Meldung das die Zeit noch nicht verifiziert ist, allso soweit ok.
Das Problem ist dass sobald die zeit "erkannt" wurde nur müll rauskommt.
Ich glaube langsam das IC von Robotikhardware, bzw. der Attiny (ist gar kein IC sondern ein Attiny) ist defekt!
Der TX Pin der 1x pro Minute die Zeit aussenden sollte ist permanent auf +5V (habs an nem Osszi beobachtet).
Wenn ich denn Pin an meinen Max232 anschließe und das Terminal am PC passend einstelle kommt auch nichts an
Langsam verliere ich die Lust. Das ist jetzt mein 3ter DCF Empfänger, 2 von Conrad wurden defekt geliefert und jetzt ist das blöde IC von Robotikhardware hin. Den Conde gibts nicht zufällig irgendwo hier im Forum?
Gruß Dominik
Lesezeichen