Forum: Mikrocontroller und Digitale Elektronik MAX 232 zwei Serielle Verbindungen


von MICHEL (Gast)


Lesenswert?

Liebe Forenmitglieder,
falls meine Frage unnötig und dumm ist entschuldige ich mich schonmal im 
voraus. Ich würde gerne eine ATmega 16 über RS232 mit meinem Computer 
verbinden um den Computer als Terminal zu nutzen. Als Pegelwandler hab 
ich mir den MAX232 ausgesucht. Die Standartbeschaltung für eine 
Verbindung ist mir klar. Mir ist aufgefallen das es ja nicht nur z.B. 
T1IN gibt sonder auch T2IN. Wenn ich es richtig verstanden hab kann ich 
einfach zwei Serielle Verbindungen parallel über den MAX laufen lassen 
ohne Zusatzbeschaltung. Blöde Frage aber ich hab sonst niemanden zum 
fragen.

Würde mich über schnelle Antwort freuen :D

MICHEL

von holger (Gast)


Lesenswert?

>Wenn ich es richtig verstanden hab kann ich
>einfach zwei Serielle Verbindungen parallel über den MAX laufen lassen
>ohne Zusatzbeschaltung.

Im Prinzip schon. Nur hat der ATMega16 nur einen UART.
Könntest noch einen Software Uart bauen, aber das ist immer ein Krampf.

von Cyblord -. (cyblord)


Lesenswert?

MICHEL schrieb:
> Liebe Forenmitglieder,
> falls meine Frage unnötig und dumm ist entschuldige ich mich schonmal im
> voraus. Ich würde gerne eine ATmega 16 über RS232 mit meinem Computer
> verbinden um den Computer als Terminal zu nutzen. Als Pegelwandler hab
> ich mir den MAX232 ausgesucht. Die Standartbeschaltung für eine
> Verbindung ist mir klar. Mir ist aufgefallen das es ja nicht nur z.B.
> T1IN gibt sonder auch T2IN. Wenn ich es richtig verstanden hab kann ich
> einfach zwei Serielle Verbindungen parallel über den MAX laufen lassen
> ohne Zusatzbeschaltung.

Völlig Richtig. Der 2. Kanal beim MAX232 ist eigentlich für die RS232 
Handshake-Leitungen RTS und CTS vorgesehen, ist aber mit dem 1. Kanal 
identisch.

gruß cyblord

von spess53 (Gast)


Lesenswert?

Hi

>Im Prinzip schon. Nur hat der ATMega16 nur einen UART.
>Könntest noch einen Software Uart bauen, aber das ist immer ein Krampf.

Wenn er sich nicht auf den ollen ATMega16 versteifen würde gäbe es ja 
noch ATMega164/324/644/1284 mit 2 UARTs. Oder wenn es schon ein Oldtimer 
sein soll gäbe es noch der ATMega162.

MfG Spess

von MICHEL (Gast)


Lesenswert?

Super ich wollte damit einen "Breadboardadapter" bauen also auf einer 
Seite Versorgung usw. und auf der anderen Seite TXD1/2 und RXD 1/2. Dann 
Kann ich auf meinem Breadboard auch 2 µCs einsetzen und über RS232 
verbinden. Hoffe es klappt und noch vielen Dank :D

Mfg MICHEL

von Cyblord -. (cyblord)


Lesenswert?

MICHEL schrieb:
> Super ich wollte damit einen "Breadboardadapter" bauen also auf einer
> Seite Versorgung usw. und auf der anderen Seite TXD1/2 und RXD 1/2. Dann
> Kann ich auf meinem Breadboard auch 2 µCs einsetzen und über RS232
> verbinden. Hoffe es klappt und noch vielen Dank :D
>
> Mfg MICHEL

2 Controller kannst du per RS232 auch direkt verbinden. Da brauchts 
keinen Pegelwandler.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Mehrere serielle Schnittstellen über einen gemeinsamen Pegelwandler zu 
führen, ist normalerweise problemlos möglich, insbesondere bei der 
geschilderten Anwendung.

Problematisch wird es nur, wenn z.B. bei einer Steuerung die eine 
serielle Schnittstelle maschinenintern verwendet wird und die andere nur 
eine externe Diagnoseschnittstelle darstellt. Schließt man an die 
Diagnoseschnittstelle ein falsches Anschlusskabel an, bei dem RxD und 
TxD falsch verdrahtet sind, also TxD und TxD gegeneinander arbeiten, so 
bricht die Spannungsversorgung des MAX232 zusammen. Folglich würden auch 
die Pegel der korrekt verdrahteten ersten Schnittstelle einbrechen und 
könnten Fehlfunktionen verursachen.

