www.mikrocontroller.net

Forum: PC-Programmierung HID - Geräteklassen


Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine kleine Frage bezüglich der HID-Klassen beim USB. In einem 
Projekt habe ich einen "MIDI-Sender". Jetzt habe ich gelesen das es auch 
ein spezielles USB-MIDI Protokoll gibt, sowie die dazugehörige HID. Habe 
mir auch schon das Dokument auf USB.org soweit durchgelesen, nur 
erschließt sich mir der Zusammenhang z.b mit Windows noch nicht ganz. 
Was passiert wenn ich einen mit den passenden Descriptoren 
programmierten USB-Mikrocontroller an den USB hänge? Erkennt mir Windows 
eine Midi Schnittstelle, die ich in versch. Programmen verwenden kann 
oder muss ich noch einen Treiber aufsetzen?

Autor: ich&er (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du gemäß der spezifikation entwickelst sollte es keine probleme 
geben, da die verschiedenen klassen im windows-treiber ja bereits 
implementiert sind. windows sollte demnach dein gerät als usb-midi 
erkennen - die klasse selbst ist ja sowieso nur ein wert im descriptor 
definiert wie du richtig festgestellt hast, was du dann nachher mit 
deinem gerät anstellst ist ja dann nicht mehr sache des usb-treibers 
ansich...
vll erklärst du kurz was du mit "midi-sender" meinst...ein stück 
hardware, dass midi-daten "ausgibt", die du dann via usb richtung 
windows-pc (host) verschicken willst?

Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau,

ich bin grad an der Planungsphase für ein Gerät zur Steuerung einer 
MP3-DJ Software. Dieses Gerät gibt seine Steuerinformationen via MIDI an 
die Software weiter. Die Software wiederrum kann auch Befehle an das 
Steuergerät senden (LED's schalten).

Autor: ich&er (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zitat wikipedia:
Erwähnenswert ist es, dass sich das USB-MIDI-Protokoll vom herkömmlichen 
MIDI-Protokoll unterscheidet. Nachzulesen im midi10.pdf auf www.usb.org 
Kapitel 4 USB-MIDI Event Packets.
ich kenn mich in sachen USB nur in der mass storage class halbwegs aus, 
da kann ich mich drauf verlassen, dass die sachen laufen, wenn man sich 
an die spezifikationen hält. was mich jetzt ins grübeln bringt ist der 
oben zitierte satz, dass sich die protokolle offensichtlich ja 
unterscheiden...dann müßte ja demnach der treiber von windows die daten 
soweit "aufbereiten" dass das programm unabhängig davon ob's "echtes" 
midi oder usb-midi ist klar kommt...dazu schon was gelesen?

Autor: ich&er (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
letztendlich willst du einen usb-midi-converter basteln, richtig ? :-)

Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau, ich will mir halt nur einen Zwischenschritt sparen. MIDI ist für 
mich kein Problem, nur die Integration in die USB Ebene.

Autor: ich&er (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zwischenschritt?

hast du denn den byte-strom mit den midi-daten schon irgendwo vorliegen?
die ansprache eines einzelnen midi-devices scheint mir wenn ich das so 
sehe schon mal gar nicht so trivial zu sein (laut class specs).

du müßtest ja auf jedenfall den usb-device-controller mit den 
informationen füttern, die die usb specs für die midi class erfordern 
(stehen ja in den midi specs widerum), die enumeration ist ja der erste 
schritt, ganz gleich welche daten man verschickt. wenn die richtig 
durchgeführt wird, sollte windows zb erstmal ein usb-midi-device 
anzeigen. offensichtlich müssen nach der enumeration 4 endpoints 
deviceseitig bereitgestellt werden -> seite 12, midi specs.

welches usb controller hast du dir denn ausgesucht?

Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen bestimmten habe ich noch nicht, aber ich tendiere zu den 
AT90USB.... Controllern von Atmel. Das mit dem weiteren vorgehen habe 
ich auch schon gesehen bzw. nur überflogen. Werd mich wohl erst mal 
hinsetzen dürfen und ein bisschen übersetzen ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.