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
@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
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?
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.
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
@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
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.
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
@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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.