FT232R, FIFO und Handshake

01/12/2008 - 00:27 von Michael Eggert | Report spam
Moin!

In einer Regelungselektronik mit Mikrocontroller würde ich den gern
per FT232R mit dem PC (Virtual Com Port) verbinden.

Nun hab ich das Problem, daß die zeitkritische Regelung immer nur
kurze Zeitschlitze für den Empfang von Daten (FT232R->Controller)
erlaubt. Ich bràuchte also ein (Hardware-)Handshake...

- bei dem der Controller immer dann, wenn er Zeit hat, an der
Handshake Leitung zieht und _sofort_ Daten aus dem FIFO des FT232R
bekommt (wenn denn welche drin sind) bis er die Leitung wieder
loslàsst.
Das wàren alle 100ms etwa 10µs um zu schauen, ob Daten aus dem FIFO
kommen, und nur wenn ja, dann 200µs (20 Bytes @ 1MBit/s) zum Abholen.

- bei dem die Handshake-Leitung aber _nicht_ die Kommunikation des PC
an den FT232R ausbremst, denn dann kàme der wohl nie zum Senden. Der
PC soll also unabhàngig vom Mikrocontroller Daten an den FT232R
senden, bis dieser "FIFO voll" meldet.

Ich fürchte einfach, daß ich in $grafischer-Programmierumgebung-auf-PC
über die Com-Port-Einstellungen nicht den Handshake zwischen FT232R
und Controller alleine bekomme.

FTDI schreibt in "AN232B-04 Data Throughput, Latency and Handshaking":
| There are 4 methods of flow control that can be programmed for the
| FT232BM device.
| 1. None [...]
| 2. RTS/CTS - 2 wire handshake. The device will transmit if CTS is
| active and will drop RTS if it cannot receive any more.
| 3. DTR/DSR - 2 wire handshake. The device will transmit if DSR is
| active and will drop DTR if it cannot receive any more.
| 4. XON/XOFF [...]"

und im Datenblatt zum FT232R:
| Handshaking is handled in hardware to ensure fast response times.

Das bringt mich aber auch nicht weiter, denn nirgends habe ich etwas
darüber gefunden, wann welcher Status an den PC gemeldet wird.

Hat jemand Erfahrung damit?

Dank und Gruß,
Michael.
 

Lesen sie die antworten

#1 Oliver Bartels
01/12/2008 - 00:36 | Warnen spam
On Mon, 01 Dec 2008 00:27:00 +0100, Michael Eggert
wrote:
Das bringt mich aber auch nicht weiter, denn nirgends habe ich etwas
darüber gefunden, wann welcher Status an den PC gemeldet wird.



USB wird per se durch Polling im Millisekunden-Bereich
abgefragt, bei XP soagr nur alle 8ms, solange man nicht
die Parameter veràndert.

Damit ist klar, dass die von Dir gewünschten 200us nur
durch einen On-Board Buffer realisierbar sind.
D.h. entweder reicht Dir der Buffer des FT232/245 oder Du
darfst Hardware ergànzen.

Gruß Oliver

Oliver Bartels + Erding, Germany +
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Ähnliche fragen