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?
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?
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).
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?
Genau, ich will mir halt nur einen Zwischenschritt sparen. MIDI ist für mich kein Problem, nur die Integration in die USB Ebene.
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?
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 ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.