Forum: Mikrocontroller und Digitale Elektronik Von USB HID zu USB 2.0


von Tine (Gast)


Lesenswert?

Hallo zusammen,

ich habe mein STM32 per USB_HID an mein PC angeschlossen. Doch die 
Datenübertragung von 64kByte/s sind für mich zu langsam 
(Interrupt-Transfermodus).

Ich will es mit USB_HS realisieren. Außer einen speziellen Treiber für 
die USB-High Speed und den Bulk-Transfer muss ich nichts ändern oder?

D.h. das USB-High Speed Protokoll mit den Daten kann genauso gut mit den 
USB-HID Datenprotokoll kommunizieren. Habe ich das so richtig 
verstanden?

Gruß Tine

von Clemens L. (c_l)


Lesenswert?

Der HID-Treiber auf dem PC läuft nur im Interrupt-Transfer-Modus.

Für High Speed musst du ein Protokoll wie CDC implementieren, oder das 
Gerät direkt mit WinUSB ansprechen.

von Jim M. (turboj)


Lesenswert?

Tine schrieb:
> Datenübertragung von 64kByte/s sind für mich zu langsam
> (Interrupt-Transfermodus).

USB 2.0 HS ist da IIRC nicht wesentlich schneller.

Ab Windoof 8.1 ist USB CDC in Windows enthalten, und STM sollte da 
eigentlich sogar Beispielcode für haben. Das sollte - bei entsprechender 
Programmierung - bis 1 MByte/sec bei Full Speed reichen. Windows <= 7 
braucht noch ein .inf File.

von aSma>> (Gast)


Lesenswert?

Servus,
welchen µC hast du genau? Manche china boards haben einen falschen 
pullup.

mfg

von Tine (Gast)


Lesenswert?

Vielen Dank für eure schnellen Antworten.

Jim M. schrieb:
> USB 2.0 HS ist da IIRC nicht wesentlich schneller.

Was ist IIRC? Google sagt mir das ist die Abkürzung für International 
Integrated Reporting Committee oder eine Schreibweise im Chat. ^^

Jim M. schrieb:
> Ab Windoof 8.1 ist USB CDC in Windows enthalten

Das ist mir bekannt. Aber ich möchte nicht einen virtuellen Comport 
einrichten. Ich weiß es gibt sogar einen VirtualComPort-Treiber von ST. 
Ich will das Verständnis zu USB-HS erlernen.

aSma>> schrieb:
> welchen µC hast du genau?

Ich habe einen STM32F407VGT6.

Nach einer weiteren Recherche habe ich herausgefunden, dass das 
Protokoll von USB HID und USB HS an sich identisch ist und die 
Datenframes auch so weitgehend übernommen werden kann.
Ich habe schon viele Schnittstellen (CAN, SPI,...) realisiert, mich aber 
noch nie an das komplexe USB herangetraut.
Mit Hilfe einem Beispielprogramm habe ich es geschafft via c#-Oberfläche 
auf mein STM32 zuzugreifen, an dem wiederum ein Temperatursensor und ein 
Pieper angeschlossen ist. Nun will ich schneller an die Daten kommen und 
auch den Pieper mit USB-HS ansteuern.

Ich komme nicht drum herum die Logik des Programms zu ändern, dass 
dieser nicht mehr mit dem USB HID von Windows kommuniziert, sondern mit 
einem speziellen USB Treiber. Oder?

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.