Forum: Mikrocontroller und Digitale Elektronik Fehler FT232BM Handshake?


von Franz Wudy (Gast)


Lesenswert?

Ist das ein Fehler oder versteh ich kein Englisch mehr:
Es geht um das Hardware-Handshake des FT232BM:

Im Design-Guide liest man:

When RTS/CTS hardware handshaking is enabled CTS# can be used to stop
the FT232BM transmitting data to the MCU / external logic. When CTS# is
active ( low ) the FT232BM will transmit any data in it’s internal
buffers. On taking CTS# high, the FT232BM will stop transmitting data.
Due to the asynchronous nature of the interface, there is a latency of
0 to 3 characters between taking CTS# high and data transmission
stopping. The FT232BM drives RTS# HIGH when the available buffer space
inside the device drops below 32 bytes. This allows the MCU / logic to
continue to send up to 30 characters to the FT232BM after RTS# goes
high without causing buffer over-run.

und im AN232B-04_DataLatencyFlow.pdf unter Hanshake (2) liest man:

RTS/CTS - 2 wire handshake. The device will transmit if CTS is active
and will DROP RTS if it cannot receive any more.

Ich fasse zusammen: "RTS drives high" wenn der Speicher nicht mehr
ausreicht, aber wird interessanterweise eigentlich ge-"drop"-ped wenn
nicht mehr genug Platz im FIFO ist.

Was ist nun richtig?

Wenn ich am Device nachmesse (im Stillstand), dann bekomme ich einen
Pegel von +5V.

HILFE!!! G

von MNR (Gast)


Lesenswert?

RTS (Request To Send), active low. Wie man jetzt "Drop" interpretiert?
Der Pegel von 5V ist jedenfalls normal, und was RTS ist und wie es
funktioniert ist auch schon seit min. 30 Jahren definiert.

Im übrigen kann man im FT232 das "active low" auch in "active high"
umstellen (für fast alle Signale).

Gruß,
Matthias

von Ralf (Gast)


Lesenswert?

Ich denke, du musst das ganze auf der Basis der Aktivität der Pegel
sehen, also bei welchem Pegel die Signale aktiv sind.

Aus meiner Sicht meinen die mit "DROP" nicht, dass das Signal auf Low
absinkt, sondern dass es inaktiv ist, und die Bezeichnung "inaktiv"
ist völlig unabhängig vom Spannungspegel.

Ralf

von Michael Multerer (Gast)


Lesenswert?

Ralf hat Recht, drop ist einfach der Übergang von aktiv nach inaktiv.
Welche Spannungspegel das dann sind, kann man per se nicht sagen.

Da aber RTS# hier klar als "active-low" gekennzeichnet ist, sollte es
low sein, solange der FT232 Daten aufnehmen kann.

Ich zitiere:
>The FT232BM drives RTS# HIGH when the available buffer space
>inside the device drops below 32 bytes. This allows the MCU / logic
to
>continue to send up to 30 characters to the FT232BM after RTS# goes
>high without causing buffer over-run.

Nebenbei: RTS# heißt Request to Send, also darf man senden, solange es
aktiv ist. Da es ein "active-low" Signal ist, also solange es low
ist.

Die eigentlich interessante Frage ist doch: Warum hat Franz im
Ausgangszustand Hi anliegen? Laut Design-Guide von FTDI (siehe Zitat)
soll doch low anliegen, denn der Empfangspuffer des FT232 kann doch
unmöglich voll sein!

@Matthias
Vielleicht solltest Du Franz nähere Infos zum Umstellen der Polarität
der Signale zukommen lassen, das könnte die Lösung seines Problems
sein.

Mal anders gefragt:
Wer hat den schonmal eine Kommunikation mit Handshake mit dem FT232BM
aufgezogen und wie war das RTS?

Servus
Michael

von Franz Wudy (Gast)


Lesenswert?

Hat denn keiner eine Antwort?

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.