Forum: Mikrocontroller und Digitale Elektronik Erklärung UART mit RTS/CTS


von Micha (Gast)


Lesenswert?

Hi,

habe ein Problem mit der UART und den RTS/CTS Verbindungen?
Möchte einen µC mittels UART mit einem Bluetooth Modul verbinden. Das
Bluetooth Modul benutzt die Uart aber nur mit Hardware Handshake. Also
Anschluss RTS/CTS.
Meine Uart am µC funktioniert ohne diese zwei Steuerleitungen Prima.
Nach einbauen der RTS/CTS klappts net mehr. Ich vermute noch eine
Unklarheit in der genauen Definition der RTS/CTS Leitungen bei mir.

Um genauer zu Fragen! Was machen die RTS/CTS Bits eigentlich genau im
µC Programmcode?

Ich hoffe es kann mir jemand helfen. Keine Antworten bitte, wie
Leitungen auch vertauscht und richtig angeschlossen!

~micha

von Heinz (Gast)


Lesenswert?

Du kannst die Handshakeleitungen einfach kurzschliessen.
Wenn ich mich recht entsinne, Pin 1,4,6 zusammen und Pin 7 und 8
zusammen.

Schau dir vorher aber lieber noch mal die Belegung an.

von Arne (Gast)


Lesenswert?

>Um genauer zu Fragen! Was machen die RTS/CTS Bits eigentlich genau im
µC Programmcode?

Der Empfänger signalisiert mit RTS 'Ready To Send' =
Empfangsbereitschaft. Dieses Signal liegt beim Sender auf CTS 'Clear
To Send', der so weiß, daß er nun senden darf oder eben noch warten
muß.

RTS/CTS dient also nur dazu, den Datenstrom anzuhalten, falls der
Empfänger grade die gesendeten Daten(-mengen) nicht verarbeiten kann.
Es soll so verhindert werden, daß einzelne Byte verloren gehen.

War es das, was Du wissen wolltest? Die Antwort von Heinz ist mehr die
Form: Wie trickse ich RTS/CTS aus, wenn ich es nicht wirklich brauche
aber auch nicht abschalten kann.

Gruß,
Arne

von Alexander Höller (Gast)


Lesenswert?

Hallo,

will mich bei dem Thread mal "einhängen" ;p

Hab derzeit auch kleinere Probeleme mit RTC/CTs und einem FT232BM. Hab
irgendwo gelesen, dass es nicht nur wärend dem Senden Flusskotnrolle
gibt, die anzeigt ob weitergesendet werden darf oder nicht, sondern
dass auch immer nur in eine Richtung gesendet werden darf und sich die
beidne Geräte über RTS/CTS ausmachen wer jezt senden will/darf - Stimmt
das so ?? Könnte mir das jemand bitte nochmal kurz erklären? Ev. in
welcher Reihenfolge welche Signale kommen müssen, um Senden zu dürfen?

mit freundlichen Grüßen,
aleX

von Micha (Gast)


Lesenswert?

hi,

ich bin mit meinen Versuchen schon ein wenig weiter gekommen. Mein µC
empfängt die Daten schon richtig. nur beim Senden hapert es noch, da
hängt sich der Controller auf. Wo genau weiß ich nicht.

PAP:
 - Daten senden wollen -> RTS auf 0 -> Daten in Puffer tun -> warten
bis Interrupt für CTS vom Empfänger kommt -> Wenn dann CTS auf 0 und
RTS auf 0 liegen, dann sende ich meine Daten!  (dachte ich)

Aber so funzt es net. Die Interrupt Routine wo ich vom Empfänger des
CTS (aktiv low) Signal bekomm, haut mir irgend was quer! Ich sende auch
nur jedesmal ein byte, danach führe ich ein neues Handshake durch. Ist
doch bestimmt net richtig? Funktioniert aber beim Empfangen tadellos!

Wenn noch jemand ne Idee hat! Nur her damit  :-)

~micha

von Uwe (Gast)


Lesenswert?

Hi!
RTS deines jeweiligen Gerätes ist ein Ausgang und signalisiert der
Gegenstelle(RTS->CTS)das Daten gesendet/empfangen werden können, also
Sende/Empfangsbereitschaft.
CTS ist der zugehörige Eingang .
So wie du es darstellst ist es eigentlich richtig, solange beide
Signale 0(aktiv) sind kannst du munter drauflossenden, musst aber auf
das cts-Signal achten, am besten vor jedem zu sendenden Byte.

MFG Uwe

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.