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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.