mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CTS# delay


Autor: metaljack (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Christian R. (supachris)
Datum:

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

Autor: A.K. (Gast)
Datum:

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

Autor: Michael U. (Gast)
Datum:

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

Autor: Wesam Casa (fay79)
Datum:

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

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.