Forum: Mikrocontroller und Digitale Elektronik UART vom LPC (ARM7)


von BoB (Gast)


Lesenswert?

Ich nutzt bei meinem uC den UART1 mit alles RS232 Leitungen.
Da ich aber nur RxD, TxD und RTS brauche habe ich eben diese im Pinsel0
freigeschatet (0x150000)

Nun habe ich aber eine Frage zu RTS die ich mir aus dem DAtenblatt und
aus dem Internetwisen nicht beantworten kann aber ich hoffe das einer
von euch es vielleicht weiß. Wahrscheinlich gilt das sowie so für alle
Rs232 allgemein.

Ich sende nun einen ganzen String über den Uart, z.B. "TEST". Wird
das RTS automatisch gesetzt oder wird es bei jedem Zeichen erneut auf
low gezogen? oder ist es für den gesamten Sendevorgang auf low? und
wird erst wieder high Pegel wenn der gesammte String gesendet wurde?

Wenn das nicht automatisch verarbeitet wird wäre es dann nicht
sinnvoller einen ganz normalen Autgang als RTS zu deklarieren und den
dann jeweils ob gesendet oder empfangen wird mit IOset oder IOclr wie
gewünscht zu definieren?

Ich hoffe die Frage ist verständlcih gestellt. Ich habe auch versucht
dieses Problem mit meinem Ozzi zu lösen aber das hat für den RTS
Channel immer so ein nihct eindeutig in die eine oder Andere richtung
zu interpretierendes Signal geliefert, es ist hat schon alt und hat die
besten TAge schon hinter sich ;-)

Grüße und eine gute Nacht
wünscht euch
BoB

von peter dannegger (Gast)


Lesenswert?

Die UART ist ne normale PC-UART, d.h. die Handshakesignale sind ganz
normale IOs und haben keinerlei Einfluß auf die UART.


Peter

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

RTS wird gar nicht automatisch gesetzt oder zurückgenommen, darum musst
Du Dich schon selbst kümmern.

Mehr sollte im Datenblatt des 16550 (das ist nämlich die UART, die in
der LPC21xx-Reihe Verwendung findet) beschrieben stehen.
Die Beschreibung des RTS-Signales im Philips-Datenblatt ist ziemlich
irreführend.

Üblicherweise wird RTS verwendet, um der Gegenstelle
Empfangsbereitschaft zu signalisieren, während der Eingang CTS von der
Gegenstelle kommt und deren Empfangsbereitschaft mitteilt - und also
sinnvollerweise mit RTS kreuzweise verbunden wird.

In der einfachen 8250-kompatiblen Betriebsart (ohne Sende/Empfangsfifo)
können die Handshakeeingänge nur zur Erzeugung von Interrupts verwendet
werden (über U1IER festgelegt).

Im Auto-RTS-Modus wird die RTS-Leitung über den Füllstand des
Empfangsfifos gesteuert. Ist das Empfangsfifo voll (genauer: der
eingestellte "Trigger level" erreicht, so wird RTS deaktiviert, um
der Gegenstelle mitzuteilen, daß sie jetzt mit dem Senden aufhören
soll.

Im Auto-CTS-Modus werden im Sendefifo stehende Daten nur dann gesendet,
wenn CTS aktiv ist, ansonsten wird gewartet.

Die 16550 ist die Standard-UART, wie sie in jedem PC verbaut ist.

Hoffe, daß das Dir ein wenig Klarheit verschafft hat.

von BoB (Gast)


Lesenswert?

DAnke Rufus es hat mir sehr weitergeholfen den Fehler einzugrenzen.
Jetzt geht es.

noch mal danke

BoB

von A.K. (Gast)


Lesenswert?

Wird die AutoRTS-Funktion von allen Philips LPC2000 unterstützt? Bei
214x und 2103 wird's ja immerhin noch erwähnt, wenn auch konsequent
nicht an der richtigen Stelle, Bei den älteren Typen steht absolut
garnichts darüber drin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn die darin verbaute UART kompatibel zur 16550 ist, dann ja.

von Robert Teufel (Gast)


Lesenswert?

Hardware Handshake ist bei LPC2148 erstmals eingebaut, LPC2103 hat das
auch. Der LPC2138 wird gerade fehlerbereinigt und die neue Version wird
das dann auch haben.

Alle UARTS der LPC2000 Familie sind (derzeit) 16C550 kompatibel. Ich
sage derzeit weil es auch andere geben wird in Zukunft.

Gruss, Robert

von Dieter (Gast)


Lesenswert?

"Ich sage derzeit weil es auch andere geben wird in Zukunft."


Wird auch langsam Zeit, denn das ist ja derzeit nur eine üble und
billige Notlösung...

von Robert Teufel (Gast)


Lesenswert?

;-0  Dieter
OOOpps kompatibel zu sein mit sagen wir mal mehreren hundert Millionen
PCs ist eine ueble und billige Notloesung!?
Naja, scheint auch eine Moeglichkeit zu sein die Sache zu sehen.

Was haettest Du denn gerne fuer Zusatzfunktionen im UART?

Robert

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was manche Leute vermissen, ist die Möglichkeit der 9-Bit-Übertragung,
wie sie beispielsweise von der UART aus der MCS51-Reihe her bekannt
ist.
Auch schön wäre eine Unterstützung für externe RS485-Transceiver, wie
sie beispielsweise in den UARTs von Oxford Semiconductor implementiert
wird (da wird -programmierbar- eine Handshakeleitung genau solange
aktiviert, wie die UART sendet).

von Michael (Gast)


Lesenswert?

Yepp, die 9-Bit fehlen mir auch!
Wäre prima, wenn die noch kommen. Gerade im embedded-Bereich ist das ja
sehr nützlich.

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.