mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 ohne Pegelwandler


Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi User,

Ich habe folgendes Problem:

Ich hab ein funktionstüchtiges Programm mit RS232 Kommunikation. Damit 
ich die Ausgabe am Rechner sehen kann nutze ich Hyperterminal.
Die Ausgabe am TX Pin meines Atmega8 wird mittels MAX232 auf den RS232 
Standart gebracht. Das alles funktioniert.

Nun meine Frage:
Kann ich den Max232 weglassen, wenn es gelingt, die Ausgangspegel (TTL) 
am TX Pin zu invertieren? Erkennt das Hyperterminal den nur 5V hohen 
Pegel?

Reicht eine einfache Schleife zum Invertieren, oder gibt es vielleicht 
einen BASCOM Befehl, der mir das abnimmt. Gerade bei längeren 
Nachrichten könnte es zu einem Zeitproblem kommen.

Also, für Tipps wäre ich euch sehr dankbar.

Atmega8 + Bascom wird verwendet.

MfG Thomas







Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thomas

>Die Ausgabe am TX Pin meines Atmega8 wird mittels MAX232 auf den RS232
>Standart gebracht. Das alles funktioniert.

Super, vor allem mit BASCOM ;-)

>Nun meine Frage:
>Kann ich den Max232 weglassen, wenn es gelingt, die Ausgangspegel (TTL)
>am TX Pin zu invertieren? Erkennt das Hyperterminal den nur 5V hohen
>Pegel?

Dem Hyperteminal ist es ziemlich egal, aber der RS232 Port erkennt auch 
5V als LOW (ist invertierte Logik). Warum willst du den MAX weglassen wo 
doch alles funktioniert?

>Reicht eine einfache Schleife zum Invertieren, oder gibt es vielleicht
>einen BASCOM Befehl, der mir das abnimmt. Gerade bei längeren
>Nachrichten könnte es zu einem Zeitproblem kommen.

Das geht nicht in Software (ich nehme mal stark an, dass du das 
UART-modul nutzt und kein SoftUART), da brauchst du einen Inverter 
(Hardware), z.B. 74HC04. Nur hast du dann hardwaretechnisch so gut wie 
gar nix gewonnen.
Lass es wie es ist und sei glücklich.

MfG
Falk

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laut RS232-Norm müsste es funktionieren wenn Du die Pegel invertierst! 
Vorausgesetzt Du benutzt 5V Pegel!

Eine Schleife zum inertieren....wie meinst Du das?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Sendedatenleitung vom µC zum PC hin funktioniert das, wenn es 
auch nicht wirklich standardkonform ist (Statt 0V sollten mindestens -3V 
anliegen).

Du wirst aber den Sendepegel nicht per Software invertieren können, es 
sei denn, Du benutzt die Software-UART anstelle der Hardware-UART Deines 
Controllers.

Auch bekommst Du ein Problem mit dem Empfang, denn der PC sendet mit 
etwa +/-12V Signalpegel ... die zerstören Deinen Controller

Fazit:

Verwende den MAX232. Versuche nicht, ihn durch was "einfacheres" zu 
ersetzen, das bereitet nur Probleme.

Die einzige sinnvolle Alternative wäre die Verwendung des Pärchens 
MC1488/MC1489 bzw. 75188/75189 oder die zusammengelegte Variante 75232 - 
die aber setzen alle eine symmetrische Spannungsversorgung voraus.

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man einen Software UART nimmt, kann ich mir vorstellen, dass das 
auf Senderseite mit dem ATMEL klappt, da die meisten PC Schnittstellen 
auch mit 0V / 5V Pegeln klarkommen. Auf der Empfängerseite müsstest Du 
den Micro mit einem entsprechend grossen Vorwiderstand (>10k) schützen.

Dann die Software entsprechend umstellen und das müsste gehen.

Gruss
Axel

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk
Mit Bascom gabs noch keine Probleme, v.a. RS232 Komunikatin ist da sehr 
einfach zu machen.

Den MAX will ich aus Platzgründen weglassen. Ich benutze deshalb auch 
schon TQFP32 als Gehäuseform, weil DIL28 schon zu heftig ist.

Hast recht, ich nutze Hardware UART. Ein zusätzliches Bauteil würde mir 
nicht wirklich weiterhelfen.

@Nico
Mit Schleife meine ich, dass manden Zustand eines Pins abfragt, und 
einen anderen Pin genau invertiert setzt/ nicht setzt.

Scheint also nicht ohne weiteres möglich zu sein.

Wie siehts mit einem Software- Uart aus? Besteht da die Chance, die 
Ausgangspegel auch softwareseitig zu invertieren?

Thomas

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kleiner Nachtrag:

Der Atmega soll nur senden. Empfangen ist nicht nötig.

Sonst würde das Empfangen von Daten ohne MAX nur ein kurzes rauchen 
erzeugen.

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann reicht ja ein Transistor oder Einzelgatter ( Conrad hat den 
TC4SU69F von Toshiba) die sind sehr klein.
http://www.conrad.de/goto.php?artikel=171719

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thomas

>Den MAX will ich aus Platzgründen weglassen. Ich benutze deshalb auch
>schon TQFP32 als Gehäuseform, weil DIL28 schon zu heftig ist.

Dann nimm wie Christoph Kessler schon vorgeschlagen hat nen Transistor 
als Inverter. BC846 im SOT23 + 2 Widerstände (10k Basisvorwiderstand + 
1K Kollektorwiderstand) in der Baugrösse deiner Wahl (0602, 0402, 0201). 
Einzelgatter würde ich nicht unbedingt verwenden wollen, wegen der 
eingeschränkten Verfügbarkeit.

>Wie siehts mit einem Software- Uart aus? Besteht da die Chance, die
>Ausgangspegel auch softwareseitig zu invertieren?

Sicher. Doch dazu müsstest du ans Eingemachte der Routine gehen. Wenn du 
nur von BASCOM Ahnung hast kannst du das vergessen.

MFG
Falk

Autor: G. Nicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sofern der PC empfangsseitig nicht unbedingt negative Pegel benötigt, 
kannst Du den MC1489 als Inverter für RX und TX probieren. Der Mega8 
bekommt damit Normgerecht sein RxD-Signal, und sein TxD-Signal wird 
invertiert mit etwa 0,2V und 4,5V ausgangsseitigen Pegeln.
Bei mir hat es immer geklappt, für private und Testaufbauten.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal den DS275 an (Gehäuse: SO-8).


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.