-
        

Ergebnis 1 bis 4 von 4

Thema: wie USB-Geräte ohne PC auswerten und in eigene HW integrieren?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von engineer
    Registriert seit
    24.01.2005
    Ort
    Raum Frankfurt
    Beiträge
    268

    Idee wie USB-Geräte ohne PC auswerten und in eigene HW integrieren?

    Anzeige

    Ich habe nun insgesamt drei Anforderungen, käufliche USB-Geräte an meine eigene Hardware anzuschließen und Suche nach einer Möglichkeit, das kostengünstig und ohne großen Entwicklungsaufwand zu bewerkstelligen.

    Anzuschließende Geräte wären primar Touch Screens, Keyboards und Mäuse.

    Unter "Touch Screen" verstehe ich hier nicht ein Einzeldisplay, sondern den USB-Datenstrom, der von den typischen FERTIGEN TouchMonitoren zum Anschluss an PCs geliefert wird.

    Unter "Keyboard" verstehe Ich neben Computer-Keyboards vor Allem MIDI-Keyboards, also sogenannte Masterkeyboards zur Steuerung von Klangerzeugern im Tonstudio. Hierbei geht es konkret um die, welche keine MIDI-Schnittstelle mehr haben, also ohne das klassische MIDI-TRIO (3 Din Buchsen) daherkommen und alles über USB-MIDI machen.

    Dazu gfs auch Mäuse, wobei es hier nicht um die Emulation von PS/2 geht, was Ich ja kann, sondern wirklich das USB-Protokoll.

    Der Anschluss soll an FPGAs erfolgen, bei denen Ich momentan über eigenes MIDI, selbstgebaute Tastaturen, selbstgebaute Controller mit eigener Interpretation der Drehenencoder sowie über Computer-Mäuse und Computer-Tastaturen arbeite, die alle mit PS/2 laufen.

    Das Problem ist, das diese USB-Geräte alle passiv sind, also Slaves und damit einen host benötigen, der die Interlligenz besitzt und das Protokoll macht. Die Geräte haben typisch immer einen Treiber dabei, den ich natürlich nicht verwenden kann. Ich müsste also das USB aufs FPGA bringen, was als slave einfach ist, aber als host enorm aufwändig!

    Stattdessen gibt es aber einige Berichte, das USER über programmierbare Plattformen wie Arduino sowas angegangen sind und teilweise realisiert haben (wollen!) Real funktionierendes gefunden habe Ich indes noch nicht!

    Daher die Frage: Hat hier jemand schon mal ein solches USB-Gerät an seinen ROBI oder eine andere APP angeflanscht? Da es dafür einen kommerziellen Bedarf gibt, wäre da auch finanziell Spielraum. Interessenten und Abnehmer wären vorhanden. Im Idealfall soll auch ein Seaboard implementiert werden. Sobald das USB als solches läuft, könnte man mit einem sniffer die Responses abfangen und interpretieren.

    - - - Aktualisiert - - -

    Noch ein Nachtrag:

    Der Hintergrund der Thematik ist neben Tempo (MIDI über die alte Schnittstelle ist extrem langsam und damit) auch Verfügbarkeit: Viele moderne Geräte sind nur noch mit USB-MIDI ausgestattet, um einerseits Kosten zu sparen und andererseits fein genug agieren zu können, denn nur mit dem dichten Datenstrom im USB-MIDI sind sogenannte breath controller im Bereich Gitarren und Blasinstrumente überhaupt sinnvoll nutzbar. Spezialgeräte wie das "Roli Seaboard" oder auch Theremine sind nur über USB zu erreichen und auch bei Tastaturen und Mäusen kann man neue Kunden schlecht auf PS/2 verweisen.

    Adapter funktionieren in der Angelegenheit nicht:

    - Eine über USB-zu-PS2 angeschlossene USB-Maus funktioniert (getestet) nicht am rudimentären PS2-Port. Der PC scheint da etwas mehr zu tun, als nur PS/2-Protokoll.
    - USB zu Seriell Converter lösen das Problem ebenfalls nicht, weil nur in die eine Richtung der PC über USB auch Seriell treiben kann, um serielles Equipment wie alte Mäuse etc anzudocken. Umgekehrt geht es logischerweise nicht.
    - USB-Hubs funktionieren bei vielen USB-Geräten nicht, weil der PC nur EIN Gerät erkennt. Auch daher soll mein Gerät in der Lage sein, mehrere USB-Geräte zu bedienen, deren Informationen zu mischen und wieder auszugeben.

    Ideen und Tipps erbeten. Gut wäre eine programmierbare Plattform, die man über eine einfache Schnittstelle ansprechen kann, das USB-Thema erledigt und die Daten in einfacher Weise zum Abholen bereitstellt. Es fungiert dann beiden Teilnehmern gegenüber als Master oder zumindest als Aktiver!

    Natürlich kann man sowas in einem FPGA machen, aber der hier vorgezeichnete Weg ist ein FPGA mit einem Softcore, also einer virtuellen CPU oder einem Hardcore, bzw ein Kombisystem wie Zynq, auf dem dann Linux installiert wird und eine host APP läuft. Das ist mir aber zu aufwändig und für die benötigte Bandbreite definitiv Verschwendung.
    Geändert von engineer (30.12.2016 um 03:18 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Das einfachste wäre ein RaspberryPi.
    Ist zwar etwa "übermotorisiert" für die Aufgabe, läuft aber mit Linux. Somit werden
    alle USB-Geräte, zu welchen es einen Linuxtreiber gibt, auch unterstützt.

    Etwas Software musst du dann noch für das Interface zu deinem FPGA schreiben.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Hallo,

    kann ich das so richtig zusammenfassen, dass du eine einfache Hardware suchst, die zwei USB-Host Schnittstellen hat ? Eine in Richtung FPGA, die andere in Richtung der anzuschliessenden Geräte.

    Ich würde den Vorschlag von Peter ein klein wenig abwandeln und den Beaglebone Black ins Auge nehmen. Der da verwendete Texas Instruments Controller hat 2 x USB. Die Chips gibt es im Gegensatz zu dem vom Raspi auch einzeln. Oder auch als kleines SMD-Modul
    http://beaglecore.com/
    Darauf laufen viele gängige Linux Distributionen, man kann auch über TI Starterware bare metal programmieren, das dürfte für einen USB-Host aber Arbeit machen.
    Es gibt davon auch größere Chips, mit USB 3.


    Es gibt mittlerweile sogar Arduino kompatible Boards, die als zwei USB-Hosts funktionieren könnten. Ich schreibe könnten, weil die Software noch in den Anfängen steckt. Beispiel Teensy 3.6, der verwendete NXP Kinetis K66 hat 2 USB-Schnittstellen:
    http://pjrc.com/store/teensy36.html
    Es gibt eine Alphaversion einer Library die bei allen Teensy 3.x den normalen Micro-USB Anschluss als Host betreiben kann. Zusätzlich hat der 3.6 den zweiten USB auf den 5 Kontakten links neben dem Controllerchip auf der Platine. Dafür liegt die Software aber noch in den ersten Zügen, das Board gibt es ja erst ein paar Wochen.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von engineer
    Registriert seit
    24.01.2005
    Ort
    Raum Frankfurt
    Beiträge
    268
    Hallo, nein, der FPGA braucht kein USB. Das Thema ist nur aufgekommen, weil die Geräte, die Ich anschließen will, USB haben.


    Es geht nur darum, möglichst mehrere Geräte an einen oder mehrere USB-Ports eines Zwischensystems zu bringen und von da elegant in den FPGA.


    Beim PC ist es so, dass er offenbar Geräte meistens unterscheiden kann, konkret MIDI-Controller und man sie an einem Hub arbeiten lassen kann, sofern der den Strom bringt.


    Nun braucht es irgendwas Einfaches, um das USB auszuwerten und in den FPGA zu bekommen.


    RasPI wird es wohl werden, wie es scheint. Der könnte dann auch noch ein paar andere Sachen machen.

Ähnliche Themen

  1. Optischen Drehencoder auswerten ohne Interrupt?!
    Von Janiiix3 im Forum C - Programmierung (GCC u.a.)
    Antworten: 15
    Letzter Beitrag: 14.09.2014, 20:29
  2. Winkelgeschwindigkeit Integrieren
    Von Tomatenbaum im Forum Software, Algorithmen und KI
    Antworten: 15
    Letzter Beitrag: 13.06.2012, 21:40
  3. Verfuset ohne eigene Schuld?
    Von rehbär im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 30.12.2008, 17:58
  4. Gyrosignal integrieren?
    Von Hendrix85 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 04.01.2008, 18:04
  5. avr-gcc in MSVC integrieren
    Von hahoyer im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 07.07.2005, 10:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •