Forum: FPGA, VHDL & Co. USB Host Interface


von kuli (Gast)


Lesenswert?

Hallo,

ich möchte auf einem Virtex 4 Board das USB Host Interface nutzen. Die 
Frage ist, ob das überhaupt möglich ist. Verbaut ist ein Cypress 67300 
USB Controller. Ich will eine Schnittstelle zum PC realisieren. In den 
Board Schematics 
http://www.xilinx.com/support/documentation/boards_and_kits/ml401_2_3_schematics.pdf 
auf Seite 19 sieht es auch danach aus, dass man das Host Interface 
nutzen kann. Ich habe mir dazu das Development Kit von Cypress mit dem 
generischen USB Treiber geladen. Jedoch wird nichts erkannt. Es gibt ein 
Demonstrationsprogramm für das Board, bei dem man eine USB Tastatur 
anschließen kann und die Buchstaben auf dem Display erscheinen. Das 
klappt auch und in dem Blatt steht, dass hierzu das Host Interface 
genutzt wird. Hat jemand einen Tipp, wie ich die Verbindung zum PC 
herstellen kann?

von Jan M. (mueschel)


Lesenswert?

Wenn du das Board mit einem PC verbindest, ist der PC der Host, nicht 
das Board. Du musst also eines der beiden periphereal interfaces 
benutzen.

von Christian R. (supachris)


Lesenswert?

Du musst dann den USB Device Teil des Cypress ansprechen. Der Chip hat 
ja 2 Device und einen Host-Anschluss drauf. Gibts doch sicher auch 
Beispiele bei Xilinx, oder?

von kuli (Gast)


Lesenswert?

Ich meinte nicht direkt den Anschluss auf dem Board, sondern den HPI 
Modus des USB Controllers. Aber sicher mit den Anschlüssen war ich mir 
nicht ;)
Also, verbinde ich mit dem zweiten Periphereal wird der Controller 
erkannt als "Cypress EZ-OTG" also On-the-Go USB. Ist ja nicht ganz das, 
was ich möchte, ist glaube dafür gedacht Geräte direkt zu verbinden 
oder?
Auf dem ersten Periphereal Anschluss wird wiederum gar nichts erkannt. 
Im Xilinx Forum wurde sogar behauptet, dass es außerdem dem erwähnten 
Beispiel mit der Tastatur - sonst gibts auch glaube ich nichts von 
Xilinx - keine Möglichkeit gäbe, eine Verbindung herzustellen. Deshalb 
frage ich eigentlich nach. Der Controller muss doch erst generell 
erkannt werden, oder?

von Christian R. (supachris)


Lesenswert?

On The Go ist doch völlig korrekt, schließlich ist der Controller ein 
OTG Controller, der halt beides kann. Wenn vom Windows schon das erkannt 
wird, muss zumindest eine rudimentäre Firmware dafür sorgen, dass die 
USB Requests beantwortet werden. Ich denke mal, das macht der PPC im 
Virtex dann. Das Ding hat eh bloß Full-Speed, zum Daten übertragen kaum 
geeignet....

von kuli (Gast)


Lesenswert?

Nochmal zum Verständnis. Muss der Controller erst zwingend erkannt 
werden, bevor man ihn benutzen kann?

Hab im Datenblatt des Cypres nachgegschaut und er ist standardmäßig im 
Device Modus. Wie muss ich generell vorgehen, um einen USB Controller zu 
nutzen

von Christian R. (supachris)


Lesenswert?

kuli wrote:
> Nochmal zum Verständnis. Muss der Controller erst zwingend erkannt
> werden, bevor man ihn benutzen kann?

Natürlich. Wie willst du ihn sonst ansprechen?

> Hab im Datenblatt des Cypres nachgegschaut und er ist standardmäßig im
> Device Modus. Wie muss ich generell vorgehen, um einen USB Controller zu
> nutzen

Hm, das kommt natürlich auf den Controller an. Ich kenn´s nur vom 
Cypress FX2, da initialisiert die Firmware alle möglichen Register, 
stellt die Descriptoren bereit, antwortet auf die USB Requests des 
Betriebssystems, handhabt die Suspend- und Resume-Anforderungen usw. 
Dann müssen natürlich die Endpoint-Buffer bereitgestellt werden, und 
irgendwie musst du dann was mit den Daten in den EP-Buffern machen. Ist 
ales nicht ganz ohne, da muss man sich erst mal eine Weile mit viel viel 
Doku rumschlagen.

von kuli (Gast)


Lesenswert?

OK, das hilft schon mal weiter. Denn erkannt wird der Controller wie 
gesagt nur am Periphereal 2 als OTG. Prinzipiell in Ordnung, aber es 
exisitiert anscheinend kein Treiber dafür, oder?

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
Noch kein Account? Hier anmelden.