Hallo miteinander! Ich versuche mich an dem 'usbHostSlave-Core' von opencores. Leider läuft die Inbetriebnahme der Hardware überhaupt nicht. Jetzt stellt sich die typische Frage: Liegt es an der Hardware, der Software oder an dem FPGA-Design... Hat zufällig jemand mal versucht den Core mit einem NIOS in Betrieb zu nehmen? Gruß Hohenloher
so... der Core läuft jetzt mit NIOS-II als Device-Logik. Ich gebe mich einfach als HID bei Windows aus, so ist das Treiberproblem auch aus der Welt geschafft :-)
Hallo Herr Hohenloher, schoen dass Sie Ihr Problem umschifft haben ohne dass ein Forumsleser helfen konnte oder musste. Ggfls. gibt es in Zukunft andere welche aufgrund der Suchfunktion in diesem Thread landen und nach einer Lösung suchen. Können Sie Ihr Problem und deren Lösung kurz schildern? Gruß Andreas
Hallo Andreas, ich habe eine bessere Idee: wenn sich jemand findet der auch an/mit diesem IP-Core arbeitet könnte man gemeinsam ein kleines Projekt aufziehen. Cool wäre es, wenn sich jemand mit Windows-Treibern auskennt! Wir könnten einen Core mit kompletter Tool-Chain entwickeln. Mal sehen ob sich mehr Interessenten dafür finden. Das Interesse an meinem Beitrag hielt sich ja bis jetzt doch sehr in Grenzen... Gruß Hohenloher
Naja, Windows Treiber müsste man nicht mal selber entwickeln. Dafür gibts ja die universellen Treiber wie LibUSB WIn32, WinUSB, easyUSB...
hallo! ich erstelle gerade ein design mit einem spartan 3A und wäre auch an einer implementierung einer usb schnittstelle interessiert. Besteht noch interesse an einer zusammenarbeit?
hi, Interesse besteht auf alle Fälle :-) Also, ich denke mal das man muss hauptsächlich am Device-Treiber (am besten für Microblaze und NIOS-II über Defines konfigurierbar) und der Windows-Seite arbeiten. Der USB-Core ist deswegen sehr interessant, da man nicht mal unbedingt einen USB-PHY benötigt. USB1.1 reicht sowieso für 99% aller Anwendungen. Ich habe leider keinerlei Erfahrungen mit einem solchen generischen Treiber für Windows. Wie geht man da vor? Gruß Hohenloher
Hallo zusammen, könnte hier libusb-win32 was für Euch sein? http://libusb-win32.sourceforge.net/ Ist ein generischer Treiber, und kann sich eigentlich mit jedem USB Device verbinden, so wie ich das verstehe. Der Treiber wird z.B. im OpenOCD Projekt benutzt um sich mit dem FT2232 Device oder einem J-Link zu verbinden. Beim FT2232 übernimmt noch eine zusätzliche Library die "Protokollumsetzung". Beim J-Link geht das dann direkt. Hier hat der Hersteller das USB-Protokoll seines Devices veröffentlicht. Da Ihr das USB-Device selber erstellt, kennt Ihr auch das Protokoll was später verwendet wird, somit sollte es eigentlich keine Probleme geben. Ich würde auch gerne was mit Microblaze und USB mache. Habe hier aber überhaupt keine Erfahrungen. Hätte hier ein Spartan-3A DSP Evalboard zur Verfügung. Viele Grüße, Michael
Michael Fischer schrieb: > Hallo zusammen, > > könnte hier libusb-win32 was für Euch sein? > http://libusb-win32.sourceforge.net/ Ja, mit der LibUSB kan man (recht beschränkt, weil nur synchrone Operationen) auf alle USB Devices zugreifen. > Ich würde auch gerne was mit Microblaze und USB mache. Habe hier aber > überhaupt keine Erfahrungen. Hätte hier ein Spartan-3A DSP Evalboard zur > Verfügung. Da bau dir lieber einen Cypress FX2 dran, der kostet nur ein paar Euro und macht das komplette USB Protokoll intern. Den kannst du wie ein FIFO benutzen, wenn du den Slave FIFO Modus aktivierst. Sehr simpel.
Um diesen andauernden 'ich-hab-ne-bessere-idee, weiß-aber-garnicht-was-ihr-eigentlich-machen-wollt' - Sprüchen vorzubeugen: NEIN, das ist kein Thread in dem irgendein Protokoll-Umsetzer verwendet werden soll, DAS IST NÄMLICH SINN DER SACHE!!! So, ich habe erste versuche mit dem easyUSB aus dem Forum hier gemacht, so was in die richtung ist für erste Tests auch 'ganz nett'. Ich denke wir können den auch in den ersten Schritten verwenden um die Embedded-Seite, welche die komplexere sein dürfte erst mal zu erstellen.
Hohenloher Cr. schrieb: > Um diesen andauernden 'ich-hab-ne-bessere-idee, > weiß-aber-garnicht-was-ihr-eigentlich-machen-wollt' - Sprüchen > vorzubeugen: > > NEIN, das ist kein Thread in dem irgendein Protokoll-Umsetzer verwendet > werden soll, DAS IST NÄMLICH SINN DER SACHE!!! Das mit dem FX2 galt ja auch nicht dir, sondern Michael Fischer, bei dem man schon an der Fragestellung erkennen kann, dass sein Kenntnisstand nicht ausreicht um ein USB Device als SoftCore zu entwickeln.
@supachris: prima, in anderen threads passiert es halt leider immer, dass das thema völlig abdriftet. Dies wollte ich hiermit nur verhindern. Ich finde es halt immer schade wenn das Problem nicht gelöst, sondern immer gleich die Sinnhaftigkeit diskutiert wird. Zum Thema: Sicherlich hat schonmal jemand eine 'serielle Schnittstelle' über über USB getunnelt. Meine Frage: Welche Kommunikationsart wählt man da am besten (synchron, Uni-/Bidirektional) und wieviele Endpunkte würde man dafür verwenden?
Hohenloher Cr. schrieb: > @supachris: > > prima, in anderen threads passiert es halt leider immer, dass das thema > völlig abdriftet. Dies wollte ich hiermit nur verhindern. > Ich finde es halt immer schade wenn das Problem nicht gelöst, sondern > immer gleich die Sinnhaftigkeit diskutiert wird. Naja, das stimmt schon leider. War auch nicht meine Absicht. Ich finde den Core auch nicht ganz verkehrt, aber er ist in Verilog, wofür wir keine ModelSim Lizenz haben, und erfordert das recht aufwendige WishBone Interface. Sonst hätt ich ihn mal getestet. Wenn man effektiv und zeitnah eine USB 2.0 Kommunikation mit einem FPGA machen soll, kommt man meiner Meinung mit dem FX2 am schnellsten voran. > Zum Thema: > Sicherlich hat schonmal jemand eine 'serielle Schnittstelle' über über > USB getunnelt. Meine Frage: Welche Kommunikationsart wählt man da am > besten (synchron, Uni-/Bidirektional) und wieviele Endpunkte würde man > dafür verwenden? Eine UART tunneln? Klar kann man machen, über BULK Endpoints hat man immer noch die Datensicherheit, wird ja bis zu 3 mal wiederholt. Bei ISO und Interrupt gehts zwar mit weniger Latenz aber eben keine Wiederholungen. FTDI arbeitet aber glaub trotzdem mit Interrupt für die USB-Serial-Adapter. Ich würde zu einem FPGA aber lieber eine schnelle Parallel-Verbindung aufbauen, die gleich 16 Bit breite Daten ausspuckt. Mit der LibUSB oder EasyUSB anzusprechen ist kein Thema, geht sehr gut (mit dem FX2 mal probiert). Kommt halt immer drauf an, was man machen will....wie schnell willst du denn übertragen?
Im Endeffekt suche ich eine Möglichkeit um Worte (32Bit) von a nach b zu übertragen. Wenn das nicht nur Byteweise, sondern Wortweise klappt wäre das perfekt. Sonst muss ich immer Byteweise fragmentieren (wie beim UART).
Naja, worte bestehen auch nur aus Bytes und über die USB Strippe gehen eh nur Bytes. Kannst dem Treiber natürlich einen Pointer auf dein Wort-Buffer geben. Die Angabe, wieviel der Treiber transferieren soll, erfolgt sowieso in Byte. Auf der Hardware-Seite wäre dann ein busmatching FIFO sinnvoll, 16 Bit rein, 32 Bit raus. Also, wenn man das mit dem FX2 macht. Da sind dann 40MB/s Datentrasferrate drin...bei dem OpenCores Ding ist glaub eh schon 32 Bit alles. Halt etwas aufwendiger als die Chip-Lösung.
Da wird ja aber nix fragmentiert. Das ist doch bei fast allen Treibern so. Man gibt den Pointer und die Anzahl in Bytes. Der kümmert sich dann schon und überträgt dann je nachdem, wie das Interface ausgelegt ist, entsprechend. Wo ist denn das Probelm?
Hallo Christian, >Das mit dem FX2 galt ja auch nicht dir, sondern Michael Fischer, bei dem >man schon an der Fragestellung erkennen kann, dass sein Kenntnisstand >nicht ausreicht um ein USB Device als SoftCore zu entwickeln. Das hast Du richtig erkannt, das gebe ich auch ohne Probleme zu. Ich werde mir mal den FX2 genauer anschauen. Meine Mail war eher als Anregung im Bezug auf libusb zu verstehen Viele Grüße, Michael
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.