Forum: Mikrocontroller und Digitale Elektronik CTS# delay


von metaljack (Gast)


Lesenswert?

Hallo,

ich hab da mal ne frage.
hat jemand schon erfahrungen mit der flusskontrolle bei einem FT232R 
gemacht? mein problem is folgendes:
ich will eine flusskontrolle über CTS# nur von der mikrocontroller-seite 
aus hinbekommen, da dort nunmal nur ein byte (RXBUF) als empfangspuffer 
da is. problem dabei ist wenn das nich schnell genug verarbeitet wird 
isses weg. das an sich wär nich so schlimm bzw. is nich das problem, 
jedoch brauche ich die nächsten bytes ja auch noch irgendwie.
ich lass ihn also so lange er was macht das CTS# signal setzen so dass 
eigentlich nix mehr durch kommen dürfte. EIGENTLICH. witzigerweise 
kommen immer - egal bei welcher baudrate - irgendwie noch 2 bytes 
hinterher und das nachdem CTS# direkt mit ende des ersten empfangenen 
bytes gesetzt wird.
wenn das immer so ist, was bringt die flusskontrolle dann eigentlich?

ich bin für jede hilfe dankbar. (außer "schick doch n paar NULLen 
dazwischen")

MfG
metaljack

von Peter D. (peda)


Lesenswert?

Mach nen UART Interrupthandler mit FIFO und gut is.

UART-Handshake hat schon immer nie richtig funktioniert und wird auch 
nie richtig funktionieren.


Peter

von Christian R. (supachris)


Lesenswert?

An meinem FT232-3V3 Kabeln war das nicht so. Da war mit setzen des CTS 
auf Low Schluss mit Senden.
Hast du auf der PC-Seite auch das HW-Handshake aktiviert?

von A.K. (Gast)


Lesenswert?

Wie der FT das intern abwickelt weiss ich nicht. Allerdings ist eine 
solche Flusssteuerung traditionell eher für gepufferten UART-Betrieb 
konzipiert, d.h. für UART mit Interruptroutine und Empfangspuffer. Und 
da ist es üblich, RTS/CTS schon einige Bytes vor Ultimo abzudrehen.

von Michael U. (Gast)


Lesenswert?

Hallo,

UART-Handshake funktioniert durchaus zuverlässig. Es wird nur von 
gepufferten Routinen ausgegangen und es ist auch beschrieben, daß 
durchaus noch einige Byte kommen können. Wenn es so benutzt wird, z.B. 
Empfamgspuffer 8-16 Byte, beim 1. Byte CTS setzen, klappt es 
normalerweise auch. Selbst wenn es echt in Hardware gehen würde, wäre 
vermutlich schon das nächste Byte beim Senden, wenn beim Empfang des 
ersten am Ende CTS gesetzt werden würde. Das kann ja erst nach dem 
Stopbit geschehen und es ist zulässig, nach Ende des Stopbits auf der 
Senderseite sofort das nächste Startbit auszugeben...

Gruß aus Berlin
Michael

von Wesam C. (fay79)


Lesenswert?

hallo zusammen,
ich habe iene frage. Warum sollte man CTS ( flow kontroll) auf low 
setzen?
danke

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.