AVR als USB Host mit CP2102

#3041087
Lesenswert?

Hallo zusammen

Ich möchte folgende serielle Verbindung realisieren:

Smartphone -> Bluetooth Modul BTM-222 -> USBKEY2 -> CP2102 -> Elektronik

Da der CP2102 in meiner Elektronik bereits verbaut ist, kann ich diesen 
nicht mehr ändern und bin hierbei gezwungen zur Kommunikation einen USB 
Host fähigen Mikrocontroller einzusetzen. Hierbei ist meine Wahl auf das 
USBKEY2 Kit von Atmel gefallen, da es hierzu eine Application Note 
"AVR280: USB Host CDC Demonstration" von Atmel gibt und das zugehörige 
Softwarebeispiel.

Mein Problem liegt nun darin, dass der CP2102 bei der Enumeration sich 
mit nur 2 Endpoints meldet:
Endpoint0 IN Bulk
Endpoint1 OUT Bulk
Class ist 0xFF für Vendor Device
SubClass ist 0x00
Protokoll ist 0x00
-> die Verbindung funktiniert nicht, da das Softwarebeispiel 3 Enpoints 
erwartet!

Wenn ich meine Prolific USB UART Bridge an USBKEY anschließe, meldet 
sich diese mit 3 Endpoints:
Endpoint0 IN Interrupt
Endpoint1 OUT Bulk
Endpoint2 IN Bulk

Class ist 0xFF für Vendor Device
SubClass ist 0x00
Protokoll ist 0x00
und die Verbindung funktioniert einwandfrei!

Es fehlt beim CP2102 der Interupt Endpoint.
Hatte vielleicht schon jemand das gleiche Problem oder kann mir jemand 
den Schubs in die richtige Richtung geben?
Persönliche Seite #3041465
Lesenswert?

Naja, dann dürfte das Problem sein, daß das Softwarebeispiel mit einem 
CDC reden will, Deine UART-USB-Bridge aber eben kein CDC ist, sondern 
ein anderes, proprietäres Protokoll einsetzt.

Wie ich schon schrieb, praktisch keine der üblichen USB-Seriell-Bridges 
(ob von TI, FTDI, SiLabs, Prolific etc.) verwendet das CDC-Protokoll, 
das tut nur* der MCP2200 von Microchip 
(http://www.microchip.com/wwwproducts/devices.aspx?dDocName=en546923) 
und natürlich V-USB/CDC.

Was genutzt wird, kannst Du erkennen, indem Du Dir die vom Hersteller 
gelieferten USB-Treiber für Windows ansiehst. Ist das mehr als eine 
simple *.inf-Datei, wird mit sehr hoher Wahrscheinlichkeit ein 
proprietäres, nicht-CDC-Protokoll verwendet.


*) natürlich will ich nicht ausschließen, daß es so etwas nicht 
vielleicht doch auch von einem anderen Hersteller geben kann.
Gast #3042023
Lesenswert?

Hallo Hans,
Schau dir mal das Dokument an:
http://www.silabs.com/Support%20Documents/Software/USB_Overview.pdf

Wenn ich das nicht ganz falsch verstehe steht da deutlich das die 
USB/UART Bridges Virtual Com Ports Treiber verwenden.
Das CDC Beispiel (Appendix ab Seite 60) ist leider ausdrücklich für die 
Silab MCU's gedacht.

Ein kleines Konfigurationstool und zusätzliche Informationen zu den 
CP210x  ist hier mit dabei (kennst du wahrscheinlich schon):
http://silicon-laboratories-usbxpress-developme.software.informer.com/

Gruß Bernhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren