USB-Device von opencores

OP #1292293
Lesenswert?

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
Gast #1293715
Lesenswert?

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
OP #1295029
Lesenswert?

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
OP #1299014
Lesenswert?

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
#1299790
Lesenswert?

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
#1299912
Lesenswert?

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.
OP #1300106
Lesenswert?

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.
#1300136
Lesenswert?

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.
OP #1300297
Lesenswert?

@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?
#1300332
Lesenswert?

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?
#1300491
Lesenswert?

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.
#1301223
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren