PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Terminalemulator bleibt dunkel...



display
06.09.2015, 12:47
Hallo Gemeinde
Mit grosser Begeisterung habe ich vor einigen Wochen mein neues "RN-Control-Board" in Betrieb genommen.
Die ersten Übungen mit den obligaten LED- und Sound-Beispielen konnte ich (auch Dank guten Typs aus diesem Forum) erfolgreich durchführen.

Leider gelingt es mir jedoch nicht, Daten (z.B. Texte) vom RN-Control auf den PC-Bildschim zu schicken. Der Terminalemulator im AVR-Programm bleibt dunkel.
Ich arbeite mit:
- RN-Control V 1.4, ATMega32
- Quarz 16 MHz
- AVR Basom Compiler
- ISP Dongle als Verbindung zum Druckerport am PC (Original Robotikhardware)
- RS232-Kabel ist mit dem COM-Anschluss am PC verbunden
- Die Baudraten sind auf 9600 Baud eingestellt (Habe auch schon mit anderen Baudraten probiert)
- PC mit Win XP
- Alle "Fuse-Bits" Einstellungen habe ich unverändert übernommen

Ich habe in diversen Foren auch schon gelesen, dass das Problem bekannt ist. Diverse Tips und Lösungsansätze habe ich auch schon ausprobiert.
- Com-Port kontrolliert und Treiber neu installiert
- RS232-Kabel ausgewechselt, kontrolliert, umgesteckt etc.

Wo habe ich möglicherweise bei der Installation Fehler gemacht?
Für Typs bin ich sehr dankbar.
MfG
Fritz

ranke
06.09.2015, 14:00
Gerne wird vergessen, dass der MC per default auf 1 MHz (interner RC-Oszillator) läuft, wenn man die Fuses nicht entsprechend setzt hilft da auch der 16 MHz Quarz nichts.

display
06.09.2015, 22:53
Dass ich die Fuses nicht verändert habe stimmt leider nicht ganz....! sorry
Ich habe gleich am Anfang in den Fusebit-Einstellungen - als einzige Änderung - die "Fusebit KLA987" gemäss den Angaben im RN-Control Manual auf "111111:Ext. Crystal" umgestellt.
Interessant ist übrigens auch, dass im Simulator-Mode des Basic Compilers die Print-Befehle nicht angezeigt werden.
Könnte da ev. die Ursache sein, dass via RS232 gar keine Daten zum PC gelangen?

fredred1
07.09.2015, 12:21
Hallo Fritz,

Wenn Terminalemulator im AVR- Programm dunkel bleibt, nimm als erstes mal ein externen Terminalemulator. Ich lege mal einen bewährten in Anhang. Dann sehen wir weiter wenn keine Zeichen ankommen.
Wichtig ist nur die COM- Portauswahl im Terminal muss stimmen. Wird Mist angezeigt dann liegt es an der Baudrate. Kommen auch keine Zeichen müssen wir die Fuses Einstellungen abgleichen und erst dann prüfen wir ob es ein Fehler in der Hardware ist.

Mit freundlichen Grüßen
Fred

display
07.09.2015, 21:58
Hallo Fred
Besten Dank für die schnelle Antwort und das angefügte Terminalprogramm.
Die Hoffnung war gross, dass ich mit deinem Terminalprogramm endlich einen Schritt weiterkomme....
Leider bleibt der Bildschirm weiterhin dunkel!

Bei weiteren Tests habe ich heute festgestellt, dass das Bascom-interne "Simulations-Modul" immer dann stoppt, sobald es auf einen Wait- oder Sound-Befehl trifft.
Das sehr einfache Programm stoppt also nach dem ersten Print Befehl.
Print "Hello World"
Wait 1
Print "Hello Schweiz"
End

Könnte das ev. auf falsche Fusebit Einstellungen hinweisen?
Im Anhang findest du meine Fusebit-Einstellungen.

Mit den KO kann ich ürigens am RS232-Ausgang des RN-Control feststellen, dass dort ein Signal gesendet wird.
Was das für Daten sind, sehe ich natürlich nicht. Im Terminalprogramm sollten somit doch mind. "wilde Zeichen" erscheinen....
MfG
Fritz
30681

