Forum: Mikrocontroller und Digitale Elektronik STM32 USB als individuelles Gerät (kein VCP)


von Sven (Gast)


Lesenswert?

Hallo,

ich nutze erfolgreich die USB Device Library für den STM32 F10x, derzeit 
im VCP Modus.
Ich hätte gerne eine Lösung, bei der sich mein Schaltung als 
individuelles USB-Gerät meldet, und nicht als eine 
Standard-Geräteklasse.

Die Beispiele von ST sind ja so gewählt, dass keine Treiber nötig sind: 
HID-Device, Audio-Device, Mass-Storage. Nur für den VCP stellt ST einen 
Windows Treiber zur Verfügung - aber letztendlich hat man damit auch 
kein individuelles USB-Gerät, sondern eben einen virtuellen Com Port.

Könnt ihr mir auf die Sprünge helfen wie ich ein eigenes Gerät 
entwickeln kann? Man braucht ja irgendeinen Treiber, der über eine API 
(.dll) den Zugriff auf das Gerät ermöglicht. Leider konnte ich keine 
Beispiele bei ST oder im Internet finden.

Welche USB Class letztendlich für die Übertragung verwendet wird, ist 
untergeordnet (am liebsten isochron Audio, aber auch CDC, DFU...) 
hauptsache das Ding taucht im Gerätemanager als eigene USB Hardware auf.

Danke, Sven

von Archie F. (archie)


Lesenswert?

USB Treiber zu programmieren ist nicht so einfach.
Schaue dir Jungo ( http://www.jungo.com/st/wdusb.html )an. Kostet aber 
was. Ich glaube es gibt eine Demoversion, so kann man sich schon einen 
Eindruck machen, wie solche Treiber aussehen.

MfG

von Christian R. (supachris)


Lesenswert?

Du musst keinen USB Treiber programmieren. Du kannst einfach ein Gerät 
machen mit beliebigen Endpoints, und eine vendor-specific class und 
darauf mit LibUSB oder WinUSB zugreifen. Das sind generische USB 
Treiber. Wobei ich perönlich mehr zu WinUSB tendieren, einfach weil der 
in jedem Windows seit XP SP2 drin ist und signiert, also auch für x64 
ohne Klimmzüge machbar. geht aber mittlerweile bei der LibUSB wohl auch. 
Über diese Treiber/DLL kannst du dann einfach Böcke an die Endpoints 
schreiben oder von denen lesen. Ist total einfach. Isocron geht aber mit 
WinUSB nicht. Würde ich auch nicht machen, denn da hast du keine 
Datensicherheit.

von Sven (Gast)


Lesenswert?

Besten Dank, die Sache mit der libUSB klingt sehr interessant. Das werd 
ich mir mal reinziehn.

ps. ja ich weiss dass isochron keine Datensicherheit gewährleistet, aber 
die garantierte Bandbreite wäre ein Vorteil.

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.