home
USB-Mikrocontroller waren gestern, USB - UART Bridge ist heute

Wer jemals versucht, einen USB-Mikrocontroller für die USB-Kommunikation zu programmieren, wird auf nahezu unüberwindliche Hindernisse stoßen.

  • Enumeration, Protokoll etc. Hat man diese Probleme nach vier Monaten einigermaßen im Griff, merkt man, dass der Controller keine weiteren Aufgaben mehr erledigen kann, weil er einfach zu sehr mit der USB-Kommunikation beschäftigt ist.
  • Dann folgt die PC-Software. USB-Kommunikation wird von keiner Programmiersprache unterstützt. Eine Lösung dafür zu finden benötigt nicht minder viel Zeit und ist unter Umständen extrem teuer und schlecht.

Inzwischen hat man gemerkt, dass die USB-Kommunikation nichts anderes ist als ein Schutz großer Firmen vor der kleinen Konkurenz. Eine RS232-Weiterentwicklung hätte das Problem eleganter gelöst.

Die Lösung für den Anwender ist eine USB-Bridge. Der Controller benötitg zum Senden wie gewohnt nur einen Befehl: mov SBUF, #data, und für den Empfang: mov a, SBUF. Dafür braucht man keine vier Monate Entwicklung!
Die Pins TxD und RxD werden mit den gleichnamigen Pins des CP2102 verbunden - das war's.

Der CP2102 benötigt außer dem USB B-Stecker keine weiteren Teile - und das ist wichtig: Takterzeugung, EEPROM für Enumeration etc. ist alles im Chip integriert - keine USB-Programmierung mehr nötig. Über Software, die Silabs kostenlos zur Verfügung stellt, kann man die USB-Kommunkation realisieren. Dafür gibt es zwei Möglichkeiten:

  1. Man benutzt den COM-Treiber. Vorteil: Bestehende PC-Software kann unverändert verwendet werden. Nachteil: Der Endbenutzer muss einen virtuellen Seriellen Port auf seinem PC installieren.
  2. Man benutzt die in C und VB dokumentierten DLL-Einsprünge, um einen echten USB-Datenverkehr aufzubauen. Der Anwender installiert einfach ein neues USB-Device. Nachteil: Bestehende PC-Software muss angepasst werden.

Für die Controllersoftware ändert sich nichts. Der Controller weiß gar nicht, dass er mit einer USB-Bridge verbunden ist, d.h. weder Hardware noch Software müssen geändert werden. Die einfachsten Lösungen sind die elgantesten in diesem Fall mit dem CP2102.

Auszug aus dem Datenblatt: CP2102 Data Sheet

  • Single-Chip USB to UART Data Transfer
  • Integrated USB transceiver; no external resistors required
  • Integrated clock; no external crystal required
  • Integrated 1024-Byte EEPROM for vendor ID, product ID, serial number, power descriptor, release number and product description strings
  • On-chip power-on reset circuit
  • On-chip voltage regulator: 3.3 V output
  • All handshaking and modem interface signals
  • Data formats supported:
    Data bits: 5, 6, 7, and 8
    Stop bits: 1, 1.5, and 2
    Parity: odd, even, mark, space, no parity
  • Baud rates: 300 bps to 1 Mbits
  • 576 Byte receive buffer; 640 byte transmit buffer
  • Hardware or X-On/X-Off handshaking supported
  • Event character support
  • Line break transmission

Preis: 2,80 €, ab 10 Stück 2,40 € inkl. MwSt.