fredred
08.09.2015, 10:57
Hallo Fritz,

wenn Du am RS232-Ausgang Signale hast sollte die Fusebit Einstellung OK sein.

Oft liegt der Fehler beim COM- Kabel. Ein Nullmodemkabel funktioniert nicht TX/RX sind zum PC gedreht.
Also prüfen ob es wirklich ein 1:1 Kabel ist.

Hast du nur ein kleines Testprogramm dann sende es bitte komplett. Die Header Einstellungen sind für unsereins wichtig zu sehen, wie bestimmte Register eingestellt sind.

Beispiel für Test:
$regfile = "m32def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency
$baud = 9600 ' use baud rate 9600
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 32 ' default use 32 for the SW stack
$framesize = 40

‚Schleife alle 2 Sekunden neu senden.
Do
Print
Print "erstallt am : " ; Version(1)
Print "Version Code : " ; Version(3)
Print
Wait 2
Loop
End

Mit $baud =9600 reservierst Du die Pins PD0 und PD1 als Uart mit 9600 legst Du die Rate fest die auch so im Terminal eingestellt werden muss usw.

PS. bin auch fredlich1
Gruß
Fred

display
08.09.2015, 11:41
Hallo Fred
Deine Hilfe ist grossartig. Vielen Dank
Leider ist mein persönliches Timing für dieses Thema schlecht gewählt!
Wir verreisen heute für 2 Wochen in die Ferien.
Ich bin zwar während dieser Zeit via dieses Forum jederzeit erreichbar, aber Tests am RN-Control kann ich dort leider nicht machen

Sehr gerne würde ich danach nochmals auf dich zukommen (ab 23.09.15)

Das RS232-Kabel habe ich schon mehrmals kontrolliert. Es ist OK!

Nochfolgend findest du das komplette (sehre einfache) Listing womit ich meine Tests ausführe.

Nochmals herzlichen Dank für deine Unterstützung
LG Fritz

'************************************************* ******************************
'Hello Schweiz
'03.07.2015
'************************************************* ******************************
$regfile = "m32def.dat" 'Controllertyp
$hwstack = 32 'Hardware-Stack
$swstack = 32 'Software-Stack
$framesize = 32 'Frame
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'Baudrate für RS232
'************************************************* ******************************
'-----Deklarationen-----
Config Portd.7 = Output
'************************************************* ******************************
'-----Programm-----
Do
Sound Portd.7 , 262 , 2548
Print "Hello World"
Wait 1
Print "Hello Schweiz"
Sound Portd.7 , 523 , 1274
Wait 2
Loop
End

fredred
08.09.2015, 12:10
Hallo Fritz,

wünsche geruhsame Urlaubstage. Schalte ab und entspann dich. Bin mir sicher das wir den Fehler finden werden.

Mit freundlichen Grüßen
Fred

fredred
10.09.2015, 15:29
Hallo Fritz,
Prüfen ob COM am PC IO ist wenn nicht 100% sicher das die Schnittstelle mit anderen Gerät schon funktioniert hat.
Ob COM am PC Okay ist, siehst du ja in der Systemsteuerung unter Geräte- Manager welcher Kommunikationsanschluss freigegeben ist.
In deinem Fall sollte es COM1 sein.
Noch ein Tipp: Kannst auch bei Start Ausführen "cmd" in das Suchfeld eingeben nun bist du ins „Eingemachte“. Schreib nun "net start" und bestätigen mit der Eingabe-Taste, um zu sehen, welche Ports geöffnet sind. Dort siehst du auch ob COM+- Ereignissystem/ Terminaldienste aktiv ist. Aber bitte nur anschauen nicht editieren, währ ja ein Eingriff ins Betriebssystem.
Wenn JA sind wir uns erst mal sicher am Empfang liegt es nicht. Nun machen wir weiter mit RN- Control.
1. Messe den Durchgang im spannungsfreien Zustand von RS232 IC Pin mit COM Kabel am Board zur Sub- Buchse für PC durch. RX,TX und GND. Ist hier auch alles Okay dann
2. COM- Kabel entfernen Board Spannung geben und am RS232 IC den Spannungshub an Pin2 und Pin6 messen. Sollte für COM- Pegel(V24) min 9Volt sein.
Im Anhang Schema für Prüfung.
Hab so ein RN- Control Board noch nie in den Händen gehabt, sollen aber sehr gut sein. Der größte Vorteil des Board ist, die IC’s sind gesockelt.
Bin immer noch der Meinung es ist ein Anschluss- Kommunikationsfehler.
Mit freundlichen Grüßen
Fred

fredred
13.09.2015, 12:00
Hallo Fritz,

Da ich nun weiß (durch PN), du benötigst nur Hilfe für MC- Sicherungseinstellungen(Fuse Bits), wird wohl doch hier dein Problem liegen da Hardware sorgfältig geprüft wurde.
Hatte nicht genau deine Fuses- Einstellungen angeschaut, da du ja am RS232 Signale gemessen hast, nahm ich an MC und RS232 kommunizieren. Mein Denkfehler in #6. Waren wohl nur TTL- Pegel.
Nun stelle bitte mal das Fusebit B auf enabled (BODEN = 0)

Kannst dich nach deinem Urlaub im Forum melden, ob deine 1.Vermuhdung der Fehler war.

Gruß
Fred

display
27.09.2015, 11:07
Hallo Fred
Nach meinen Ferien habe ich deine Typs befolgt und die ganze Schaltung nochmals durchgecheckt.
Es war gestern nach Mitternacht, als ich das erste Mal klare Daten vom MC auf dem Terminal lesen konnte!
Lieber Fred, dank dir hat sich bei mir ein grosses Problem gelöst. Ganz herzlichen Dank!

Es waren deine Typs im Mail vom 10.09.15 die mir das richtige Vorgehen aufgezeigt haben!!!
Du hast mich darin ermuntert, das Problem "fachmännisch" anzugehen!

Dabei habe ich 2 Einstellungen angepasst:
a) Es ist mir aufgefallen, dass der Serielle Ausgang am PC im Ruhezustand 0V anzeigte.
Du hast mir gesagt, dass dort -9V anliegen sollen.
Ich habe dann im Geräte-Manager den Treiber aktualisiert.
b) Bei den Fusebit habe ich das Fusebit B auf enabled (Boden= 0) umgestellt.

Nach diesen beiden Anpassungen hat mein Terminal endlich tadellos funktioniert.
Jetzt kann ich meine Experimente mit dem RN-Control weiterführen.
Vielleicht gelingt es mir sogar später einmal, mein Projekt "Knickarm-Roboter" zum Laufen zu bringen...?
Fritz

fredred
27.09.2015, 16:48
Hallo Fritz,

freut mich das dein Problem gelöst ist. War ja wirklich ein dummer Fehler, und mir bis dahin unbekannt.
Viel Spaß und erfolgreiche Projekte mit AVR – Hardware und BASCOM.
Nachträglich noch ein Tipp. Da nun Terminalanzeige okay ist, sollest du die Zeilen immer oben einfügen.

Print "erstallt am : " ; Version(1)
Print "Version Code : " ; Version(3)

Wie für Test vermittelt.(Version() ist eine geschützte Variable in BASCOM. Einen kleinen erfolgreichen Code den du erstellt hast, soll dann als [bas] mit Namen gespeichert werden. So siehst du beim geöffnetem Terminal und nach Start(Reset) die aktuelle Programmierung. Ist sehr hilfreich wenn viele „Code- Schnipsel“ erstellt wurden, die später mit Editor als Gesamtheit, als Entprojekt zusammen gefügt werden können.
Hab ein Programm gebastelt der den Binärcode von MC rücklesen kann.
Werde ich aber nicht veröffentlichen.
Wist wohl früher oder später den Mega32 durch Mega 644P ersetzen. Dieser MC ist mein Favorit.
Warum vermittele ich mit PN wenn gewünscht.

Danke für Dank
Mit freundlichen Grüßen
Fred