PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6v2 USB RS232 Wandler-/Adapter-Platine



Dirk
02.09.2012, 18:35
Hallo Leute,

hier: http://www.rn-wissen.de/index.php/RP...-RS232-Adapter (http://www.rn-wissen.de/index.php/RP6v2_USB-RS232-Adapter)

...entsteht im RN-Wissen gerade wieder ein kleines Hardware-Projekt für den RP6(v2).

Auf einer RP6-Experimentierplatine wird ein RS232-TTL-Wandler und ein USB-UART-Umsetzer aufgebaut.

Als USB-UART-Umsetzer dient der UM2102 von ELV, eine sehr kompakte und günstige Platine mit dem CP2102-Chip.
Von Pollin habe ich den Bausatz RS232-TTL-Wandler eingesetzt.

Was kann man damit machen?

1. Verbindung eines beliebigen µC-UARTs mit dem PC über USB (VCP)
2. Verbindung eines beliebigen µC-UARTs mit dem PC über RS232 (serielle Schnittstelle)

Nummer 1 ist zwar auch mit dem mitgelieferten RP6 USB Interface (oder mit dem neuen RP6V2-TRANS) möglich, wenn der µC aber mehrere UARTs hat (auf der M256 WiFi gibt's schon 4!), kann man diese Platine zur Verbindung der weiteren nicht benutzten UARTs mit dem PC benutzen. Zusätzlich ist noch die RS232-Pegelanpassung vorhanden, um den µC mit der RS232-Schnittstelle eines PCs zu verbinden.

Im RP6-System erfolgt die UART-Verbindung (RX, TX, RTS) entweder über den USRBUS oder über einen 10-poligen Wannenstecker mit dem PROG_UART Stecker der RP6v2Base, M32, M128 oder M256 WiFi. Die Signale können aber auch beliebig über Stiftleisten abgegriffen und auf eine der RP6-Plattformen geführt werden.

Viel Spaß!

Filou89
03.09.2012, 08:48
Hallo Dirk,
Ich möchte die Schaltung ohne RS323 Teil bauen. ich habe dazu einach all die Verbindungen die nur dort verwendet werden heruasgestrichen.
Jetzt bleiben aber noch zwei Fragen: Wozu ist der UART_TTL Anschluss notwändig? Er gibt dieselben daten aus, wie das RS323 / UM2102 Modul aus und wird zum Testen verwendet, richtig?
Wieso sind die Jumper 8-10 normalerweise geöffnet? So ist doch gar keine Verbindung vorhanden.
Grüsse
Filou

Dirk
03.09.2012, 20:59
Hallo Filou,

... ich habe dazu einach all die Verbindungen die nur dort verwendet werden heruasgestrichen.
Ja, wenn du RS232 nicht brauchst, kannst du auf JP1..JP5 und alle Verbindungen der RS232-Platine verzichten.


Wozu ist der UART_TTL Anschluss notwändig?
Ob du ihn brauchst, hängt davon ab, mit welchem UART du den UM2102 verbinden willst.
Es gibt, wenn du alle Platinen (RP6Base, M32, M128 und M256 WiFi) hast, insgesamt 8 UARTs: Je einen auf der Base und M32, zwei auf der M128 und vier auf der M256.
Davon liegen 4 (Base, M32, M128: UART0, M256: UART0) an dem PROG_UART Stecker der Platinen. Deshalb macht der UART_TTL Stecker Sinn, wenn man diese Adapterplatine für einen dieser 4 UARTs nutzen will.
Was bleibt sind die UARTs 1 der M128 und 1..3 der M256. Bei der M256 ist UART3 der WLAN-UART,- also bleiben noch UART 1 und 2 zur freien Verfügung. Für diese drei UARTs, die nicht an einem PROG_UART Stecker liegen, könnte man z.B. den USRBUS verwenden.


Wieso sind die Jumper 8-10 normalerweise geöffnet? So ist doch gar keine Verbindung vorhanden.
Da sind wir schon beim USRBUS. Der kann ja frei belegt werden. Da es da keine feste Zuordnung der USRBUS-Pins gibt, habe ich JP8..10 eingebaut: Dann kann man den USRBUS abtrennen, wenn es andere Exps gibt, die den USRBUS anders nutzen.
Wenn du den USRBUS nehmen willst, must du noch auf der Platine, deren UART du anschliessen willst, die Pins des USRBUS (Y6, Y8, Y10) mit RX, TX, RST verbinden. Dann ist das ok.

Alternativ kannst du auch eine "Freiverdrahtung" machen: Dazu ist ST3 da. Einfach hier RX, TX kontaktieren und direkt auf die M128 oder M256 führen. Bei der M256 geht's auch nicht anders, weil sie gar keinen USRBUS hat.

Filou89
14.09.2012, 09:46
Hallo Dirk,
ich habe drei Fragen:
1. Wieso wird RTS (Request to send) an RST (Reset) angeschlossen? Ist diese Verbindung wichtig?
2. Was verwendest du für einen Treiber? Ich habe den Silicon Labs CP210x USB to UART Bridge (COM3) Version 6.5.3.0 von Silabs. Jedoch erhalte ich den Fehler:

Das Gerät funktioniert nicht ordnungsgemäß, da Windows die für das Gerät erforderlichen Treiber nicht laden kann. (Code 31)
3. Hast du eine Empfehlung, mit welchem Programm sich die Daten gut auswerten / übertragen lassen?
Grüsse
Filou

Dirk
14.09.2012, 21:55
@Filou:
1. Nein, die Verbindung brauchst du normalerweise nicht.
2. Ich habe einen Treiber in dieser Zip benutzt: CP210x_VCP_Win_XP_S2K3_Vista_7.zip
3. Ich habe nur mit hTerm probiert.

Filou89
26.09.2012, 18:40
Hallo Dirk,
Mittlerweile funktioniert der Treiber, wie er soll.
Sind diese Standardeinstellungen für HTerm gut:
Baud 9600, 8Bit, 1Stop, Parity: None.
Leider erhalte ich bloss "!))))))?<1>?7<\0>?!??????)W????<1><\b>J??(???1<\b><\b>???)4!?" Was eigentlich heissen sollte:


writeString_PUSB("\n\n _______________________\n");
writeString_PUSB(" \\| RP6 ROBOT SYSTEM |/\n");
writeString_PUSB(" \\_-_-_-_-_-_-_-_-_-_/\n\n");

writeString_PUSB("Hello World from RP6 CONTROL M256 WIFI!\n");
writeString_PUSB("Let's move it! :)\n");
writeString_PUSB("This message was sent via ***Serial Port***!\n");

Ich habe nicht deine Lib kopiert, sondern bloss die bestehende kopiert und auf den UART2 umgeschrieben, will heissen aus allen 0en eine 2 gemacht und die Funktionen umbenannt.
Woran könnte das liegen?
Wenn man RX und TX nicht kreuzt würde gar nichts gehen, oder?

Danke für den Support
Filou


[EDIT]
OK, Ich habs jetzt selber rausgefunden. Try and error methode.
Die zu wählende Baudrate ist 38400!
Ich ergänze das noch im Projektbeschrieb!

Dirk
26.09.2012, 20:58
@Filou:
Danke für die Ergänzung ... Die Baudrate hatte ich vergessen!