Forum: FPGA, VHDL & Co. Empfehlenswerte Chips zur FPGA <-> PC Kommunikation über USB


von FPGA-Lover (Gast)


Lesenswert?

Hallo zusammen,

ich benutze seit längerer Zeit einen FT2232HL von FTDI. Ich bin mit dem 
Ding aber absolut unzufrieden. Der FTDI hält teilweise seine eigenen 
Timings nicht ein und erzeugt asynchrone Signale zu seinem eigenen 
Taktsignal. Auch ist der Treiber von FTDI ganz schön verpfuscht und ich 
habe einfach keine Lust mehr, mich damit rumärgern zu müssen.

Deswegen würde mich interessieren, welche Chips ihr für die 
Kommunikation von FPGA zu PC (und auch in die andere Richtung) benutzt. 
Es muss nicht unbedingt USB sein (wäre aber schon gut), aber es sollte 
recht einfach zu programmieren sein auf der Host Seite und auch nicht 
sehr schwer anzusteuern zu sein auf der FPGA Seite. Aber vorallem sollte 
der Chip ZUVERLÄSSIG sein, das wäre mir wichtig. Hohe Geschwindigkeiten 
sind mir erstmal nicht so wichtig, mir geht es wirklich um die 
Einfachheit und Zuverlässigkeit.

Also dann lasst mal hören, damit ich mir guten Gewissens einen neuen 
Chip zulegen kann :)
Hier spielt die eigene Erfahrung eine wichtige Rolle, ich hoffe, dass 
ich ein paar nützliche Tipps bekomme :)

von xilinx gast (Gast)


Lesenswert?

Hi,

also wir setzen schon seit Jahren die FTDI's 232 und 2232 ohne Probleme 
als serielles Interface für FPGA's (meist Xilinx)  via USB zum PC ein.

Als Hostsystem dabei sowohl Windows (XP und 7 ) als auch diverse Linux 
Derivate.

Damit gab es bisher nie Probleme, selbst bei höheren Geschwindigkeiten.

Als UART Interface sowohl selbst geschriebene als auch teilweise die XPS 
Komponente je nach Anwendungsfall.

Poste doch mal Deinen Schaltplan und Deine UART (Quell-Code) im FPGA.

Vielleicht liegt ja hier das Problem.

Gruß

von Lukas K. (carrotindustries)


Lesenswert?

Die FX2 von Cypress könnten auch nen Blick wert sein. Ist nen USB-FIFO 
mit 8051 CPU dran.

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Wir setzen den FT2232HL in synchronous fifo Mode ohne Probleme ein.

von Christian R. (supachris)


Lesenswert?

FX2 kann ich sehr empfehlen, die Programmierung ist durch den grottigen 
8051 zwar was für freaks aber durch die vielen Beispielprogramme 
machbar. Problem Treiber: Du brauchst eine eigene VID, und musst Treiber 
signieren lassen oder WinUSB bzw. LibUSB benutzen.

Derzeit arbeite ich mit dem FX3, mit USB 3.0 und ARM deutlich besser, 
super API und sehr schnell.

von Uwe (Gast)


Lesenswert?

Hab auch noch keine Probleme mit den FTDIs gehabt. Ich habe jedoch von 
"kranken" Timings des FX2 und FX3 gelesen (habe jedoch selber mit den 
Dingern nicht gearbeitet).

von Trundle T. (shaheed)


Lesenswert?

Hi,

nen Kollege von mir realisiert gerade nen USB 3.0 Verbindung zwischen PC 
und FPGA über nen Cypress FX3... Der ist ziemlich am Fluchen. Sowohl die 
bereitgestellt Entwicklungsumgebung für den FX3 sei wohl nicht so 
brilliant, als auch (noch mieser) Dokumentation und Support von Cypress. 
Es gibt wohl nicht wie bei normal µCs nen ordentliches Hardware-Manual, 
wo Register etc aufgelistet und erklärt sind. Und noch wichtiger laut 
Cypress (Anfrage im Forum von denen) ist das auch nicht vorgesehen. Man 
soll mit den von ihnen bereitgestellten APIs und RTS arbeiten und keine 
eigenen bare-metal Sachen machen... so hab ich es zumindest von ihm 
verstanden.

von Christian R. (supachris)


Lesenswert?

Richtig, das Timing ist bei beiden nicht unsportlich. Im Gegensatz zum 
FTDI kann man aber auch einen externen Takt anlegen und die Sache damit 
entspannen. Richtig ist auch, dass man an den ARM im FX3 nicht direkt 
ran kommt. Das liegt an der Lizenz des verwendeten RealTime OS von 
ThreadX, welches nur als binary mitgeliefert wird. Im Gegensatz zum FX2 
ist die Programmierung aber deutlich sinnvoller und vor allem leicht zu 
debuggen (Eclipse + GDB). Ich bin von Anfang an am FX3 dabei, hatte auch 
noch den Beta Chip auf dem Demo Board, und muss sagen, dass das nach 
einer kurzen Eingewöhnung sehr angenehm ist. Jedenfalls wenn man den als 
USB Controller nutzen will. Als universeller ARM mit USB dran ist der 
eher nicht zu empfehlen. Trotzdem ein Meilenstein im Vergleich zum 
betagten FX2.

