Forum: Mikrocontroller und Digitale Elektronik Attiny2313 an RS-232


von Dshing S. (dshing)


Lesenswert?

Hi,
ich bin Einsteiger im Gebiet der µC, daher entschuldigt bitte, wenn 
meine Frage etwas doof ist.

Ich würde gerne einen ATtiny 2313 an den RS-232 meines Pc's anschließen 
und ihn bestimmte Operationen ausführen lassen.
Ich stelle mir das so vor, das ich dem µC einen bestimmten Byte eine 
bestimmte Operation zuordne.
Also z.B. schrieb ich mit in C# eine Formanwendung, die verschiedene 
Buttons hat und jeder Button sendet dem µC ein anderen Byte, worauf er 
reagiert. (sollte Byte nicht das richtige Wort sein entschuldigt bitte)
Jetzt weiß ich aber nicht genau wie ich das anstellen soll.
Ich würde jetzt erstmal vermutn, das ich den TX Kanal des RS-232 an den 
PD0(RXD) und den RX Kanal des RS-232 an den PD1(TXD) anschließe und dann 
die entsprechende Software dazu erstelle.

Würde das so aus hardwaretechnischer Sicht so klappen? Oder ist das 
komplett falsch? Wenn ja wie muss ich dann Vorgehen? Ich werde aus den 
222 Seiten des Datasheets nicht richtig schlau.

von Rene Z. (rzimmermann)


Lesenswert?


von Helfer (Gast)


Lesenswert?

> Ich würde jetzt erstmal vermutn, das ich den TX Kanal des RS-232 an den
> PD0(RXD) und den RX Kanal des RS-232 an den PD1(TXD) anschließe und dann
> die entsprechende Software dazu erstelle.
>
> Würde das so aus hardwaretechnischer Sicht so klappen?

Nö, der Attiny2313 würde das übelnehmen, weil er TTL Pegel erwartet und 
mit dem RS232 Pegel nicht zurecht kommt.

Spanische Dörfer?

Dann im Artikel RS232 schmökern, vielleicht den Artikel 
Pegelwandler lesen und undedingt die Tutorials AVR-Tutorial 
(Assembler) oder AVR-GCC-Tutorial (C) zum Thema UART lesen.

von Dshing S. (dshing)


Lesenswert?

Hmm, ja darauf hätte ich auch kommen können, zum Glück hab ich es nicht 
getestet :)
Ich nehme an, wenn ich einfach die -12V "wegschneide" und die +12V auf 
+5V runter regele "versteht" der Tiny das nicht mehr oder?

Also brauche ich zwangsläufig noch so ein MAX232 oder gibt es da noch 
andere Wege?

von Arne S. (Gast)


Lesenswert?


von Dshing S. (dshing)


Lesenswert?

Ohhh bei so geringen Preisen ist das echt eine Überlegung, nur da sind 
ja die Versandkosten höher als der Wandler.
Schwere Entscheidung.
Würde denn meinem Vorhaben sonst noch etwas im Wege stehen, was ich 
bisher übersehen habe?

von Walter S. (avatar)


Lesenswert?

Dshing Sung schrieb:
> Ich nehme an, wenn ich einfach die -12V "wegschneide" und die +12V auf
> +5V runter regele "versteht" der Tiny das nicht mehr oder?

das geht im Prinzip schon, allerdings nicht mit dem eingebauten UART,
das Signal ist nämlich invertiert:
-12V ist 1
+12V ist 0

lösen könntest du das mit einem Software UART oder per Hardware das 
Signal invertieren (oder doch gleich einen richtigen Wandler einsetzen)

von Dshing S. (dshing)


Lesenswert?

Aber das sollte dann ja nur beim Antworten Probleme Bereiten, bei Senden 
an den µC müsste es dann aber gehen.

von Helfer (Gast)


Lesenswert?

Nee, das TTL Signal und das RS232 Signal sind gegenseitig invers.

TTL: http://www.mikrocontroller.net/wikifiles/8/8f/Seri_ttl.png
RS232: http://www.mikrocontroller.net/wikifiles/e/e7/Rs232.png

Die Hardware-UART erkennt ein Startbit als LOW TTL (bzw. RS232 >+3V) 
nach HIGH TTL (RS232 <-3V) und startet damit den Empfang des Datenframes 
bis zum Stopbit.

Diese Situation bei Hardware-UART kannst du durch Spannungsbegrenzung 
des RS232-Signals auf 0 bis +5V allein nicht verwirklichen. Deshalb 
der(die) Inverter (Senden&Empfangen).

Die bereits von Walter genannte Alternative ohne Hardware-Inverter wäre 
Software-UART. Dort machst du die Erkennung des Startbits und die 
Invertierung selbst per Programm.

von Johannes F. (Gast)


Angehängte Dateien:

Lesenswert?

Wenn der µC nur empfangen soll, müsste diese Schaltung funktionieren.
Am Kollektor des Transistors kann man das invertierte Signal mit 0V / 5V 
abnehmen.

Grüße

von Dshing S. (dshing)


Lesenswert?

Ok, dann werde ich wohl mal 5€ investieren, und mir die Arbeit sparen.
Danke an alle für die Hilfe.

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.