Ich würde gerne Daten von meinem Fpga board auf mein PC senden und das ziemlich schnell. Ich benötige eine Geschwindigkeit von mindestens 5 MBit/sec. Und die USB Schnittstelle von meinem Board (MOJO v3) packt gerade mal ca. 200 kbit/sec. Mir wurde vorgeschlagen einen ftdi Chip als externes USB interface zu nehmen. In meinem Fall wäre es der Um232h. Ich hab noch nie mit ftdi Chips gearbeitet. Wie ist eure Meinung dazu. Ist es sinnvoll es mit einem ftdi chip zu machen? Und wenn ja wie kann ich den Schwierigkeitsgrad dazu einstufen? Oder habt ihr vielleicht alternative Lösungsvorschläge?
:
Verschoben durch Moderator
Detlef schrieb: > In meinem Fall wäre es der Um232h. FTDI hat keinen solchen Chip. http://www.ftdichip.com/Products/ICs.htm Meinst du den FT232H? http://www.ftdichip.com/Products/ICs/FT232H.htm
Lothar M. schrieb: > Meinst du den FT232H? Ja genau. Das wäre der Chip auf dem Um232h Modul. Hab überhaupt keine Erfahrung mit ftdi, deswegen dachte ich mir, dass das Modul mit dem Chip drauf benutzerfreundlicher ist als nur der Chip an sich.
Ich würde gerne Daten von meinem Fpga board auf mein PC senden und das ziemlich schnell. Ich benötige eine Geschwindigkeit von mindestens 5 MBit/sec. Und die USB Schnittstelle von meinem Board (MOJO v3) packt gerade mal ca. 200 kbit/sec. Mir wurde vorgeschlagen einen ftdi Chip als externes USB interface zu nehmen. In meinem Fall wäre es der Um232h. Ich hab noch nie mit ftdi Chips gearbeitet. Wie ist eure Meinung dazu. Ist es sinnvoll es mit einem ftdi chip zu machen? Und wenn ja wie kann ich den Schwierigkeitsgrad dazu einstufen? Oder habt ihr vielleicht alternative Lösungsvorschläge
Ein zweites Posting ohne auf die vorherigen Antworten einzugehen ist nicht besonders nett. Schau Dir die Ftdi FIFO Modes an. Da kannst Du richtig Durchsatz erreichen.
Uwe B. schrieb: > Ein zweites Posting ohne auf die vorherigen Antworten einzugehen ist > nicht besonders nett. Ja es tut mir leid. Hab im Nachhinein gesehen, dass es auch ein Forum für Fpgas gibt. Hatte den Thread davor bei den Microcontrollern gepostet gehabt. Und als Gast war es mir nicht möglich den ersten Thread zu löschen :/
Ich würde auch den FT232H empfehlen! Betrieben als "FT232 im asynchronen FT245 FIFO Mode" habe ich mittels d2xx Treiber und dem Beispielcode aus dem Progamming Guide auf Anhieb 16MBit/s Durchsatz erreicht. Flusskontrolle und Puffer im FPGA vorausgesetzt!
Robert M. schrieb: > Ich würde auch den FT232H empfehlen! Betrieben als "FT232 im asynchronen > FT245 FIFO Mode" habe ich mittels d2xx Treiber und dem Beispielcode aus > dem Progamming Guide auf Anhieb 16MBit/s Durchsatz erreicht. > Flusskontrolle und Puffer im FPGA vorausgesetzt! Welchen Programing guide meinst du da genau? Bin schon länger nach einem Guide auf der Suche. Hab jetzt den ft232h mal bestellt. Bin schon gespannt auf das Teil.
Google sei Dank: http://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf Je nach dem, wie dein DevBoard aussieht, kann es sein, dass Du dem FT232H erst beibringen musst, sich wie ein asynchronous FT245 FIFO zu benehmen. Auch dazu gibt es bei FTDI ein Tool, um das (hoffentlich vorhandene) EEPROM entsprechend zu programmieren: "FT_PROG 3.3.88.402 - EEPROM Programming Utility"
:
Bearbeitet durch User
Ich setze den UM232H Board mit einem Xilinx Virtex 5 (ML507) ein. Hatte damals den Fifo mode benutzt. Erreicht hatte ich bis zu 45 MB/s. Funktionierte soweit stabil. ab und zu hatte ich Bit fehler, was evtl. am Aufbau lag, da ich das UM233H auf eine Pfostenleiste gesteckt benutzt hatte. Glaube im Netz gabs auch Beispiele in VHDL zum UM233H. Entsprechend konfiguriert über die dll funktionierte er gut. Bin aber aktuell auf einem Umstieg zum Cypress FX3. Da erreiche ich aktuell 150MB/s über eine PCI express angeschlossenen USB 3.0 Buchse was für meine Anwendung ausreichen wird.
Yafes61 schrieb: > Ich setze den UM232H Board mit einem Xilinx Virtex 5 (ML507) ein. > Hatte damals den Fifo mode benutzt. Erreicht hatte ich bis zu 45 MB/s. Was haltest du von dem Morph-IC-II FPGA Development Module von FTDI? Der hat ein Altera Cyclone-II als Fpga und als Usb Schnittstelle den FT2232H. Damit sollte es doch möglich sein, im Fifo Mode, Daten mit einer Geschwindigkeit von 10MBit/s zu empfangen oder nicht?
Das idealste ist natürlich alles in einem Board Lösung. So hast du erstmal ein verifiziertes PCB Design. Weiteres hängt von dir und den Beispielen zum genannten Board ab. Ob deine 10MBits im entsprechenden Mode verfügbar sind müsste im Datenblatt stehen. Theoretisch steht der Technologie nichts im Wege, wie gesagt habe ich mit dem FT232H dauerhaft 45 MB/s realisieren können.
Wenn du bei google nach "FT232H VHDL" suchst findest du viele Beispielprojekte die dir einen Ansatz geben könnten.
Yafes61 schrieb: > Theoretisch steht der Technologie nichts im Wege, wie gesagt habe ich > mit dem FT232H dauerhaft 45 MB/s realisieren können. Vielen Dank für deine Antworten. Eine Frage hätte ich dann aber noch. Wie schafft es dein Rechner 45MB/s zu verarbeiten. Wenn ich in Visual Studio alleine nur eine For Schleife in C++ bis 5 Millionen zählen lasse, dauert das 20 Sekunden. Deswegen habe ich dich Befürchtung, dass ich vielleicht bei gewünschter Datenrate die Daten an mein PC senden kann, er sie aber gar nicht so schnell verarbeiten kann. Oder habe ich hier irgendwie einen Denkfehler?
Willst du das es nach mehr aussieht, nimm Megabit. Schon ist alles achtmal so schnell.
> in C++ bis 5 Millionen zählen lasse, dauert das 20 Sekunden
Da ist aber was faul.
Ein:
1 | for(;;){ |
2 | *(unsigned short *)0xFFFFD302 = 0x8000; |
3 | for(ulLed_Delay=0; ulLed_Delay<1000000; ulLed_Delay++){;} |
4 | *(unsigned short *)0xFFFFD302 = 0x0; |
5 | for(ulLed_Delay=0; ulLed_Delay<1000000; ulLed_Delay++){;} |
6 | } |
laesst auf einem mit 40 MHz laufendem SH-2 die LED etwa alle 400 ms an- und ausgehen.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5308783: > laesst auf einem mit 40 MHz laufendem SH-2 die LED etwa alle > 400 ms an- und ausgehen. Ne also mittlerweile habe ich ja den FTDI Chip im FIFO Mode zum Laufen bekommen, aber wie würde denn eine ordentliche Leseroutine aussehen, sodass mein Code nicht zum Flaschenhals wird? Würde gerne alle Bytes die kontinuirlich gesendet werden empfangen können und das vielleicht über einige Minuten hinweg.
> aber wie würde denn eine ordentliche Leseroutine aussehen, > sodass mein Code nicht zum Flaschenhals wird? Ich nehm fuer sowas den FX2LP aka CY7C68013A. Der hat den Vorteil, dass Mann mit dem GPIF-Designer sich sein Interface in Richtung DSP/FPGA selber in gewissen Grenzen konstruieren/definieren kann. Die Leseroutinen gibt es im SDK von Cypress. Von FTDI gibts da sicher auch was. Aber wenn dein Rechner fuers reine Zaehlen bis 5000000 sich schon 20 Sekunden genehmigt, sehe ich da schwarz. Das solltest du schon nochmal testen. Der SH-2* ist zwar eine 1 Takt RISC-CPU, lief aber nur mit 40 MHz. *) Es war ein SH-7125 (R5F7125)
Detlef schrieb: > Wenn ich in Visual > Studio alleine nur eine For Schleife in C++ bis 5 Millionen zählen > lasse, dauert das 20 Sekunden. (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #5311244: > Aber wenn dein Rechner fuers reine Zaehlen bis 5000000 sich schon > 20 Sekunden genehmigt, sehe ich da schwarz. Liegt das wirlich am Rechner - oder an dem von Visual Studio instrumentiertem Code?
Detlef schrieb: > Oder habe ich hier irgendwie einen Denkfehler? Was fuer ein pc, was fuer source code, was fuer optimierungsschalter. Ich habe neulich mal Speicher zu Speicher direkt mit c kopiert und 800 Mbyte /s sind moeglich. D.h. 250000Schleifeniterationen pro.s sieht nach eine 8086 pc aus.
Habe selber Delphi für meine Anwendung benutzt. Wenn du große Buffergrößen verwendest, heißt einen großen Fifo für den FTDI Chip, ist das ganze mit 45MB/s realisierbar. Wenn du dann die Daten abspeichern willst, empfiehlt sich unter Umständen eine SSD.
Yafes61 schrieb: > 45MB/s realisierbar. Wenn du dann die Daten abspeichern > willst, empfiehlt sich unter Umständen eine SSD. Seit dem Jahr 2000 werden Platten verkauft, die diese Datenrate verkraften dürften. Aktuelle HDDs schaffen ungefähr das dreifache (150 MB/s). Mit einer SSD hat man natürlich mehr Reserven (500 MB/s). Wobei ich da bisher nur Datenblätter mit "write data rate up to" gefunden habe. Wäre mal schön einen Hersteller zu haben, der eine "minimum warranted write rate" angibt. Duke
Detlef schrieb: > Yafes61 schrieb: >> Theoretisch steht der Technologie nichts im Wege, wie gesagt habe ich >> mit dem FT232H dauerhaft 45 MB/s realisieren können. > > Vielen Dank für deine Antworten. Eine Frage hätte ich dann aber noch. > Wie schafft es dein Rechner 45MB/s zu verarbeiten. Wenn ich in Visual > Studio alleine nur eine For Schleife in C++ bis 5 Millionen zählen > lasse, dauert das 20 Sekunden. Deswegen habe ich dich Befürchtung, dass > ich vielleicht bei gewünschter Datenrate die Daten an mein PC senden > kann, er sie aber gar nicht so schnell verarbeiten kann. Oder habe ich > hier irgendwie einen Denkfehler? Hast du ein printf drin? Das dauert höchstens ein paar hundert µs. 45 MB/s sind schon was, aber du kannst noch einiges damit machen auf einer typischen Desktop-CPU. Fouriertransformieren könnte z.B. gerade noch gehen.
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.