USB zu Seriell Wandler

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Gelegentlich benötigt man ein Möglichkeit der seriellen Datenkommunikation von und zu einem PC-System. Heutige PCs besitzen in der Regel keine serielle Schnittstelle mehr, daher wird der 'Umweg' über eine virtuelle Schnittstelle aus einer Treibersoftware und einem USB-Seriell-Wandler gegangen. Aber selbst wenn der PC über eine serielle Schnittstelle verfügt kann man z.B. zum Programmieren von Mikrocontrollern nicht einfach mal die PINS mit einander verbinden. Denn dann sind wir auch schon beim ersten Problem. Es gilt bei der Wahl des passenden Adapters mindestens zwei Merkmalen Aufmerksamkeit zu widmen. Die vollständige Abbildung aller am RS232-Port vorhanden Datenleitungen und der Spannungspegel (laut Definition bis zu +/-15V, i.d.R. 12V 5V und 3.3V) an ihnen. Für die Nutzung als Programmier-Adapter werden in der Regel nur die Datenleitungen RX/TX (Receive Data/Transmit Data) benötigt. Der sogenannte Handshake ist dann, wenn nötig, auf "Software" einzustellen. Nutzt man den Adapter als RS232-Ersatz, dann wird die Sache schon etwas schwieriger. Die Schwierigkeit zeigt sich dann in Aussagen wie: "Ich habe ein altes Gerät mit einer seriellen Schnittstelle. Es will aber partout keine Verbindung über einen Adapter aufnehmen." Sollten Sie so ein Problem haben, dann kann ich Ihnen sicherlich helfen. Beschreiben Sie dazu einfach ihr System im Kommentar. Die Anzahl der Adapter, die zum Kauf angeboten werden ist unüberschaubar. Eine Google-Suche nach einem "USB Seriell Wandler" liefert, sozusagen alleine 85000 auf deutsch angebotene Ergebnisse.

USBSeriellWandlerOverview.png

Der Anlass zum Schreiben dieses Wiki-Beitrages war durch die Suche nach einem ESP8266-Programmer ausgelöst worden. In der Grabbelkiste habe ich noch einen Adapter mit einem CP2102 gefunden. Daher beginne ich mit diesem. Die weiteren Adapter beschreibe ich dann, je nach Anforderung, nach und nach.

CP2102

In der System-Übersicht des Datenblattes heißt es kurz gesagt:

  1. Highly-integrated USB-to-UART Bridge Controller
  2. Simple solution for updating RS-232 designs to USB using a minimum of components and PCB space
  3. USB 2.0 full-speed function controller
  4. No other external USB components are required.
  5. Royalty-free Virtual COM Port (VCP) device drivers provided by Silicon Laboratories allow a CP2102/9-based product to appear as a COM port to PC applications.
  6. The CP2102/9 UART interface implements all RS-232 signals, including control and handshaking signals, so existing system firmware does not need to be modified.

Weiterhin heißt es.

The on-chip programmable ROM may be used to customize the USB Vendor ID, Product ID, Product Description
String, Power Descriptor, Device Release Number, and Device Serial Number as desired for OEM applications.
The programmable ROM is programmed on-board via the USB, allowing the programming step to be easily
integrated into the product manufacturing and testing process.

Was schon mal wichtig ist, der CP2102 arbeitet mit 3,3V. Das heißt die Pegel an der Signalleitungen liegen bei HIGH-Pegel auf ca. 3.2V-2,5 V (!) und bei LOW-Pegel zwischen 0.1V und 1.0V in OUTPUT-Richtung. Bei der 'Eingabe' von Pegeln liegen die Grenzen für HIGH >2.0V und für LOW <0.8V Siehe dazu das Datenblatt Seite 8. Dies entspicht bis auf die Ausnahme Output Low Voltage den Vorgaben des Low-Voltage-TTL. Die Input Voltage (Eingangsspannung PIN 7) kann zwischen 4V und 5.25V liegen. In der Regel hält ein USB-Port eines PC/Notebooks/Tablets dies ein. Nachmessen macht schlau. Die Ausgangspannung liegt laut Datenblatt zwischen 3.0V und 3.6V und ich wollte es fast nicht glauben ist die Strombelastbarkeit (Maximum Total Current through VDD) stolze 500mA. Bei den Baudraten wird alles übliche bis zu 921600 unterstützt.

Internal Programmable ROM

Das interne EEPROM des CP2102 lässt sich anpassen. Das ist aber eigentlich nur von Bedeutung wenn man mehrere Adapter gleichzeitig angeschlossen hat und die einfach unterscheiden will. Im Auslieferungszustand hat der Chip folgende Konfigurationsdaten:

Name Value
Vendor ID 10C4h
Product ID EA60h
Power Descriptor (Attributes) 80h
Power Descriptor (Max. Power) 32h
Release Number 0100h
CP2102 Serial Number 0001 (63 characters maximum)
CP2109 Serial Number Unique 8 character ASCII string (63 characters maximum)
CP2102 Product Description String “CP2102 USB to UART Bridge Controller” (126 characters maximum)
CP2109 Product Description String “CP2109 USB to UART Bridge Controller” (126 characters maximum)
No other circuitry should be connected to VPP during a programming operation, and VDD must remain at 3.3 V or higher to successfully write to the configuration ROM.
VPP Programming Supply Voltage (PIN18 CP2102-NC, CP2109-VPP)
This pin should be left unconnected or tied to VDD. This pin is unused on the CP2102 and may be connected to the Vpp programming capacitor to maintain board compatibility with the CP2109.


Ein Programm das die Eintragungen ändern kann finden man auf GitHub.

Request for Comments


Kommentar hinzufügen
TippvomTibb freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.