Forum: Mikrocontroller und Digitale Elektronik STM32 USB HID


von Konrad (Gast)


Lesenswert?

Hallo,


hat jmd von euch schon mal mit der USB-Library von ST für einen 
STM32F103XX Prozessor was gemacht?

http://www.mikrocontroller.net/articles/STM32_USB-FS-Device_Lib

Ist diese Library gut, bzw. sind wichtige Sachen nicht implementiert, 
die man möglicherweise benötigt?

In meinem Projekt will ich eine Kommunikation zwischen diesem Prozessor 
und einem x86 Prozessor (USB) herstellen. Der STM32 Prozessor stellt 
Informationen bzw. Daten von einem Touchscreen-Controller und einem 
User-Interface (mehrere Eingabebuttons) dem x86 zur Verfügung.

Reicht mir hierfür ein HID Interface für die USB-Kommunikation mit einem 
Endpunkt (plus dem Init-Endpunkt zu Beginn); oder sollte ich zwei 
weitere Endpunkte spendieren (1x für den Touch und 1x für die vier 
Buttons)? Die Buttons können auch "gleichzeitig" gedrückt werden bzw. 
daraus ergibt sich für die Software ein anderer Zustand.

Welche Transfer-Art wird hauptsächlich für HID Interface verwendet? Im 
Windows-Rechner muss dann ein HID Treiber von mir installiert werden, 
der die Daten dieser Schnittstelle entgegennimmt? Oder kann hier 
problemlos der bereits vorhandene verwendet werden?


Gruß
Konrad

von Hannes S. (Gast)


Lesenswert?

Die Verwendung der USB-LIB hat bei mir (überraschend) gut geklappt. Das 
HID Sample hatte ich innerhalb weniger Stunden auf eigner Hardware am 
laufen und funktioniert auch absolut zuverlässig. Nur: Es ist notwendig, 
ein fundiertes USB/HID know-how zu besitzen, das nimmt einem die LIB 
nicht ab. Denn wenn das Sample nicht zu den eigenen Vorstellungen passt, 
ist das letztendlich ein fummeln an den Descriptor Tabellen mit der dazu 
passenden Ergänzung des Codes - und hier schaffe ich es noch sehr 
zuverlässig, Nicht-Funktionialität einzubauen... :-)

Zu den Treibern: Das schöne bei HID ist ja, dass das standardisiert ist 
und nix installiert werden muss, die meisten OS bringen die Treiber 
dafür schon mit.

Gruß,
Hannes

von Konrad (Gast)


Lesenswert?

Vielen Dank für deine Einschätzung:

noch eine allgemeine Frage, weil ich mich grad mit den Report 
Descriptoren beschäftige: welchen USAGE Page und USAGE Wert muss man für 
einen Encoder und für einen Button verwenden?

Für Buttons hab ich mehrere Sachen in den USAGE Tabellen gefunden:
z.B. USAGE-PAGE (Consumer) und USAGE (Function Button 0x36)

von Hannes S. (Gast)


Lesenswert?

Tja... so genau habe ich die Usage Thematik auch noch nicht durchschaut 
und irgendwie habe ich auch im web noch nicht die Seite gefunden, die 
einem vollends die Erleuchtung verschafft. Auf usb.org finden sich zwar 
eine Menge Infos und auch das "HID Descriptor Tool" (dt.exe), in meinem 
Fall passt aber auch irgendwie nix so wirklich - und da das ganze 
sowieso nur eine Spielerei bei mir ist, habe ich das erstmal vertagt. 
Gegenwärtiger Stand ist: Ich mach alles Custom und dann funktioniert es 
halt nur mit eigener PC Software.

von Simon R. (Firma: Safety Control GmbH) (simon_r)


Lesenswert?

Hi,

> noch eine allgemeine Frage, weil ich mich grad mit den Report
> Descriptoren beschäftige: welchen USAGE Page und USAGE Wert muss man für
> einen Encoder und für einen Button verwenden?

guck' doch mal bei "USB in a NutShell".
http://www.beyondlogic.org/usbnutshell/usb5.htm#ConfigurationDescriptors

Sehr zu empfehlen ist auch das "USB 2.0 Handbuch für Entwickler" von Jan 
Axelson (ISBN 3826616901).

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.