USB-UART-Interface mit galv. Trennung

Dieses Projekt entstand eigentlich mehr nebenbei, da ich eine kleine Schaltung bauen wollte, mit der ich mal einen der chinesischen Leiterplattenlieferanten testen wollte. Deswegen hab ich was Kleines entworfen, was ich schon länger als Idee im Kopf hatte, und was im Alltag (zumindest, wenn man mit Elektronik zu tun hat) sehr nützlich sein kann.

Es handelt sich um ein USB-UART-Interface, das an den USB-Port eines Rechners angeschlossen wird und eine serielle Schnittstelle zur Verfügung stellt. Dabei kann man zwischen RS232-Pegeln (für Geräte, die eine RS232 mit integriertem Pegelwandler haben) und "TTL"-Pegeln mit 5V oder 3,3V (z.B. zum direkten Anschluss an eine Mikrocontrollerschaltung) wählen. Neben RxD und TxD sind auch die Steuersignale RTS und CTS mit umgesetzt, um zum Beispiel einfache Schaltaufgaben zu erfüllen oder einen RS485-Wandler anzusteuern etc.

Der Clou: das Ganze ist auch noch galvanisch getrennt! Dadurch vermeidet man Brummschleifen, schützt den Rechner und kann mit Schaltungen kommunizieren, die beispielsweise mit Hochspannung arbeiten oder auf Netzpotential liegen. Na, ist das was? ;-)

Das fertige Interface war ein Gast in einer "Mailbag"-Episode des EEVBlog von Dave Jones :-) Es wird etwa ab Laufzeit 20:09 vorgestellt:

For all you English people out there: Here you can download the english translation of this page, which is also featured in the EEVBlog Mailbag video on Youtube.

Funktion und Anschlüsse

Das Interface wird über ein USB-Kabel mit Standard-B-Stecker an den Rechner angesteckt, die Treiber werden unter Windows normalerweise automatisch installiert, falls nicht, können die Treiber auch manuell von der FTDI Treiber Webseite heruntergeladen werden. Es wird ein virtueller COM-Port bereitgestellt, über den das Interface dann wie eine normale serielle Schnittstelle angesprochen werden kann. Die Stromversorgung des Interfaces erfolgt auch über den USB-Port.

Das folgende Bild zeigt die Anschlüsse und deren Belegung:

Anschlüsse und Belegungen

Die RS232-Signale stehen an einem 9-poligen Sub-D-Stecker zur Verfügung, die Belegung entspricht dem Standard, so dass über ein 1:1-Kabel direkt Geräte mit einer seriellen Schnittstelle angeschlossen werden können. Die Signale mit TTL-Pegel sind auf eine 4-polige Schraubklemme (ohne RTS, CTS) sowie auf eine 6-polige Stiftleiste (alle Signale) herausgeführt. Mit dem Schalter kann gewählt werden, ob TTL- (Schalter nach unten) oder RS232-Signale (Schalter nach oben) benötigt werden. Die Umschaltung ist leider notwendig, da sonst der Ausgang des RS232-Schnittstellentreibers gegen ein am TTL-Eingang eingespeistes Signal arbeiten würde.

Der Pegel der TTL-Signale kann über einen Jumper auf 5V oder 3,3V konfiguriert werden. Diese Spannung liegt auch an der Schraubklemme und der Stiftleiste an (Vcc), so dass kleinere Schaltungen mit geringem Strombedarf direkt über das Interface versorgt werden können.

Schaltung

Der Schaltplan als PDF kann hier heruntergeladen werden.

Seite 2 enthält den FT232BL von FTDI, der den Kern des Interfaces bildet. Er bildet die eigentliche USB-UART-Bridge und stellt eine komplette serielle Schnittstelle zur Verfügung. Der Chip ist nach dem Datenblatt beschaltet und wird aus dem USB-Port versorgt, d.h. auf der UART-Seite an den Pins 18 bis 25 stehen Signale mit 5V-Pegel zur Verfügung.

