Hallo @ all Ich habe einen FPGA an einem FT232R angeschlossen. Der FPGA sendet mit 3MBit Daten an den FTDI Chip. Die Daten werden von dem USB-Chip an den PC übertragen. Dort habe ich eine Empfangssoftware geschrieben, die mir die übertragenen Daten darstellt. Nun sehe ich das in meinen Daten ab und zu Sprünge vorhanden sind. Dies erkläre ich mir wie folgt: Ich sende kontinuierlich Daten an den FT232R. Irgendwann ist der RX-Buffer voll und die Daten werden per USB an den PC übertragen. Während dieser Zeit schreibe ich natürlich immer weiter in den RX-Buffer vom FTDI-Chip. Das dabei Daten verloren gehen ist ja dann logisch. Nun gibt es ja die RTS und CTS Leitung beim FTDI FT232R. Diese sind ja für das Hardwarehandshake vorhanden. Jedoch weiß ich nicht wie ich diese ansteuern soll. Im Datenblatt steht dazu nicht besonders viel. Die Beiden Leitungen sind mit dem FPGA verbunden. Laut Datenblatt ist das RTS-Port ein Ausgang und der CTS-Port ein Eingang. Wie muß ich dies jetzt programmieren?
Diese Handshakeleitungen werden vom PC ueber USB bedient, wuerd ich mal sagen. Ich denk nicht, dass ein Automatismus besteht.
Wie soll ich denn erkennen ob der RX-Buffer vom FT232R voll ist oder nicht?
Na. du liest den ja kontinuierlich vom Controller her. Dann wird er nie zu voll. Oder was steht denn im Datenblatt zu diesen Pins ? Ich wuerd mich hueten Hardwarehandshake zu verwenden, dann lieber die Baudrate eins tiefer legen.
oder gleich ein FT245. Der hat ein hardwaremäsig erzeugtes Signal für "Puffer voll"
Warum wollen gleich immer alle einen anderen Baustein andrehen. Ich habe 2000€ für FPGA-Board gezahlt das Daten mit 800MHz digitalisiert. Das dort dieser FTDI-Chip für die Datenübertragung eingesetzt wird ist nur von kurzer Dauer, dann muß diese durch eine schnelle Verbindung ausgetauscht werden. Aber ich werde jetzt nicht an einer 8 lagigen Platine löten.
Für die Übetragung von Daten vom FPGA über den FT232 zum PC ist genau eine der beiden Handshakeleitungen erforderlich, nämlich RTS. Damit signalisiert der FT232, daß er jetzt keine Daten mehr aufnehmen kann, das aber tut er nur, wenn über den Devicetreiber das Hardwarehandshake mit RTS/CTS aktiviert wurde. Wenn Daten in der Gegenrichtung übertragen werden, also vom PC über den FT232 ins FPGA hinein, kann das FPGA den Datenstrom mit der korrespondierenden Handshakeleitung bremsen, und das ist hier CTS.
Da gibts nur das Problem der Zeitverzögerung bei der RTS Leitung, da diese ja, wie bekannt, softwaremäsig durch den PC gesetzt wird. Und je nach dem wie schnell du deine Daten vom FPGA in den FTDI schreibst, kann es sein dass der Puffer voll ist, aber RTS noch nicht gesetzt ist. Aber mich würde wirklich mal interessieren auf welchem 2000€ Board ein FT232 drauf ist. In dieser Preisklasse hätte ich was anderes erwartet.
Ich weiß nicht, wieso hier so gerne angenommen wird, daß die Handshakeleitungen des FT232R vom PC-Treiber behandelt würden; das macht das Ding in Hardware. Steht auch so im Datenblatt.
Es ist ein Evaluationsboard von TI. Hier sind zwei 400MHz 14Bit AD-Wandler verbaut, die um 180° Phasenversetzt wandeln. Zudem ist auf diesem Board ein Virtex 5 mit 288DSP-Einheiten verbaut. Die Datenübertragung ist momentan leider nur über den FT232 möglich. Warum dieser Chip verwendet wurde bleibt ein Rätzel. Jedoch reicht es um alles zu testen. Anschließend muß man halt eine schnellere Datenübertragung erzeugen. Rufus t. Firefly schrieb: > Für die Übetragung von Daten vom FPGA über den FT232 zum PC ist genau > > eine der beiden Handshakeleitungen erforderlich, nämlich RTS. > > > > Damit signalisiert der FT232, daß er jetzt keine Daten mehr aufnehmen > > kann, das aber tut er nur, wenn über den Devicetreiber das > > Hardwarehandshake mit RTS/CTS aktiviert wurde. > > > > Wenn Daten in der Gegenrichtung übertragen werden, also vom PC über den > > FT232 ins FPGA hinein, kann das FPGA den Datenstrom mit der > > korrespondierenden Handshakeleitung bremsen, und das ist hier CTS. Genau so habe ich es gemacht und was soll ich sagen es funktioniert ^^ Ich übertrage Testdaten die mir bekannt sind und vergleiche diese auf dem PC. Nach einer halben Stunde war bis jetzt noch kein Datenübertragungsfehler aufgetreten. Vielen Dank
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.