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 :)
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ß
Wir setzen den FT2232HL in synchronous fifo Mode ohne Probleme ein.
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.
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).
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.
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.
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/
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.
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.
Kann jemand was zu meinem source sagen? Ich brauche nämlich DRINGEND eine funktionierende USB Kommunikaion. (Mal den Thread pushen)
mal simuliert? gibts eine testbench dazu?
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.