Forum: Mikrocontroller und Digitale Elektronik STM32F2 - USB HID


von user (Gast)


Lesenswert?

Guten Morgen,

auf dem STM32F2 wird die USB Schnittstelle benötigt. Hiefür wurde der 
Quellcode "STM32_USB-Host-Device_Lib_V2.1.0" von der STMicroelectronics 
Seite heruntergeladen. Auf der PC Seite soll der Zugriff via USB auf den 
STM32F2 erfolgen. Dafür wird eine Win32 Application in C benötigt. 
Welche DLL kann dazu verwendet werden ?

von Uwe B. (derexponent)


Lesenswert?

Hi user,

du schreibst doch "HID" dann würde ich mal die "hid.dll" vorschlagen

Gruss Uwe

von Lothar (Gast)


Lesenswert?

Hier gibt es Beispielprogramme z.B. in Visual Basic .NET:

http://www.lvr.com/hidpage.htm

von Klaus (Gast)


Lesenswert?

user schrieb:
> Dafür wird eine Win32 Application in C benötigt.
> Welche DLL kann dazu verwendet werden ?

Die ahid.dll von http://www.embedded24.net kannst Du für C verwenden.

Und für Matlab, C#, LabVIEW, VB, Scilab, C++/CLI gibt es auch Beispiele.

von user (Gast)


Lesenswert?

Auf dem Evaluationboard STM3220-eval befindet sich ein USB_OTG_FS 
Anschluss und ein USB_OTG_HS Anschluss. Jetzt habe ich im Netz noch ide 
USB Applikation "STM32_USB-FS-Device_Lib_V4.0.0" gefunden. Prinzipiell 
möchte ich Daten vom Evaluationboard via USB an den PC senden bzw. 
empfangen können.

von Uwe B. (derexponent)


Lesenswert?

Was du vor hast wissen wir schon...
was wir nicht wissen ist, mit was (bzw. bei was)
du unsere Hilfe brauchst

der STM hat eine (bzw. zwei) USB-Schnittstellen
die Files die du runtergeladen hast, enthalten Beispiele
für USB-HID, USB-CDC usw.
es wurden dir auch schon für die PC Seite
Beispiele genannt

mit all diesen Beispielen kann man Daten zwischen
dem PC und der CPU senden/empfangen

also was fehlt jetzt noch ?

Gruss Uwe

von user (Gast)


Lesenswert?

Leider bekomme ich keine Verbindung zu meinem PC zustande. Folgende 
Beispielapplikation habe ich bei mir am Laufen:

STM32_USB-Host-Device_Lib_V2.1.0 --> Project --> USB_Device_Examples 
-->HID

von Uwe B. (derexponent)


Lesenswert?

1. wird das HID-Device im Gerätemanager an deinem PC angezeigt

2. stimmt die VID/PID ?

3. ist das PC-Programm von dir oder benutzt du ein fertiges
   (z.B. von STM) das schon getestet ist

von user (Gast)


Angehängte Dateien:

Lesenswert?

Im Gerätemanager kann ich das Gerät nicht erkennen. Laut readme.txt 
Datei soll ich die VID und PID Nummer von der HID konformen Maus 
übernehmen.
In der "usbd_desc.c" Datei habe ich diese beiden Nummern verändert.
1
//#define USBD_VID                     0x0483
2
//#define USBD_PID                     0x5710
3
4
#define USBD_VID                      0x046D
5
#define USBD_PID                      0xC050

Das Windowsprogramm ist nicht von mir und auch nicht von STM. Von STM 
konnte ich keine WIndows Applikation finden. Ich habe einige andere 
verwendet, ohne Erfolg.

von user (Gast)


Lesenswert?

Die USB Libraray "libusb-win32" möchte ich nun installieren. Allerdings 
weiß ich nicht, welchen USB Anschluß bzw. VID /PID genutzt werden kann.

von Uwe B. (derexponent)


Lesenswert?

Also ich weis ja immer noch nicht was du genau vorhast
bzw. in wie weit du dich mit USB auskennst
aber der Screenshot zeigt das dein Device
als "USB-MAUS" erkannt wurde
(und dann von Windows auch so behandelt wird)

du könntest damit z.B. mit der CPU
den Mauscursor auf dem Screen bewegen

aber "Daten austauschen" mit einem zweiten PC-Programm
(von dir oder von jemand anderen) wird damit nicht funktionieren

was du brauchst ist ein reines HID-Device
(also keine Maus oder Keyboard oder Wechseldatenträger usw)

bei den STM-Beispielen gibt es z.B. eine "Custom_HID"

so wie ich das überflogen habe, registriert die sich
mit einem IN und einem OUT Endpoint und kann zwei Datenbytes
übertragen

damit könntest du mit einem PC-Programm Daten (zwei Bytes) austauschen

>Allerdings weiß ich nicht, welchen USB Anschluß bzw. VID /PID
>genutzt werden kann.

die VID und PID kannst du (theoretisch) selbst festlegen,
sie darf nur nicht doppelt sein im System

ich würde sie zum testen so lassen wie sie sind, also :
VID = 0x0483 = STMicroelectronics (0x046D ist übrigens Logitech)
PID = 0x5710

solange du deine Software nicht verkaufen willst, spielen diese
beiden Werte aber keine Rolle.
Sie müssen nur in der CPU und im benutzten PC-Programm gleich sein

Gruss Uwe

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.