Hallo, Ich hab ein neues Projekt gestartet und brauche Hilfe um vorran zu kommen da es Neuland für mich ist. Ich will über ein Digitalpiano (Yamaha) eine LED-Kette beleuchten die mit den angeschlagenen Noten jeweils für verschiedene LED's in der Kette aufleuchtet. Der Part ist nicht das Problem (mit dem Arduino hab ich das schon hinbekommen, dazu musste der Arduino allerdings dauerhaft an den PC angeschlossen sein). Nun will ich ein Board bauen dass die Mididaten des Pianos über USB einließt und den LED-Strip somit ansteuert. Informiert habe ich mich schon über das MIDI-USB Protokoll, allerdings weiß ich nicht wie ich ich eine serielle Datenübertragung über USB an den PIC weitergebe. Wie gesagt das ist Neuland für mich. Ich benutze den PIC18F14K22 der besitzt serielle Schnittstellen. Meine Frage nun: Wie lese ich über den PIC die Daten über USB aus? Brauche ich einen externen Chip dazu? Sollte ich mir einen PIC kaufen der USB direkt auslesen kann? Wie löse ich das Problem am elegantesten? Mfg Markus
:
Bearbeitet durch User
Markus L. schrieb: > Meine Frage nun: Wie lese ich über den PIC die Daten über USB aus? Du brauchst einen USB-Host. Die meisten µCs mit USB-Unterstützung sind nur USB-Devices, keine USB-Hosts. Es gibt USB-Host-Controller, die man über eine serielle Schnittstelle o.ä. an einen µC anschließen kann, ein bekanntes Beispiel ist der "Vinculum" VNC1L von FTDI. Insgesamt: Das ist nicht trivial. Dein Klavier hat keine normale MIDI-Buchse (5polig, DIN)?
Ok dann informier ich mich dazu mal. Das Klavier besitzt nur eine Usb-B Buchse für den Midi Ausgang. Und wieso besitzt ein Arduino Uno beispielsweise kein UsbHost chip?
:
Bearbeitet durch User
Markus L. schrieb: > Und wieso besitzt ein Arduino Uno beispielsweise kein UsbHost chip? Weil so etwas Geld kostet, so etwas nicht jeder benötigt und die zur Ansteuerung des USB-Host erforderliche Software nicht trivial ist.
Ok. Kann man also jedes Beliebige Usb to serial Board nehmen? Würde dann auch so etwas gehen?(auch wenn es für den Arduino ist)? http://m.ebay.de/itm/FT232RL-3-3V-5-5V-FTDI-USB-to-TTL-Serial-Adapter-Module-Arduino-Port-DE-TE321-/401110610684?nav=SEARCH
Markus L. schrieb: > Kann man also jedes Beliebige Usb to serial Board nehmen? Nein. Kein einziges. USB-to-Serial sind USB-Devices, die man an einen USB-Host anschließt. Du aber brauchst einen USB-Host. Wie Deinen PC, der ist ein USB-Host. Und deswegen kannst Du Dein Klavier auch an den PC anschließen. USB-Devices aber können miteinander nichts anfangen, die brauchen zwingend einen Host, um zu funktionieren. Mit einem USB-Serial-Adapter kannst Du auch keine USB-Sticks auslesen.
Nimm einen Raspi. Der ist klein, hat einen USB-Host und kostet nur ca 35 Euro. Und man kann einfach einen Arduino anschliessen. Dann muss da nur noch die Software geschrieben werden.
Rufus Τ. F. schrieb: > Der Threadstarter will einen PIC verwenden, keinen Arduino. Ja deswegen, man will ja auch etwas bei so einem Projekt lernen. Usb Hosts sind alle nicht so günstig, wenn es nicht anders geht gebe ich auch 20€ für das Board mit dem VNC1L aus. http://de.farnell.com/ftdi/vdip1/entwicklungsmodul-f-r-vnc1l/dp/1329313 Angenommen ein Laie wie ich kauft das Ding, welches Interface davon (Uart,Spi,etc), verwendet denn ein Laie wie Ich am besten mit dem PIC?
Markus L. schrieb: > welches Interface davon (Uart,Spi,etc), verwendet denn ein Laie wie Ich > am besten mit dem PIC? Das, mit dem Du bereits Erfahrungen gesammelt hast und das schnell genug ist, um die Anforderungen zu erfüllen, die Deine Anwendung stellt - die MIDI-Nutzdaten kommen mit 31.25 kBaud, der Protokolloverhead für die Ansteuerung des USB-Hosts kommt dazu, so daß Du eine doch deutlich höhere Baudrate brauchen wirst, wenn Du UART verwendest. Es gibt übrigens auch (exotische) USB-zu-MIDI-Interfaces: http://www.kentonuk.com/products/items/utilities/usb-host.shtml Letztlich ist das, was Du mit dem USB-Host anstellen willst, /genau das gleiche/.
Es gibt PICs mit USB OTG. Ob man damit Host spielen kann, so dass das Piano funktionier? Schwierig. Hast du denn keine normale MIDI-Schnittstelle? Das sollte deutlich einfacher sein, denke ich.
Hurra schrieb: > Ob man damit Host spielen kann, so dass das Piano funktionier? Dafür wäre so etwas da. Erklärender Einschub für den Threadstarter: USB OTG ("on the go") ist ein USB-Gerät, das sowohl Device als auch Host sein kann. Ein PIC mit OTG-Funktionalität wäre also funktional gleichbedeutend mit einem PIC mit angeschlossenem USB-Host-Controller. Die Software dafür ist aber nicht trivial (grundlegender USB-Stack und darauf aufsetzend USB-Midi-Unterstützung), keine Übung für Programmieranfänger.
Hurra schrieb: > Es gibt PICs mit USB OTG. Ob man damit Host spielen kann, so dass das > Piano funktionier? Schwierig. > > Hast du denn keine normale MIDI-Schnittstelle? Das sollte deutlich > einfacher sein, denke ich. Nein eine normale Schnittstelle gibt es nicht, nur USB.
Markus L. schrieb: > Hurra schrieb: >> Es gibt PICs mit USB OTG. Ob man damit Host spielen kann, so dass das >> Piano funktionier? Schwierig. >> >> Hast du denn keine normale MIDI-Schnittstelle? Das sollte deutlich >> einfacher sein, denke ich. > > Nein eine normale Schnittstelle gibt es nicht, nur USB. Hmm. Also mit Host habe ich keine Erfahrung, aber USB-OTG-PICs hab ich schon verwendet, natürlich auch mit USB. Es gibt Beispiele von Microchip: http://ww1.microchip.com/downloads/en/AppNotes/01141a.pdf http://www.microchip.com/doclisting/TechDoc.aspx?type=CodeExamples Ich würde mir das mal ziehen, und schauen, wie komplex das ist. Folgende PICs mit OTG fallen mir ein: PIC32MX470F512H - ein ziemlich mächtiger 32-Bitter PIC24FJ128GC010 - ein 16-bitter mit viel Peripherie Natürlich gibts weitere. Ich würde mal mit den Beispielen von Microchip starten, und schauen, wieviel Flash man braucht und welches Device am günstigsten ist. Und ob das überhaupt realisierbar ist. Eine Warnung: Die Microchip-USB-Stacks sind NICHT leichtverständlich. Für PIC32 wäre noch zu sagen: Harmony ist Geschmackssache aber inzwischen fast zwingend. Sollte man sich vorher ansehen.
Na Gut, dann bedanke ich mich für die vielen Antworten und stürze mich erstmal in Literatur zum dem ganzen Thema, Ich weiß ja jetzt grob wo es hingeht. Mfg Markus
Rufus Τ. F. schrieb: > MIDI-Nutzdaten kommen mit 31.25 kBaud, der Protokolloverhead für die > Ansteuerung des USB-Hosts kommt dazu, so daß Du eine doch deutlich > höhere Baudrate brauchen wirst, wenn Du UART verwendest. Sicher? Ich dachte immer über USB-MIDI kommt mehr und in höherer Rate. ?
> Ich dachte immer über USB-MIDI kommt mehr und in höherer Rate.
Brilliant beobachtet.
Eine Baudrate wie fuer ein serielles Midiinterface ist
bei USB natuerlich nicht relevant.
Audiomann schrieb: > Ich dachte immer über USB-MIDI kommt mehr und in höherer Rate. Es ist theoretisch möglich. In der Praxis bemühen sich viele Geräte, die serielle MIDI-Geschwindigkeit im Durchschnitt nicht zu überschreiten.
Für die PIC32 gibt's im Harmony ein "Audio v1.0 Host Client Server". Ob damit auch MIDI gemeint ist?
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.