Hi bin neu in der Branche....
Wollte Fragen wozu ein RS232-TTL-Umsetzer Baustein gut ist...
Mein Board hat eine USART Schnittstelle.
Ich wollte mein Board mit einem anderen kommunizieren lassen das keine
USART-Schnittstelle hat. Und da habe ich gehört das so ein
RS232-TTL-Umsetzer zum Einsatz kommt.
Wie integriert man das ?
Welche der Zwei Möglichkeiten kommt hier in Frage ?
1)
Mein Board PIN RX-TX->(RX-TX-PINS)RS232-TTL-Umsetzer->(USART
EINGANG)RS232-TTL-Umsetzer-> Null Modem Kabel(Beide Seiten männlich)
->(USART EINGANG) RS232-TTL-Umsetzer -> (PINS RX-TX)RS232-TTL-Umsetzer
-> Anderer Board RX-TX
2)
Mein Board USART->(USART
EINGANG)RS232-TTL-Umsetzer->(RX-TX-PINS)RS232-TTL-Umsetzer-> Kabel
->Anderer Board RX-TX
John schrieb:> Wollte Fragen wozu ein RS232-TTL-Umsetzer Baustein gut ist...
Um eine Schnittstelle mit Pegelns nach RS232/V.24, wie etwa die vom PC,
mit einem Controller zu verbinden, dessen eingebaute Schnittstelle
zunächst nur TTL/CMOS-Pegel verdaut.
Zwei Controller kann man auch direkt verbinden, wenn die Entfernung
gering ist.
Das Bauteil ist ein Pegelwandler. Er wandelt das TTL (0 5V) in Rs232
(-15 15V) und da VonRS233 nach TTL in die andere Richtung.
Ich würde den MAX233 verwenden.
John schrieb:> Ich wollte mein Board mit einem anderen kommunizieren lassen das keine> USART-Schnittstelle hat.
Und wie willst Du dann kommunizieren?
> Und da habe ich gehört das so ein> RS232-TTL-Umsetzer zum Einsatz kommt.
So ein Umsetzer setzt nur die Pegel (Spannungen) um. Die seriellen
Daten werden dadurch nicht beeinflusst.
Wenn das Board keinen USART hat, kann man das höchstens per Software
nachbilden (mit begrenzter Geschwindigkeit, denn die SW muss ja die Bits
einzeln abtasten bzw. senden).
Deine Beschreibung der beiden Möglichkeiten habe ich nicht verstanden...
da kommt so oft "RS232-TTL-Umsetzer" drin vor. Wie wäre es mit einem
Blockschaltbild mit Angabe der Pegel an den Übergabepunkten?
Gruß Dietrich
John schrieb:> Hi bin neu in der Branche....
Na dann, willkommen :-)
> Wollte Fragen wozu ein RS232-TTL-Umsetzer Baustein gut ist...
RS-232 ist eine Schnittstelle, bei der eine logische 1 durch eine
Spannung zwischen -3 und -15 und eine Null durch +3 bis +15V dargestellt
wird. Mit diesen Spannungen kann man allerdings meistens nicht sehr
vfiel anfangen, in der Digitalelektronik kommen meisten Spannungen
zwischen 0 und +5 Vold vor - deswegen gibt's Umsetzer.
Es gibt diese RS232 Transceiver von vielen diversen Herstellern, aber
der bekannteste dürfte der MAX232 von Maxim sein.
> Ich wollte mein Board mit einem anderen kommunizieren lassen das keine> USART-Schnittstelle hat. Und da habe ich gehört das so ein> RS232-TTL-Umsetzer zum Einsatz kommt.
Welche Boards sind es denn? Im übrigen zwingt Dich (hoffentlich) ja
niemand, die Verbindung über RS232 zu führen. Man könnte sich den Umweg
über RS232 auch sparen und direkt UART mit UART verbinden (beim zweiten
Board ohne eben einen externen UART dranflanschen). Ist halt alles eine
Frage der Entfernung, Störsicherheit, etc...
LG, N0R
Naja ich habe zwei von diesen Bausteinen:
http://www.elv.de/elv-ttl-nach-rs-232-umsetzer-komplettbausatz.html
Hier die Frage muss ich die Pins vom Baustein mit meinem Board verbinden
oder
Die verbindung geht über die UART vom Baustein mit meinem UART am
Microcontroller
John schrieb:> Hier die Frage muss ich die Pins vom Baustein mit meinem Board verbinden
Wenn die Stecke nicht so lang ist, kannst du dir beide
TTL-RS232-Bausteine sparen. Was "nicht so lang" ist, hängt von den
Störungen in deiner Umgebung und der Übertragunsgeschwindigkeit ab.
John schrieb:> Hier die Frage muss ich die Pins vom Baustein mit meinem Board verbinden
1
Board Umsetzer "Lötösen"
2
Rx Rx
3
Tx Tx
4
GND GND
5
+5V +5V
Dies gilt für beide Boards. Zwischen den beiden Umsetzern kommt an die
SUB-D-Stecker dann ein Nullmodenkabel (Pin 2 und 3 gekreuzt, Pin 5
direkt verbunden). Die anderen Signale/Anschlüsse sind erstmal egal.
> oder>> Die verbindung geht über die UART vom Baustein mit meinem UART am> Microcontroller
Wenn beide Boards einen gemeinsamen GND haben (bzw. die GNDs verbunden
werden dürfen und die Leitung nicht so lang ist (Störeinkopplung!) geht
auch:
1
Board 1 Board 2
2
Rx Tx
3
Tx Rx
4
GND GND
Hier gibt es allerdings ein Risiko: Wenn ein Board versorgt ist und das
andere nicht, können Ausgleichsströme über die Leitungen Rx / Tx das
nicht versorgte Board zerstören. Das ist bei RS232 (1. Version)
ausgeschlossen.
Gruß Dietrich
Dietrich L. schrieb:> Hier gibt es allerdings ein Risiko: Wenn ein Board versorgt ist und das> andere nicht, können Ausgleichsströme über die Leitungen Rx / Tx das> nicht versorgte Board zerstören.
Mit Schutzwiderständen in den Datenleitungen (z.B. 2,2kΩ) läßt sich
dieses Risiko ausschalten. Dafür sinkt die max. mögliche
Übertragungsrate.
John schrieb:> Hier die Frage muss ich die Pins vom Baustein mit meinem Board verbinden>> oder>> Die verbindung geht über die UART vom Baustein mit meinem UART am> Microcontroller
Versteht das jemand?
Walter schrieb:> John schrieb:>> Hier die Frage muss ich die Pins vom Baustein mit meinem Board verbinden>>>> oder>>>> Die verbindung geht über die UART vom Baustein mit meinem UART am>> Microcontroller>> Versteht das jemand?
Man muss ein bisschen um die Ecke denken, dann kann man wohl erraten, wo
der Schuh drückt.
Alles hängt wohl davon ab, was man hier drunter
> Mein Board hat eine USART Schnittstelle.
zu verstehen hat.
Ist das eine 5V-TTL USART, oder ist das eine echte 12V RS232
Das ...
> Und da habe ich gehört ...
... ist wohl wieder mal das Hauptproblem. Kein Basiswissen wie die Dinge
grundsätzlich funktionieren und als Ausgleich arbeiten nach Hörensagen.
Walter schrieb:>> Die verbindung geht über die UART vom Baustein mit meinem UART am>> Microcontroller>> Versteht das jemand?
Ich habe das mal so interpretiert: UART vom Board ...
Aber Du hast recht: John ist da noch etwas "ungenau" und sollte
vielleicht mal klar sagen, was für Boards er da verbinden will.
Denn wie ich ja schon sagte, ist das:
John schrieb:> Ich wollte mein Board mit einem anderen kommunizieren lassen das keine> USART-Schnittstelle hat.
irgendwie Unsinn, oder zumindest komisch ...
Gruß Dietrich
Dietrich L. schrieb:> Denn wie ich ja schon sagte, ist das:>> John schrieb:>> Ich wollte mein Board mit einem anderen kommunizieren lassen das keine>> USART-Schnittstelle hat.>> irgendwie Unsinn, oder zumindest komisch ...
Das hab ich mir auch gedacht.
Meine aus dem Bauch heraus Erklärung dafür lautet:
Der TO denkt, dass er diesen Umsetzer braucht, um auf dem anderen Board
eine USART nachzurüsten. Nun, dem ist nicht so. Das andere Board braucht
eine eigene USART. Hat es die nicht, dann bringt ihm auch der Umsetzer
nichts.
Karl Heinz schrieb:> Ist das eine 5V-TTL USART, oder ist das eine echte 12V RS232
Was hat USART mit 12V/RS232 zu tun.
Universal Asynchronous Receiver Transmitter ist schlicht und einfach die
Baugruppe, die dafür sorgt, dass die Bits seriell über die Leitung
purzeln und ihren kleinen Datenrahmen bekommen, bzw. umgekehrt wieder
eingesammelt werden und als Byte zur Verfügung stehen. Folglich hat so
ein USART die gleiche Spannung, wie alle anderen IO-Signale des µC.
Wolfgang schrieb:> Karl Heinz schrieb:>> Ist das eine 5V-TTL USART, oder ist das eine echte 12V RS232>> Was hat USART mit 12V/RS232 zu tun.> Universal Asynchronous Receiver Transmitter ist schlicht und einfach die> Baugruppe ....
Das weißt du, das weiß ich und das wissen die meisten hier.
Sieh dir die Anfrage an. Traust du dem Fragesteller wirklich zu, dass er
sich darüber bewusst ist?
Ich nicht.
Manchmal spart man sich den Pegelumsetzer MAX232 auch, und setzt nur
einen TTL-Inverter zwischen µC und PC. Allerdings ist da der Störabstand
gering, mit niedrigen Baudraten z.B. 4800 und nicht zu langem Kabel geht
es aber. Die Empfangsseite am µC hat eine Diode mit Vorwiderstand, um
den Pegel zu begrenzen, und auch wieder einen TTL-Inverter.
Auf diese Art habe ich noch ein altes Elektor-Compuboard für 8031,
welches genau so an den PC angebunden ist.
In industriellen Geräten sah ich das auch schon, um den MAX-Baustein zu
sparen, z.B. ein Handprogrammiergerät mit einem Meter Kabel dran für
eine Anlage.
Also bei 5V Betriebsspannung geht das, bei den modernen 3,3V-Schaltungen
wohl nicht mehr oder kaum noch.
Wenn man einfach nur zwei µC miteinander verbinden will, und kurze
Entfernung, geht es direkt über die µC-Pins. Dort braucht man dann auch
nicht unbedingt eine Standardbaudrate zu wählen, sondern beliebig krumme
Werte. Die MAX-Bausteine haben ja auch eine maximale Baudrate, die
einfachen MAX232 glaube ich 19200, die man bei einer Direktverbindung µC
zu µC aber gerne mal weit überschreitet, z.B. ein Megabaud. Mit dem ganz
alten Standard-8051 schafft man so ohne Baudratenquarz ein Megabaud,
anders auch wegen der bescheidenen Standardbaudratenwahl eher kaum diese
Geschwindigkeit.
Wieviel bringt es auf längere Entfernungen denn eigentlich, die
RS232-Levels zu fahren? Natürlich wenn man davon ausgeht, dass beide
Teilnehmer auf TTL-Level zugeschnitten sind, wenn man die mit Inverter
an einen RS232-Port am PC legt und das funktioniert, ist man jenseits
jeglicher Spezifikation...
greg schrieb:> Wieviel bringt es auf längere Entfernungen denn eigentlich, die> RS232-Levels zu fahren? Natürlich wenn man davon ausgeht, dass beide> Teilnehmer auf TTL-Level zugeschnitten sind, wenn man die mit Inverter> an einen RS232-Port am PC legt und das funktioniert, ist man jenseits> jeglicher Spezifikation...
Nun ja, man braucht nicht überall strenge Spezifikationen. Elektor
schrieb damals zum Compuboard, daß die Verbindung zum PC auf die
einfache Art auch ausreichend funktionieren würde. Ein Bastelboard ist
keine sicherheitskritische ausfallsichere Anlage.
Wilhelm F. schrieb:> Nun ja, man braucht nicht überall strenge Spezifikationen. Elektor> schrieb damals zum Compuboard, daß die Verbindung zum PC auf die> einfache Art auch ausreichend funktionieren würde.
So einen "Pegelwandler" (ganz einfach diskret mit Transistoren
aufgebaut) hab ich hier auch noch herumfliegen, aber mittlerweile setze
ich den nicht mehr ein, da der je nach Mondphase, Horoskop und
verwendetem RS232-Port entweder zuverlässig funktioniert oder auch
nicht.
Mittlerweile ist es wohl am besten, einfach die billigen
USB-UART-Adapter vom Chinesen zu verwenden.
greg schrieb:> So einen "Pegelwandler" (ganz einfach diskret mit Transistoren> aufgebaut) hab ich hier auch noch herumfliegen,
Ja, stimmt, einfach mit Transistoren ging es auch. Auf dem Compuboard
waren noch unbenutzte Gatter in Gatterbausteinen frei, und dann nimmt
man diese halt.
Wenn man auf einem µC-Board irgendwo noch zufällig Spannungen von +/-15V
hat, kann man sich den MAX-Baustein prinzipiell auch wiederum sparen.
> aber mittlerweile setze> ich den nicht mehr ein, da der je nach Mondphase, Horoskop und> verwendetem RS232-Port entweder zuverlässig funktioniert oder auch> nicht.
Gelegentlich hatte ich mit den einfachen TTL-Pegeln auch
Übertragungsfehler, trotz nur 4800BAUD. Das sah man aber am Terminal,
und startete dann einfach den Programmdownload neu. Im Hobby geht das.
Auf einigen Boards habe ich den MAX232, der aber laut Datenblatt nur
eine Höchstbaudrate von 19200 macht. Das war mir zu langsam. Bei kleinen
Assemblerprogrammen ging die Downloadzeit von ein paar Sekunden noch,
aber eine Minute warten für einen Output eines größeren C-Programmes war
mir zu lang. Dann schraubte ich die Baudrate auf 57600 hoch, also das
Dreifache des erlaubten Wertes. Ich war nie mit dem Oszi dran, aber das
Ding machte so noch nie Fehler.
> Mittlerweile ist es wohl am besten, einfach die billigen> USB-UART-Adapter vom Chinesen zu verwenden.
Fürs Notebook habe ich einen Umsetzer USB zu RS232 von Delock, weil es
keine eingebaute RS232 hat. Der Delock arbeitet auch völlig fehlerfrei,
aber die RS232-Pegel hat man immer noch, wie an der echten RS232, kein
TTL-Pegel.
Für die Kabellänge an der RS232 gibts eine grobe Faustformel, in der die
Baudrate umgekehrt proportional zur Kabellänge ist. Nix kompliziertes,
aber immerhin zur groben Abschätzung. Dort kommen eigentlich nur drei
Werte drin vor: Baudrate, Länge, und eine Konstante ähnlich der
Lichtgeschwindigkeit.
Wilhelm F. schrieb:>> aber mittlerweile setze>> ich den nicht mehr ein, da der je nach Mondphase, Horoskop und>> verwendetem RS232-Port entweder zuverlässig funktioniert oder auch>> nicht.>> Gelegentlich hatte ich mit den einfachen TTL-Pegeln auch> Übertragungsfehler, trotz nur 4800BAUD. Das sah man aber am Terminal,> und startete dann einfach den Programmdownload neu. Im Hobby geht das.>
Naja...
> Auf einigen Boards habe ich den MAX232, der aber laut Datenblatt nur> eine Höchstbaudrate von 19200 macht. Das war mir zu langsam. Bei kleinen> Assemblerprogrammen ging die Downloadzeit von ein paar Sekunden noch,> aber eine Minute warten für einen Output eines größeren C-Programmes war> mir zu lang. Dann schraubte ich die Baudrate auf 57600 hoch, also das> Dreifache des erlaubten Wertes. Ich war nie mit dem Oszi dran, aber das> Ding machte so noch nie Fehler.>
Der MAX232 macht bei mir 115200, und funktioniert auch bei nur 3.3V
problemlos. Ist natürlich alles außerhalb der Specs, aber immer noch
deutlich näher dran als gar keine richtige Pegelwandlung. Und bei mir
gab es damit überhaupt keine Übertragungsfehler o.ä.
>> Mittlerweile ist es wohl am besten, einfach die billigen>> USB-UART-Adapter vom Chinesen zu verwenden.>> Fürs Notebook habe ich einen Umsetzer USB zu RS232 von Delock, weil es> keine eingebaute RS232 hat. Der Delock arbeitet auch völlig fehlerfrei,> aber die RS232-Pegel hat man immer noch, wie an der echten RS232, kein> TTL-Pegel.>
Die Chinadinger liefern direkt TTL-Level, und man spart sich das
redundante Pegelwechseln (denn in deinem Delock-Teil steckt auch ein
MAX232 oder vergleichbares). Spottbillig sind sie obendrein. ;)
greg schrieb:> Die Chinadinger liefern direkt TTL-Level, und man spart sich das> redundante Pegelwechseln (denn in deinem Delock-Teil steckt auch ein> MAX232 oder vergleichbares). Spottbillig sind sie obendrein. ;)
USB zu TTL, das kannte ich noch gar nicht. Aber man lernt ja nie aus.
;-)
hallo an alle,
kann jemand von euch mir eine kurze Erklärung geben?
So, ich möchte wissen, wie funktioniert die TTL->RS232 Pegelanpassung.
TTL: HIGH(+5V), LOW(0V)
RS-232: HIGH(-15V),LOW(+15V)
Wenn ich ttl zum RS-232 anpassen will, soll ich dann die Pegel
invertieren?
Z.B. in einer Schaltung kommt ein TTL-Signal am Ausgang, und wenn ich
dieses Signal weiter über ein uC verarbeiten will, dann soll ich rs232
Signal erzeugen(z.B. MAX232 Pegelwandler). MAX232 invertiert schon das
Signal.
Der uC erwartet die Pegel anderer Polarität?
Grüß,
chombe
chombe schrieb:> Der uC erwartet die Pegel anderer Polarität?
Meistens passt die Polarität bei Verwendung einen MAX232 direkt ohne
weitere Invertierung. Ob das bei dem µC passt, sagt Dir sein
Datenblatt und http://de.wikipedia.org/wiki/RS232#Definition :
"Für die Datenleitungen (TxD und RxD) wird eine negative Logik
verwendet, wobei eine Spannung zwischen −3 V und −15 V
(ANSI/EIA/TIA-232-F-1997) eine logische Eins und eine Spannung zwischen
+3 V und +15 V eine logische Null darstellt. "
Gruß Dietrich
chombe schrieb:> kann jemand von euch mir eine kurze Erklärung geben?> ...> Wenn ich ttl zum RS-232 anpassen will, soll ich dann die Pegel> invertieren?
Nein, du steckst auf der einen Seite ein "TTL-High" rein, der
RS-232-Sender konervertiert es auf "RS-232-High", und der
RS-232-Empfänger macht daraus wieder ein "TTL-High".
Das ist eine Schnittstelle, keine Zauberei. Versuche also nicht Probleme
zu lösen, die nicht existieren.
Oder frei nach Einstein: Mach es so kompliziert wie nötig, aber nicht
komplizierter.
;-)