Thomas W. schrieb:
> Da musst du einen kompletten USB Host Stack aufbauen und die
> Descriptoren richtig setzen, dass ein Joy device erkannt wird.
Falsch. Die Deskriptoren müssen auf dem Gerät gesetzt werden und nicht
auf dem Host. Der Host muss die Deskriptoren aus dem Gerät auslesen und
dementsprechend Treiber laden, Geräteklassen initialisieren, usw..
Bei dem Projekt des TE würde ich jedoch den Aufwand auf Host-Seite
minimieren, d.h. maximal den Device Descriptor abfragen und einen sehr
flüchtigen Blick darauf werfen, um zu erkennen, dass ein Gerät
angeschlossen und initialisiert ist. Der Rest, insbesondere die
Kanalbelegung im HID-Joystick-Modell, kann in die Firmware fest
hineinkodiert sein und muss nur angepasst werden, wenn ein anderer
Joysticktyp eingesetzt wird. Das erstmalige Auslesen aller Deskriptoren
und der Kanalkonfiguration kann lieber gemütlich auf einem PC mit den
entsprechenden USB-Analyseprogrammen erfolgen.
Ein vollständiger USB-Host-Stack wäre natürlich um etliche
Größenordnungen komplexer, insbesondere wenn er auch noch das
Powermanagement betreiben und USB-Hubs initialisieren und überwachen
muss. Aber das kann man bei einer Verbindung genau eines USB-Geräts
direkt am USB-Host (bzw. dessen integriertem Root-Hub) einsparen.