USB zu UART mit dem FT232RL-Chip

(2008 – Update 03.12.2012) Für fast jede Entwicklung an einem Mikrocontroller ist es irgendwann hilfreich oder notwendig eine serielle Verbindung herzustellen. Klassisch nimmt man einen RS232-COM-Port am PC und den MAX232 oder MAX3232. Da aber die wenigstens PCs und praktisch keine Laptops mehr eine RS232-Schnittstelle mehr haben, muss ein USB-UART-Wandler her.

Hier wird der FT232 von FTDI vorgestellt mit einem konkreten Schaltungsbeispiel für 5V und 3,3V-Anwendungen. Es ist nicht nur ein Flickwerk für verschwundene RS232-Schnittstellen, sondern bietet in Sachen Übertragungsrate ganz neue Möglichkeiten, die man von RS232 gar nicht kennt (bis 1MBaud, neue HW-Realeses bis 3MBaud). Gegenüber den anderen USB-UART-ICs von Silabs und Cypress hat dieser vor allem in Sachen Geschwindigkeit, Treiber-Support und sehr kräftiger Ausgangstreiber (12mA) die Nase vorn.
Wer das Gerät an WinXP/Vista/7 x86 oder 64 bei bestehender Internetverbindung anstöpselt, bekommt in der Regel den Treiber direkt aus dem Internet. Sogar unter Windows 8 ist das Gerät lauffähig, allerdings muss man aktuell (Dez. 2012) noch selbst die Treiber von der Homepage herunterladen. Unter Linux funktioniert das Gerät sowieso. Wer jetzt noch ein Android-Tablet mit USB-Anschluss hat, kann den USB-UART-Wandler sogar dort verwenden (z.B. „Slick USB 2 Serial“).
Nach der Installation taucht der Chip als regulärer COM-Port in der Liste der Anschlüsse auf.

Hier mal ein vergleichsweise altes Board, das aber bis heute sehr gute Dienste leistet. Es ist eines meiner älteren Layouts und man möge mir den ein oder anderen Makel im Bereich Schaltplan und Boardlayout-Design nachsehen. Das ganze ist für ein einseitiges Board mit bedrahteten Bauteilen. Einzig der FT232RL-IC ist ein SMD-Bauteil. Allerdings lässt sich dieser recht einfach mit Flussmittel und Bleistiftspitze verarbeiten.

Features in diesem Layout:

  • Windows, Linux, Mac und sogar Android können den IC verwenden!
  • Einseitig mit nur einem SMD-Bauteil und ohne Drahtbrücken
  • Neben Rx und Tx sind auch RTS und CTS herausgeführt
  • Widerstände in Reihe für Rx/Tx/RTS/CTS als Überstromschutz (bis max 5V bei 1,5kOhm).
    Sollte mal wieder das überkreuzen von Rx/Tx vergessen worden sein, sind die Überlebenschancen für den µC und den FTDI-Chip größer. (! aber nicht garantiert !)
  • 4,8V-Versorgung bis 500mA aus dem USB-Port möglich (Zum Schutz des Ports über eine Schottky-Diode geführt)
  • LEDs zeigen Datenversand- und Empfang.
  • Schaltpegel für Rx/Tx/RTS/CTS können per Jumper zwischen 3,3V und 5V umgeschaltet werden.
  • Alles auf Stiftleiste bereit zur fliegenden Verdrahtung in Entwicklungsaufbauten…

Schaltplan und Anschlüsse:

USB-UART-FTDI Schaltplan

USB-UART-FTDI Schaltplan. Etwas älter und nicht überarbeitet…aber getestet und funktioniert bis 3MBit (HW-rev. des FT232RL beachten)!

JP1: UART-Ports und Spannungsversorgung
1 – GND
2 – 4,8V (5V-USB über Schottky, max 500mA mit 1/4W-Schottky)**
3 – Tx (Zu Ziel-Rx)*
4 – Rx (Zu Ziel-Tx)*
5 – RTS (Zu Ziel-CTS)*
6 – CTS (Zu Ziel-RTS)*
7 – nicht verwenden!

JP2: Spannungspegel für die IOs wählen Rx/Tx/CTS/RTS
1-2 closed: Schaltpegel liegt bei 5V
2-3 closed: Schaltpegel liegt bei 3,3V
Diese Einstellungen haben keinen Effekt auf die Versorgungsspannung durch JP1-Pin2!

LEDs:
LED1 – Leuchtet bei Datenempfang
LED2 – Leuchtet bei Datenversand

Board-Layout:

USB-UART-FTDI PCB_POV_TOP

USB-UART-FTDI PCB_POV_TOP

USB-UART-FTDI PCB_POV_BOTTOM

USB-UART-FTDI PCB_POV_BOTTOM

Bilder der fertigen Version:

USB-UART-FTDI action shot

USB-UART-FTDI action shot. Die Rückseite ist mit einem Stück Kunststoff verklebt, um Kurzschlüsse beim ablegen zu vermeiden.

Bitte beachten:

  • Wer 500mA am USB ausreizen möchte bzw. 90mA überschreitet, der muss evtl. mit Hilfe von FT_Prog die Stromanforderung des ICs an den Hub auf 500mA konfigurieren.
  • Wer an den IOs den vollen Strom von 12mA verwenden möchte bzw. 4mA überschreitet, der sollte auch das mit Hilfe von FT_Prog im IC konfigurieren (High-Current-IOs).
  • Als LEDs bitte unbedingt lc-LEDs nehmen, welche bei dem geringen Strom von 1-2mA kräftig genug leuchten. Der Vorwiderstand kann bis auf 470 an Stelle der 1000 Ohm herabgesetzt werden.
  • Die Widerstände zum Schutz der IOs können bei 220 bis 1500Ohm liegen. Ich empfehle 1500, wer allerdings Probleme bei hohen Datenraten (115k) bekommt, der sollte die Widerstände kleiner wählen.

Für den Einsatz übernehme ich wie immer keine Haftung oder Gewähr bei Schäden! Bitte prüft selbst sorgfältig eure Schaltpläne und Aufbauten unter Berücksichtigung der Datenblätter und Application-Notes der Hersteller!

Links:

Board, Ätzmasken, Eagle-Daten, PDFs… (~1MB .ZIP)
Datenblatt des FT232RL
Homepage von FTDI mit Treiberdownload
FT_Prog von FTDI
hterm – Empfohlenes Terminalprogramm zur freien Verwendung

5 thoughts on “USB zu UART mit dem FT232RL-Chip

    • Hallo Nico No,
      danke für den Hinweis. Ist aber zum Glück nur ein Beschriftungsproblem. Ist mir aber auch nie aufgefallen, sonder hab immer nur geschaut ob beim senden von der einen bzw. anderen Seite etwas blinkt. Nach Rx und Tx hab ich nie geschaut, deshalb ist es wohl nicht aufgefallen.

      Viel Spaß mit dem Board, ich hoffe das robuste Design macht sich auch bei dir bewährt. Gerne auch Bilder von deinem Aufbau!

      Gruß

      René

  1. Hallo, habe ein Frage, kann ich die Schaltung auch umgekehrt also Master ist RS232 und Slave USB benutzen wenn ich die 5V+ extern einspeise?
    Suche so etwas ganz ganz dringend da mein SPS System nur über RS232 max 115Kbits
    oder RS 422 verfügt.
    Für Hilfe bin ich sehr, sehr dankbar.

    mfg

    Johannes Uphoff

    • Prinzipiell ist das FTDI-Chip geeignet zusammen mit einem Pegelwandler-IC (z.B: max232) auch eine RS232-Verbindung zu etablieren. Auch RS422 geht mit entsprechendem Pegelwandler(z.B. max485 bzw. max488/489/490/491).
      Ob der USB-Teilnehmer dann Master oder Slave ist, macht da erstmal keinen Unterschied, wenn das Protkoll und Timing stimmt.

      Aber wenn es zusammen mit einer SPS funktionieren soll, dann empfehle ich auf jeden Fall eine galvanische Trennung zu benutzen!

      Für 115k braucht es aber schnelle Optokoppler, denn eine Bitrate von 1MBit sind empfohlen (z.B. 6n136/6n137) um eine saubere asynchrone Übertragung bei gleichzeitig galv. Trennung zu realisieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *