LogView       Downloads    Doku    Artikel    Forum                Deutsch   English

CP210x identifizieren ...

Sniff01.jpg

Jetzt wird es ernst :-) Wir steigen ein in die Tiefen der USB Ports ...

Dieser Artikel basiert im Wesentlichen auf einem von SiLabs selbst veröffentlichten englischen Artikel. Er beschreibt wie man das Device vor der Treiberinstallation diagnostizieren kann. 

Der Orginal Artikel ist beim Produkt Support auf der SiLabs Seite zu finden: http://www.silabs.com/tgwWebApp/public/web_content/support/en/index.htm Man muss sich leider etwas durchklicken bis man die Info findet. Darum hier ein Abzug als PDF. 

Weiterhin brauchen wir für die Durchführung das kostenlose Tool UVCView von Microsoft. Es ist hier ebenfalls zum Download verfügbar.

CP210x_Troubleshooting_Techniques.pdf

Orginalartikel von Silabs
pdf, 609,3 KB, 06/08/08, 1078 downloads

Analyse mittels UVCView

Microsoft hat ein sehr nützliches Tool entwickelt - UVCView (Siehe Download etwas weiter oben). Dieses Tool dient eigentlich zum Überprüfen von Video Class Devices, nutzt aber auch bei USB - Seriell Adaptern eine ganze Menge wie wir später sehen werden.

Zunächst das Tool downloaden und entpacken - dann die EXE starten. Nun bekommt man eine Übersicht an angeschlossenen USB Geräten und der Hubstrukur des PCs. Da wir den Treiber noch nicht installiert haben sollte das Device schnell zu finden sein, denn davor findet sich ein schwarzes Rufzeichen auf gelbem Kreis. Wenn man dieses Device anklickt bekommt man folgende Übersicht:

Sniff02.jpg

Selbst ein Laie sollte erkennen dass das Gerät in Windows bekannt ist. Der Produktname ist vorhanden und lässt eindeutig auf den CP210x schließen (Das Bild zeigt exemplarisch ein 2102 Device).
Weiter hat das Gerät auch seinen Strombedarf am System angemeldet und kann max. 100mA verwenden. 

Wer es ganz genau wissen will, kann nun auch noch idVendor und idProduct überprüfen. Diese Werte finden sich auch in der INF Datei (slabvcp.inf, slabvxd.inf, ...) des Treibers und sind dort unter VID / PID abgelegt: 
[SiLabs]
%USB\VID_10C4&PID_EA60.DeviceDesc%=silabser.Dev, USB\VID_10C4&PID_EA60


VID und PID sind letztlich nichts anderes als IDs - also Kennzeichnungen, um ein Gerät zu identifizieren. VID steht dabei für Vendor ID und PID für Product ID. 

Wir wissen nun also, dass sich das Device am Gerät gemeldet hat und wir wissen das wir eine Treiberdatei haben, die für dieses Gerät geeignet ist.

Anmerkung:
*!*CAUTION:    This appears to be an invalid bInterfaceSubClass
bInterfaceProtocol:                0x00
iInterface:                        0x02
     English (United States)  "CP2102 USB to UART Bridge Controller"
*!*ERROR:  0xFF is the prerelease USB Video Class ID


Diese Fehler in der Liste können getrost ignoriert werden. Denn da wir hier kein Video Device haben sind die Fehler ganz normal.

Fehlerhaftes Gerät erkennen

Sniff03.jpg

Wie kann man nun aber erkennen ob das Gerät nicht ordnungsgemäss angemeldet ist? 

Wie auf dem Bild ersichtlich ist fehlen eindeutige Merkmale wie ein gültiger Bezeichner. Auch der Configuration Descriptor ist ungültig. 

Kurzum, das Device hat sich nicht sauber am System angemeldet. 

Gründe dafür könnten sein: 

  • USB ist strommäßig überlastet
  • zu viele verschachtelte USB Hubs
  • generell ein USB HUB zwischen Adapter und PC
  • zu langes Kabel oder ggf. eine zu lange Verlängerung zwischen PC und Adapter
  • mitunter ist aber der Chip auch einfach defekt oder hat aufgrund von statischen Entladungen einen "Schlag" bekommen

Man sollte den Adapter / das Gerät testweise an einen anderen USB Port und ggf. auch an andere PCs hängen um dem wirklichen Grund auf die Schliche zu kommen. 

Generell lässt sich aber mittels des Tools UVCView grundsätzlich sagen ob ein Device nutzbar / sichtbar ist für Windows oder ob es grundlegende Anschluss- / Kommunikationsprobleme gibt. 

Wer die Sache noch tiefer einsehen will kann sich mit USB Sniffern wie z.B. 

tief ins USB System vergraben. Das ist dann allerdings nicht mehr ganz so einfach und für unsere Zwecke im Moment etwas oversized ...

Aktualisierung: 2008/06/08 - Dominik Schmidt