Attiny2313 an RS-232

OP #2141349
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.
Gast #2141359
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.
#2141539
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)
Gast #2142292
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren