STM32CubeIDE USB mehrere Endpunkte

Persönliche Seite #7591856
Lesenswert?
• ▲
▼

Harald L. schrieb:

Geht schon, aber eben leider nicht mit CubeMX.

Das geht so halb - man kann sich mit CubeMX ein Projektsetup für eine Klasse generieren, den erzeugten Code rauskopieren, dann die andere Klasse auswählen, wieder den Code rauskopieren, und dann wieder keine Klasse auswählen. Dann den zuvor gesicherten Code wieder reinkopieren. Natürlich muss man dann die beiden Klassen unter einen Hut bringen und entsprechend registrieren. Nicht wirklich straight-forward.

#7591859
Lesenswert?
• ▲
▼

Niklas G. schrieb:

Das geht so halb - man kann sich mit CubeMX ein Projektsetup für eine Klasse generieren, den erzeugten Code rauskopieren, dann die andere Klasse auswählen, wieder den Code rauskopieren, und dann wieder keine Klasse auswählen. Dann den zuvor gesicherten Code wieder reinkopieren. Natürlich muss man dann die beiden Klassen unter einen Hut bringen und entsprechend registrieren. Nicht wirklich straight-forward.

Genau so! Aber das ist alles Andere als trivial.

Persönliche Seite #7591864
Lesenswert?
• ▲
▼

Harald L. schrieb:

Genau so! Aber das ist alles Andere als trivial.

Jup! Ein ähnlicher Eiertanz ist nötig wenn man eine eigene "vendor specific" Klasse umsetzen möchte. Echt ärgerlich, weil das wäre in CubeMX sehr einfach umsetzbar, die Library unterstützt es sowieso, aber ST macht es unnötig kompliziert. Wollte eigentlich mal nen Artikel schreiben wie das geht, aber die liebe Zeit...

PS: Das ist doch garantiert wieder kein echtes Speichermedium, und der CDC-ACM mappt nicht auf ein echtes 56k-Analogmodem, da werden doch bestimmt wieder Standard-Klassen für was anwendungsspezifisches missbraucht - vielleicht wäre es sinnvoller ein ganz eigenes anwendungsspezifisches Protokoll umzusetzen? Seit Win7 braucht man dazu keine Treiber mehr.

#7592368
Lesenswert?
• ▲
▼

Ada J. Quiroz schrieb:

Also entnehme ich den Antworten, dass es irgendwie hinbekommen muss beiden generierten Code von CDC und MSD gleichzeitig laufen zu lassen.

Ja es geht schon, grundsätzlich. Ich hatte mal ein Composit-Device mit CDC, HID Tastatur und HID Maus gemacht, was schlussendlich super funktioniert hat. Aber das hat mich viele Tage herumdoktern gekostet. Das Hauptproblem waren die verschiedenen USB-Deskriptoren, welche man zusammenführen muss und exakt stimmen müssen, denn sonst werden die Geräte/Endpoints dann beim einstecken nicht erkannt. In den USB-Deskriptoren ist alles sehr generisch aufgebaut, was zwar eine riesen Flexibilität ermöglicht, aber es auch sehr kompliziert macht. https://www.beyondlogic.org/usbnutshell/usb5.shtml

Persönliche Seite #7592391
Lesenswert?
• ▲
▼

Ada J. Quiroz schrieb:

Also entnehme ich den Antworten, dass es irgendwie hinbekommen muss beiden generierten Code von CDC und MSD gleichzeitig laufen zu lassen.

Jup. Erzähl doch mal mehr darüber was du genau machen möchtest.

PS: Witzig ist dass auch der ST-Link mehrere Geräteklassen unterstützt, dessen Code können die also auch nicht per CubeMX generieren...

Johnny B. schrieb:

Das Hauptproblem waren die verschiedenen USB-Deskriptoren, welche man zusammenführen muss

Ja, insbesondere die IAD-Deskriptoren um ein Composite-Device zu erstellen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.