www.mikrocontroller.net

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


Autor: BoB (Gast)
Datum:

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

Autor: peter dannegger (Gast)
Datum:

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


Peter

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: BoB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DAnke Rufus es hat mir sehr weitergeholfen den Fehler einzugrenzen.
Jetzt geht es.

noch mal danke

BoB

Autor: A.K. (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die darin verbaute UART kompatibel zur 16550 ist, dann ja.

Autor: Robert Teufel (Gast)
Datum:

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

Autor: Dieter (Gast)
Datum:

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

Autor: Robert Teufel (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Autor: Michael (Gast)
Datum:

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

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.