Bei direkt gespeisten Pegelwandlern (1488/1489) besteht das Problem 
nicht, da sie keine internen Ladungspumpen zur Erzeugung der +/-12V 
verwenden, sondern extern gespeist werden. Dafür sind diese leider oft 
nicht dauerkurzschlussfest.

Bei einem unserer Kundenprojekte mussten die DC/DC-Wandler nur deswegen 
zwei Nummern größer als eigentlich benötigt ausgelegt werden, damit im 
Falle  gleichzeitiger Kurzschlüsse auf allen externen Schnittstellen 
kein Einbruch der Versorgungsspannung und somit Fehlfunktionen des 
Prozessorteils auftreten können.

von MICHEL (Gast)


Lesenswert?

@cyblord danke für den Hinweis aber so hab ichs nicht gemeint. Ich 
meinte das 2 µC auf dem Breadboard sind und jeder mit dem PC 
kommuniziert und nicht untereinander. Aber gut das ich das jetzt weiß 
mit der Kommunikation zwischen µCs :D

@Andreas Schweigstill vielen dank für die tollen Infos. Ich hab noch 2 
ein bischen andere Frage. Wenns keinen stört würde ich sie gerne hier 
stellen.



1. Das ganze Projekt soll ürgendwann zu einem Terminal fertiggestellt 
werden. Die erste Frage dreht sich um die Programmierung. Also 
gedanklich sieht es so aus der nutzer hat ein "Terminal" mit PS2 
Tastatur und 128*700 (nicht genau hab die werte grad nicht da :D) LCD 
Display. Diese Terminal ist mit irgendeiner Schaltung über RS232 
verbunden. Ich würde es dem nutzer gerne möglich machen z.B. in eine 
Command Line "PORTB 5 1" zu schreiben und so dem PIN 5 von PORTB (des 
Controllers der Perepherie Schaltung)  auf high zu schalten. Nun ist die 
Frage soll das terminal die Eingabe so wie sie da steht einfach an die 
Schaltung senden ,die Sie dann interpretiert und die geforderte Aktion 
ausführen,  oder soll es gleich einen Befehlscode mit tokens also mit 
einem Protokoll erzeugen und versenden. Ich zerbrech mir den Kopf da 
beides seine Vorteile hat. Wenn das Terminal einfach sendet was der user 
eingibt kann ich es natürlich für fast jedes andere Projekt verwenden 
dafür muss der controller eben alles interpretieren.

2. Macht so ein Terminal überhaupt sinn oder sollte jede schaltung wenn 
sie was zu displayen hat selber einen Display enthalten ?

Freue mich auf eure Antworten

MICHEL

von holger (Gast)


Lesenswert?

>2. Macht so ein Terminal überhaupt sinn oder sollte jede schaltung wenn
>sie was zu displayen hat selber einen Display enthalten ?

Hör auf Drogen zu nehmen.

von spess53 (Gast)


Lesenswert?

Hi

>Ich würde es dem nutzer gerne möglich machen z.B. in eine
>Command Line "PORTB 5 1" zu schreiben und so dem PIN 5 von PORTB (des
>Controllers der Perepherie Schaltung)  auf high zu schalten.

Die Anzahl der möglichen Nutzer dürfte gegen 1, nämlich dich, tendieren. 
Und auch da wird das Interesse nur kurz sein.

MfG Spess

von MICHEL (Gast)


Lesenswert?

@holger Ich finde Terminals persönlich auch am besten aber an unserer 
Schule gibt es einen Lehrer der die Theorie mit den displays vertritt. 
Da wollte ich nur mal nachfrage was ihr davon haltet.

Allgemein ist diese Geschichte mit den Befehlen die Interpretiert werden 
nützlich oder bloß unnötiger quatsch ?

Mfg MICHEL

von holger (Gast)


Lesenswert?

>Allgemein ist diese Geschichte mit den Befehlen die Interpretiert werden
>nützlich oder bloß unnötiger quatsch ?

"PORTB 5 1" ist auch nur ein token.
Du musst es in der Software interpretieren.
Das versteht der Controller sonst nicht.
Du kannst auch 0xFF567890 als token senden.
Was bedeutet das? Ich weiss es nicht. Der Controller
muss es interpretieren.

Das was dein Lehrer wohl meinte war den Kram als Binärcode
zu senden. Das wird dann kürzer als ASCII Code.
Interpretieren musst du beides. Binärcode ins Terminal
einzutippen könnte doch recht schwierig werden;)

von MICHEL (Gast)


Lesenswert?

@holger die Frage ist ja ob das terminal diesen Befehl in eine Bytecode 
übersetzt den es sendet oder ob es per ascii einfach alle chars sendet. 
Also einfach nur wer interpretiert (zählen wir Bytecode in action nicht 
hinzu).

Mfg MICHEL

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.