von Dude (Gast)


Lesenswert?

Trundle Trollkönig schrieb:
> Der ist ziemlich am Fluchen

das soll angeblich vieles vereinfachen:
    http://www.enclustra.com/en/products/fpga-manager/fpga-manager-usb3/

von Christian R. (supachris)


Lesenswert?

Naja, das bissl State-Machine auf FPGA Seite und die Beispielfirmware 
aus dem SDK des FX3 auf ARM Seite und schon läuft das. Aber man kann 
natürlich gerne ein paar k€ für so einen Core ausgeben, wenn man das 
unbedingt will.

von FPGA-Lover (Gast)


Lesenswert?

Richtig gute Beiträge, vielen Dank! So eine Diskussion habe ich mir 
gewünscht.
Anbei mal der bescheidene ft2232h controller für den synchronen fifo 
mode (nur auf FTDI Schreibzugriff, lesen noch nicht supported) in 
Verilog. Er prüft ständig einen FIFO im FPGA Design und wenn mindestens 
1 Wort Daten drin sind, schreibt er sie in den FIFO des FTDIs.
Könnte sein, dass ich einen Fehler im Design habe. Beim Tracen der 
Signale passiert es manchmal, dass der write_counter plöztlich einen 
anderen Wert annimmt (einen unlogischen). Nehme an, dass ich irgendwo 
asynchrone Signale haben könnte, dabei hab ich das FIFO-voll-Signal vom 
FTDI doch schon einsynchronisiert.
Könnte aber auch sein, dass der Fehler in der Host-Software liegt, werde 
diesen auch noch posten, falls Nachfrage besteht.

von FPGA-Lover (Gast)


Angehängte Dateien:

Lesenswert?

Anhang, entschuldigung.

von FPGA-Lover (Gast)


Lesenswert?

Kann jemand was zu meinem source sagen? Ich brauche nämlich DRINGEND 
eine funktionierende USB Kommunikaion.
(Mal den Thread pushen)

von bko (Gast)


Lesenswert?

mal simuliert?
gibts eine testbench dazu?

von Christoph (Gast)


Lesenswert?

Bin gerader durch Zufall (Studieren eines älteren Projekts von einem 
Bekannten) auf USB Chips gestossen die ich bis jetzt nicht kannte.

Entsprechend kann ich auch komplett keine Aussgen dazu machen, denke 
aber dass sie für den ein oder anderen etwas sein könnten:

http://www.plxtech.com/products/usbcontrollers

Die neuen USB Super-Speed Controller sind USB <-> PCIe Bridges (Also z. 
B. für Spartan6 interessant)

Der ältere NET2272, mit USB High-Speed, wird mit Adress-/Datenbus 
angehängt.

Mouser hat die z. B. auch an Lager.

von Christian R. (supachris)


Lesenswert?

Christoph schrieb:
> Die neuen USB Super-Speed Controller sind USB <-> PCIe Bridges (Also z.
> B. für Spartan6 interessant)

Hm, von hinten durch die Brust ins Auge. Vielleicht für ganz spezielle 
Spezialfälle interessant.

von maazie (Gast)


Lesenswert?

Hallo Leute,

ich bin gerade dabei eine USB 3.0 Schnittstelle mit dem FX3 zu 
implementieren. Für die Schaltung habe ich mich an dem SDK EvoBoard 
orientiert, welches mir auch vorliegt. Allerdings habe ich auf ein paar 
Schaltungsteile wie USB Switch und Batterie verzichtet. Die 
Betriebsspannung wird über ein Netzteil zur verfügung gestellt und die 
VBUS natürlich über den Host.

Kontaktiere ich nun den FX3 zum Host PC wird das Gerät im Geräte Manager 
mit einem Ausrufezeichen als WestBridge angezeigt.

Ich versuche nun bereits den gesamten Tag, ohnen Erfolg den Treiber zu 
installieren. Versucht habe ich es auf einem 32 bit Windows XP und einem 
64 bit Windows 7 Betriebssystem.

Die Treiber habe ich aus dem Datei-Pfad der SDK Sotware (1.2) entnommen. 
Diese hatten auch anstandslos mit dem SDK EvoBoard funktioniert (USB 
Bootloader wurde angzeigt). Beide Betriebssysteme erkennen den Treiber 
nicht als passend und starten demzufolge keine Installation.

Benötige ich einen anderen Treiber?

Muss man etwas bei der Hardware beachten?

Hat jemand ein eigenes Design mit dem FX3 erfolgreich in Betrieb 
genommen?

Ich bitte dringende um Hilfe, ich bin mit meinem Latein am Ende!!!!

Besten Dank!

Gruß

maazie

von Christian R. (supachris)


Lesenswert?

Sicher, dass der Bootmode des FX3 stimmt? Wenn da was nicht passt, 
meldet der sich mit der falschen pid. Kontrollier nochmal genau die 3 
Pins...

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.