www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RTS und CTS beim FT232R


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese Handshakeleitungen werden vom PC ueber USB  bedient, wuerd ich mal 
sagen. Ich denk nicht, dass ein Automatismus besteht.

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie soll ich denn erkennen ob der RX-Buffer vom FT232R voll ist oder 
nicht?

Autor: Zorc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder gleich ein FT245. Der hat ein hardwaremäsig erzeugtes Signal für 
"Puffer voll"

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.