Forum: PC-Programmierung Zugriff aus USB HID Device klappt nicht


von 7Eleven (Gast)


Lesenswert?

Hi,

ich habe hier einen ATTiny als USB HID Device, mit dem ich vom PC aus 
kommunizieren will. Das Ganze basiert auf dem HID-Beispiel aus dem 
VUSB-Paket.

Der Linux-Code funktioniert problemlos, unter Windows klappt es leider 
noch gar nicht.

Mein Problem: Wenn ich versuche, mit HidD_GetFeature() (zu finden in 
usbhidGetReport() von 
https://github.com/obdev/v-usb/blob/master/libs-host/hiddata.c ) Daten 
an mein Device zu senden, so kommt diese Funktion mit 0 zurück. 
GetLastError() liefert 23, was einem CRC-Fehler entsprechen würde - nur 
verwendet mein Device gar keine Prüfsumme.

Der an HidD_GetFeature() übergebene Buffer fängt mit 0 an (keine 
ReportID) und demzufolge ein Byte länger - sollte also passen.

Jemand eine Idee, was hier schief läuft bzw. wo ich noch schauen könnte?

Danke!

von René K. (king)


Lesenswert?

Aber sicher verwendest Du auch Prüfsummen, das bringt der USB so mit 
sich: http://www.usb.org/developers/whitepapers/crcdes.pdf

Zum Problem: Mich interessiert zunächst, was der Aufruf von HidP_GetCaps 
liefert, bzw. was Du für "FeatureReportByteLength" in HIDP_CAPS 
geliefert bekommst. Stimmt das mit Parameter 3 von HidD_GetFeature 
überein?

http://msdn.microsoft.com/en-us/library/windows/hardware/ff539715.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539697.aspx

Wenn das alles passt, musst Du Dir das mal mit einem Protokoll-Analyzer 
anschauen. Auf den ersten Blick sieht mir das nämlich nach einem 
Fehlverhalten seitens des Devices aus.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.