Archiv verlassen und diese Seite im Standarddesign anzeigen : Uart -> Com Datenübertragung
johannes_b
21.01.2011, 16:04
Hallo,
ich möchte mit dem RP6 über Uart z.B. Zahlen oder einen ASCII-Code and einen Com-Port weitergeben. Ich hab mir gedacht, wenn ich einfach jeweils TXD mit TXD, RXD mit RXD, und GND mit GND verbinde müsste das klappen. Hat es aber nicht.
Das Programm am Computer funktioniert. Ich habe da sowas wie einen kleinen Chat geschrieben zum testen. Hab mal am COM-Port TXT mit RXD verbunden. So konnte ich Daten empfange die ich sende (waren ASCII-Codes).
Auf dem RP6 habe ich das Programm, wie man es normal macht(writeChar, writeString), wenn man Daten an das Terminal schickt, geschrieben. An das Terminal per USB ging das auch.
Hier mal die Portbelegung, wie ich denke, dass sie stimmt.
UART (GND:9, TXD:3,RXD:2)
COM (GND:5, TXD:3, RXD:2)
Schätzungsweise müsste der COM-Port 2,5V haben. Messen konnte ich es nicht, da mein Messgerät defekt ist.
Ihr werdet wahrscheinlich sofort wissen, was ich falsch gemacht habe. Bin halt eher der Programmierer als der Elektroniker.
MfG
Johannes
Besserwessi
21.01.2011, 17:04
Die RS232 Schnittstelle braucht andere Pegel. Dafür gibt es Treiber ICs wie max232 für die Umsetzung der Pegel. Für ein High Signal vom µC sollten das -3 bis - 12 V sein und für ein Low vom µC +3 bis 12 V. Die allermeisten PCs kommen auch damit klar wenn das Signal nur 0 V für H und 5 V für L ist. Das signal muss dafür aber halt wenigstens Invertiert werden. Wegen der eher geringen Geschwindigkeit kann man das zur Not auch mit einem einfachen Transistor und 2 Widerständen machen.
Hallo,
der TX Pin sendet, RX empfängt.
TX an TX ist daher sogar gefährlich für die verwendeten Bauteile (einer schaltet auf high, einer auf low ==> Kurzschluss)!
Das muss über Kreuz angeschlossen werden.
Zusätzlich kommt noch das was Besserwessi gesagt hat dazu - der MEGA32 mag keine -12 bis +12V Signale an seinen 0 bis 5V Pins.
--> Lieber vorher fragen (bzw. google bemühen) nächstes mal.
MfG,
SlyD
Fabian E.
21.01.2011, 18:59
Der virtuelle Com-Port vom Interface reicht dir nicht?
Brauchst du wirklich einen Hardware COM-Port?
Auf dem Interface ist ja schließlich schon alles drauf, was du brauchst.
johannes_b
21.01.2011, 21:49
Was ist ein virtueller Com-Port?
Ich beschreib einfach mal kurz mein Problem. Ich will ein kleines Uralt-Laptop auf den RP6 draufbauen. Das hat einen RS232-Port. somit dachte ich mir, dass es für mich so am einfachsten geht.
-Naja. Der RS232 von dem Lapi hat keine 12V. Dann ist es doch eig. kein 12V Signal. S
Was ist ein virtueller Com-Port?
Ich beschreib einfach mal kurz mein Problem. Ich will ein kleines Uralt-Laptop auf den RP6 draufbauen. Das hat einen RS232-Port. somit dachte ich mir, dass es für mich so am einfachsten geht.
-Naja. Der RS232 von dem Lapi hat keine 12V. Dann ist es doch eig. kein 12V Signal. S
ALLE PC RS232 haben negative Logik das bedeutet eine 1 wird als -3...-15 V eine 0 als +3..+15 V ausgegeben. Der Bereich zwischen -3V und +3 V gilt als "Verbotener Bereich". Ein Pegelwandler ist zwingend nötig oder Dein µC lebt nicht lange! Da die PC Hersteller es nicht so genau sehen, kann die Spannung anstatt 15 V auch abweichen was dann allerdings nicht der Norm entspricht und bei höheren Baudraten zu Problemen führen (kann).
Man kann dien Negativen TXD Pegel mit einer Diode gegen GND auf -0.6 V "kappen", das hält der AVR aus und in die TXD Leitung einen 1k8 Widerstand schalten. RXD (PC) erkennt auch 0 und 5 V.
Bleibt noch die Negative Logik. Bei Bascom kann man das bei config einstellen. Ansonsten muss man jedes empfangene Byte mit XOR 0xff
"bearbeiten" das invertiert das ganze. :-)
Gruß Richard
johannes_b
26.01.2011, 18:38
Also,
ich hab jetzt mal ein bisschen gesurft. Ich denke ich werde es nun mal mit einem max232 ausprobieren. Bloß hab ich keine Ahnung, wie ich was mieinander verbinden muss. Steht das dann im Datenblatt, oder habt ihr dafür einen Schaltpan?
Hauptsache ich kann am Ende Daten senden und empfangen.
Edit: Sorry für den Doppel-post. Wollte ich nicht. Kann den hier jemand löschen?
johannes_b
26.01.2011, 18:39
Also,
ich hab jetzt mal ein bisschen gesurft. Ich denke ich werde es nun mal mit einem max232 ausprobieren. Bloß hab ich keine Ahnung, wie ich was mieinander verbinden muss. Steht das dann im Datenblatt, oder habt ihr dafür einen Schaltpan?
Hauptsache ich kann am Ende Daten senden und empfangen.
http://www.conrad.de/ce/de/product/152281/IC-MAX232N-TID/SHOP_AREA_17312&promotionareaSearchDetail=005
wäre dies ein passender max232? passender max232?
Du kannst das auch als Bausatz oder fertig kriegen, z.B. bei Pollin, Bestellnummer 810 036.
Gruß Dirk
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.