Darunter ist der 1W-DC/DC-Wandler MEE1S0505SC gezeichnet, der aus den +5V des USB-Port galvanisch getrennte +5V zur Versorgung des Ausgangsteils (iCoupler, MAX3232) generiert. Nach dem DC/DC-Wandler folgt ein Linearregler vom Typ LF33CV, der daraus +3,3V generiert. Die LED D3 dient als optische Kontrolle und als kleine Grundlast für den DC/DC-Wandler.

Ansicht im Gehäuse

Auf Seite 3 ist der Schaltungsteil zur galvanischen Trennung, der RS232-Pegelwandler sowie die Ausgangsschaltung zu sehen. Die galvanische Trennung erledigen zwei iCoupler von Analog Devices, Typ ADUM1201. Diese Chips besitzen intern einen kleinen Transformator, über den die digitale Information des Eingangs galvanisch getrennt zur Ausgangsseite übertragen wird. Die Variante ADUM1201 besitzt dabei einen Hin- und einen Rückkanal, so dass TxD und RxD mit einem Chip übertragen werden können. Der Chip arbeitet mit einer Betriebsspannung von 2,7 bis 5,5V, so dass diese auch gleich als Pegelwandler für die TTL-Signale herhalten können. Die gewünschte Spannung kann über den Jumper GS1 gewählt werden.

Oben rechts ist der RS232-Pegelwandler zu sehen, ein MAX3232, der sowohl mit 5V als auch mit 3,3V arbeitet. Er wandelt RxD, TxD, RTS und CTS auf RS232-konforme Pegel und gibt sie an den Sub-D-Stecker. Die Widerstände und Z-Dioden am Ausgang dienen zum Schutz vor ESD und vor überspannungen am Stecker. Da RxD und CTS Ausgänge des MAX3232 sind, werden diese über einen Schalter geführt, damit beim TTL-Betrieb diese Ausgänge nicht mit den TTL-Signalen kollidieren. Soll das Interface nur als RS232-Interface genutzt werden, kann der Schalter entfallen und es müssen R25 und R28 als 0-Ohm-Widerstände bestückt werden, die den Schalter überbrücken.

Unten rechts sind schließlich die beiden Ausgangsbuchsen zu sehen, eine 6polige Stiftleiste und eine 4polige, steckbare Schraubklemme. Auch diese Ausgangssignale sind über Widerstände und Schottky-Dioden vor ESD und überspannungen geschützt. Der Ausgang der Betriebsspannung ist über einen Ferrit und einen Kondensator gepuffert (L2, C19).

Nachbau

Die Unterlagen für das komplette Projekt gibt es hier.

Die Datei enthält Schalt- und Bestückungsplan, zwei Stücklisten (für das komplett bestückte Interface, sowie eine "Light"-Variante, bei der nur RxD und TxD ausgeführt sind), außerdem das KiCAD-Projekt und Gerber-Files der Platine.

Das Interface kann offen betrieben oder in ein Gehäuse eingebaut werden. Die Platine ist so entworfen, dass sie in ein Bopla U75-Gehäuse passt. Es müssen dann nur noch die seitlichen Aussparungen für die Buchsen und den Schalter ausgefeilt werden. Die LEDs können, wie auf dem Bild oben zu sehen, mit Drahtresten verlängert werden, so dass sie durch Löcher in der Gehäuseoberseite schauen.

Bilder

Hier noch ein paar Bilder des USB-UART-Interfaces.

Ansicht des Interface
Ansicht des Interface

Das Interface im Gehäuse:

Ansicht im Gehäuse
Ansicht im Gehäuse
Ansicht im Gehäuse

Und hier die nackte Platine, die ich testweise beim Chinamann bestellt habe. Der rote Lötstoplack macht richtig was her:

Unbestückte Platine