Wie aufwändig ist es, ein USB protokoll in VHDL zu schreiben um einen Synthesizer zu steuern? Ich möchte ein USB-Keyboard auslesen und die Tasten interpretieren.
Sehr aufwändig. Lieber mit einem uC USB auswerten/steuern und dann zum FPGA über SPI/UART/I2C, alles andere ist Murks. Kest
Ohne IP Cores viel zu aufwendig...nimm da lieber etwas richtung raspberry pi mit fertigem USB stack
Wenn du eine PS2 Tastatur hast wäre das viel einfacher (falls die Alternative besteht).
Cle schrieb: > Wenn du eine PS2 Tastatur hast Ich vermute sehr, dass mit "USB-Keyboard" etwa sowas gemeint war: http://www.procenter-music.de/AKAI-LPK-25-USB-Keyboard-Controller Und ich würde ststtdessen einfach eine MIDI-Tastatur vorschlagen. Das kann jedes halbwegs bessere USB-Keyboard auch ausgeben und es könnte der Synthesizer auch von anderen MIDI-Keyboards und Synthesizern angesteuert werden.
:
Bearbeitet durch Moderator
Das MIDI Keyboard habe ich schon implementiert, es geht jetzt in der Tat um die neuen Masterkeyboards mit USB2 Schnittstelle, denn die haben ein schnelleres und besseres MIDI Protokoll.
Rolf Sassinger schrieb: > Wie aufwändig ist es, ein USB protokoll in VHDL zu schreiben um einen > Synthesizer zu steuern? Ich möchte ein USB-Keyboard auslesen und die > Tasten interpretieren. Sehr aufwendig. So 2002 habe ich mal FPGA-Implementationen evaluiert, die einen größeren Virtex-2 benötigten. Üblichersweise wird ein FPGA mit einem externen Chip (cypress-FX2 war sehr beliebt) USB-2 fähig gemacht. MfG,
Fpga Kuechle schrieb: > Üblichersweise wird ein FPGA mit einem externen Chip (cypress-FX2 war > sehr beliebt) USB-2 fähig gemacht. Der Fragesteller will ein Masterkeyboard an den FPGA anschliessen. Das heisst es wird hier nach einer USB Host Implementierung (Master) gefragt (oder mindestens On-the-go Fähigkeit). Weder der FX2 noch der neuere FX3 bieten sowas. Grössere Mikroprozessor Bastelboards (z. B. Raspberry Pi, Beagle Bone, die Allwinner Boards von Olimex oder die iMX6 basierten Boards) bieten USB Host. Mit AVR, FX2 etc. ist nur USB Client möglich.
Der FX3 kann schon Host, aber da gibts meines Wissens kein VHDL.Modell. USB Host in VHDL ist wirklich sehr viel Aufwand....
Christoph Z. schrieb: > Fpga Kuechle schrieb: >> Üblichersweise wird ein FPGA mit einem externen Chip (cypress-FX2 war >> sehr beliebt) USB-2 fähig gemacht. > > Der Fragesteller will ein Masterkeyboard an den FPGA anschliessen. Das > heisst es wird hier nach einer USB Host Implementierung (Master) gefragt > (oder mindestens On-the-go Fähigkeit). Stimmt, hab ich übersehen. Da Host aber nicht geringer im Aufwand ist als USB client bleibt der kern der aussage (Viel FPGA-Aufwand) erhalten. Wobei das problem bei Host meines Wissens weniger der hardwaremehraufwand ist, als die Software (wegen mehr Funktionalität (Arbitrierung-anstoß (enumeration))). > Grössere Mikroprozessor Bastelboards (z. B. Raspberry Pi, Beagle Bone, > die Allwinner Boards von Olimex oder die iMX6 basierten Boards) bieten > USB Host. Mit AVR, FX2 etc. ist nur USB Client möglich. Es stellt sich die Frage ob Host oder OTG gebraucht wird und um wieviel einfacher OTG ist. BTW, braucht das Keyboard dann einen USB-OTG-Stecker? MfG,
Christian R. schrieb: > Der FX3 kann schon Host, Wieder was gelernt, danke. Darf man den Host Modus auch Benutzen? Du hast ja mal geschrieben, der FX3 lässt sich nur mit dem ThreadX RTOS nutzen und nicht Bare-Metall, also kann ThreadX auch USB Host? Fpga Kuechle schrieb: > BTW, braucht das Keyboard dann einen USB-OTG-Stecker? Das Keyboard ist und bleibt Client. Das Gerät mit OTG Funktionalität (also das Gerät mit temporärer Host Funktionalität) hat eine OTG Buchse. So wärs gemäss Standard, in der freien Wildbahn sind auch Geräte mit OTG aber nur einer Client Buchse zu sehen.
Christoph Z. schrieb: > Darf man den Host Modus auch Benutzen? Du hast ja mal geschrieben, der > FX3 lässt sich nur mit dem ThreadX RTOS nutzen und nicht Bare-Metall, > also kann ThreadX auch USB Host? Klar, soweit ich weiß, wurde die Host-Funtkionalität aber erst später ins SDK aufgenommen, ich glaube sogar erst in der 1.3.x Version. Du kannst den FX3 natürlich auch ohne ThreadX nehmen, aber dann musst du halt alles zu Fuß machen...
Fpga Kuechle schrieb: > Üblichersweise wird ein FPGA mit einem externen Chip (cypress-FX2 war > sehr beliebt) USB-2 fähig gemacht. Wobei ich nicht so richtig sicher bin, ob und wofür eine mechanische Tastatur 480MBit/s zu übertragen hat. So schnell kann keiner irgendwelche Tasten drücken... Kest schrieb: > OT: "besseres" MIDI Protokoll? Was heißt das genau? Würde mich auch interessieren, was mit "besser" gemeint ist.
Naja, die HIDs sind ja alle Low- oder allerhöchstens Fullspeed. Und der FX2 ist eh nur USB Device, der kann keinen Host spielen.
Lothar Miller schrieb: > Fpga Kuechle schrieb: >> Üblichersweise wird ein FPGA mit einem externen Chip (cypress-FX2 war >> sehr beliebt) USB-2 fähig gemacht. Einen solchen Chip habe ich auf dem PCB drauf. Weiters gibt es noch die Möglichkeit, einen ARM ins Spiel zu bringen (Cyclone 5). > Wobei ich nicht so richtig sicher bin, ob und wofür eine /mechanische/ > Tastatur 480MBit/s zu übertragen hat. So schnell kann keiner > irgendwelche Tasten drücken... Solange sie on-/off überträgt ja, aber mittlerweie gibt es anschlagsdynamische Tastaturen, die den Druck und die Geschwindigkeit "analog" per Controller übertragen, statt einfach eine velocity Kurve im Synth zu benutzen. Das sind viel mehr Informationen. Und es geht auch um das Spielen in Echtzeit und damit das gleichzeitige Übertragen von Daten. Schau mal hier: Beitrag "MIDI Clock in MIDI Timecode wandeln" > Kest schrieb: >> OT: "besseres" MIDI Protokoll? Was heißt das genau? > Würde mich auch interessieren, was mit "besser" gemeint ist. http://www.usb.org/developers/devclass_docs/midi10.pdf http://www.midi.org/aboutus/projects.php
Rolf S. schrieb: > es geht jetzt in der Tat > um die neuen Masterkeyboards mit USB2 Schnittstelle, denn die haben ein > schnelleres und besseres MIDI Protokoll. Es gilt erst mal zu klären ob das Full oder Highspeed ist. Viele µC können kein Highspeed obwohl im Datasheet USB2 angegeben wird.
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.