Projekt: USB-RS232 Interface
Leider findet man an aktuellen PCs und Notebooks oft keine RS-232-Schnittstelle mehr. So lässt sich beispielsweise das auf dieser Seite vorgestellte EPROM-Programmiergerät nicht an einem
solchen Computer betreiben. Zur Lösung dieses Problems gibt es fertige Adapter, die den Anschluss von seriellen Geräten über USB ermöglichen. In der Praxis zeigte sich aber, dass nicht alle
im Handel angebotenen Adapter zuverlässig funktionieren. Deshalb stelle ich hier ein USB 1.1 Interface vor, das mit meinen Projekten getestet wurde und zum Teil selbst aufgebaut werden kann.
Hinweis: Dieses Projekt wird nicht weiterentwickelt.

Schaltplan | usb-rs232-sch.zip |
Stückliste mit Empfehlungen zur Bauteilbestellung |

Beschreibung | Allgemeine Informationen über das USB-RS232-Interface |
Schaltung | Beschreibung der Schaltung |
Aufbau | Aufbau des USB-RS232-Interfaces |
Kurze Vorgeschichte: Ursprünglich wollte ich ein fertiges USB-RS232 Kabel für meine Experimente benutzen, da die USB-Problematik doch recht komplex und (zumindest für mich) schwer zu durchschauen ist. Und so entschied ich mich für ein handliches USB-RS232 Kabel von der Firma DeLock mit dem Chip PL-2303. Prinzipiell klappte damit auch die Kommunikation mit dem EPROM-Programmiergerät, aber beim Senden von großen Datenmengen vom PC zum Programmiergerät kam es immer wieder zu Übertragungsfehlern. Leider war das Problem nicht zu lösen, auch aktuelle Treiber brachten keinen Erfolg. Da man vor dem Kauf eines fertigen Kabels leider nicht weiß, welches IC verwendet wird, habe ich kein weiteres Fertigprodukt gekauft und entschied mich für den Selbstbau.
Der hier vorgestellte USB-RS232-Adapter verwendet den FT8U232AM von der Firma FTDI (siehe Links, Software). Dieser Chip ist zwar nicht der neueste aus dieser Produktserie, aber er hat sich bewährt und es gibt fertige Treiber für fast alle gängigen Betriebssysteme. Allerdings ist dieser Chip nur im MQFP-Gehäuse mit einem Pin-Abstand von 0,8 mm erhältlich und da solche ICs nicht gerade einfach zu verarbeiten sind (schon gar nicht auf Lochraster-Platinen), habe ich hier auf den Bausatz UM 100 von ELV zurückgegriffen:
Ich möchte hier den Aufbau eines kompletten USB-RS232 Adapters beschreiben. Dazu wird zuerst das UM-100 aufgebaut, wobei man folgendes beachten sollte: Für JP1 wird nicht die beiliegende gerade Stiftleiste verwendet, sondern stattdessen eine gewinkelte Ausführung. Später wird das Modul auf eine zusätzliche Treiberplatine aufgesteckt und dann würde der stehende Jumper stören. Der Kondensator C1 muss aus dem gleichen Grund liegend montiert werden. Die mitgelieferten Winkel werden nicht benötigt und können in der Bastelkiste verschwinden. Zum Aufbau des Moduls will ich nicht viele Worte verlieren, da in der beiliegenden Anleitung alles Wissenswerte drinsteht. Hat man die Lötarbeiten geschafft und alles nochmals genau kontrolliert, kann man einen Funktionstest durchführen. Der Jumper wird in die Stellung USB gebracht und das Modul an den PC angesteckt. Das System sollte nun das Modul richtig erkennen und es wird die Treiberdiskette angefordert. Wenn alles erfolgreich verläuft, dann findet man das UM-100 bei Windows Betriebssystemen in der Systemsteuerung wieder und zwar einmal als USB-Controller und einmal als serielle Schnittstelle.
Wenn alles richtig funktioniert, kann es mit der nächsten Platine weitergehen. Diese enthält die RS-232 Treiber in Form eines MAX238CNG, außerdem noch 5 Kondensatoren, den RS-232-Anschluss und einen Steckverbinder zum Aufstecken des UM-100 Moduls:
Experten werden sicher sofort erkennen, dass noch eine RS-232-Leitung fehlt, nämlich RI. Eigentlich war ein anderes Treiber-IC vorgesehen, aber der MAX238 war besser erhältlich. Leider fehlt ihm ein Empfängertreiber, deshalb habe ich einfach auf die Leitung RI verzichtet, weil diese in der Praxis fast nie verwendet wird. Zur besseren Übersicht sind hier noch einmal alle wichtigen Anschlüsse des UM-100 und deren weitere Führung in tabellarischer Form aufgelistet:
Leitung | Anschluss UM-100 | MAX238-Treiber (CMOS) | MAX238-Treiber (RS-232) | RS-232-Anschluss |
---|---|---|---|---|
GND | 1 | 5 | ||
DCD | 2 | 17 | 16 | 1 |
DSR | 3 | 22 | 23 | 6 |
RXD | 4 | 6 | 7 | 2 |
RTS | 5 | 18 | 1 | 7 |
TXD | 6 | 5 | 2 | 3 |
CTS | 7 | 4 | 3 | 8 |
DTR | 8 | 19 | 24 | 4 |
RI | 9 | 9 (nicht genutzt) | ||
+5V | 11 |
Damit ist das USB-RS232-Interface fertig und kann z.B. zusammen mit dem EPROM-Programmiergerät oder dem Temperaturmesssystem verwendet werden. Hierbei ist nur zu beachten, dass anstatt der direkten COM-Schnittstelle jetzt der (virtuelle) COM-Port des UM-100 ausgewählt werden muss. Alle anderen Einstellungen, wie z.B. die Schnittstellenparameter, werden ebenso konfiguriert wie bei einem normalen COM-Port.
Ich habe auch versucht, PonyProg über dieses USB-RS232 Interface mit dem seriellen Programmieradapter zu betreiben. Es funktioniert prinzipiell auch fehlerfrei, aber die Zeiten liegen weit über der Schmerzgrenze. So dauerte das Programmieren und Vergleichen eines AT90S2313 (2kB) ungefähr 15 Minuten. Ich kann also nur davon abraten.