Forum: Mikrocontroller und Digitale Elektronik AVR UART Pegel softwaremäßig invertiert?


von Markus H. (holzbaer)


Lesenswert?

Hi,
Gibt es eine Möglichkeit die Pegel des AVR UART Receivers und 
Transmitters invertiert auf den IO Pins zu betreiben?
Könnte das extrem gut brauchen, hab aber in der UART Konfig mal nichts 
gefunden. Konkret geht es um einen ATMega162...
Wäre sehr dankbar für einen Tipp!

von Karl H. (kbuchegg)


Lesenswert?

Markus H. schrieb:
> Hi,
> Gibt es eine Möglichkeit die Pegel des AVR UART Receivers und
> Transmitters invertiert auf den IO Pins zu betreiben?
> Könnte das extrem gut brauchen, hab aber in der UART Konfig mal nichts
> gefunden. Konkret geht es um einen ATMega162...
> Wäre sehr dankbar für einen Tipp!

Nicht direkt.
Also entweder: externer Inverter oder Software UART.

Allerdings ist es sehr selten, dass man so etwas benötigt. Verrätst du 
uns den Grund für dein Anliegen?

von Markus H. (holzbaer)


Lesenswert?

Es geht um eine direkte TTL Kommunikation mit verschiedenen 
Fremdgeräten. Neben Unterschieden des Protokolls und der Parity gibt es 
auch noch Geräte die einen Inverter brauchen und solche die keinen 
brauchen.
Um das Softwaremäßig automatisieren zu können wäre es Toll man könnte 
gleich die UART einmal normal und einmal invertiert betreiben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Markus H. schrieb:
> Um das Softwaremäßig automatisieren zu können wäre es Toll man könnte
> gleich die UART einmal normal und einmal invertiert betreiben.
Geht leider nicht.

Karl Heinz Buchegger schrieb:
> Allerdings ist es sehr selten, dass man so etwas benötigt. Verrätst du
> uns den Grund für dein Anliegen?
Ich vermute mal, der Grund ist: "dumm gelaufen, weil nicht richtig 
verstanden". Blöd, wenn sich mal einer nicht an die 
Quasi-Spezifikation gehalten hat:
Zustand    TTL   V.24
1  high    5V    -12V
0  low     0V    +12V

Ruhezustand = '1' = 5V(TTL) bzw. -12V(V.24)

von Thomas B. (nichtessbar)


Lesenswert?

Hängen die Fremdgeräte alle an einem Bus? Wenn, kommen die damit klar 
dass sie andauernd für sie ungültige Daten erhalten?

Würds eher aufsplitten in mehrere Bussysteme / Protokollinterfaces und 
alles das übers serielle Protokoll läuft über die Hardwareusart (Parity 
ändern usw. verursacht am inaktiven Bus keine Signale und die 
entsprechenden Empfänger verwerfen bei genau gegenteiliger Parität die 
Bytes einfach...), den Rest über Softwaretreiber.

von heinzhorst (Gast)


Lesenswert?

Kenne mich mit Atmel nicht aus, aber bei vielen Mikrocontrollern kann 
man den UART durch ein Bit im UART Config-Register invertieren. Schau 
mal ins Datenblatt.

von Karl H. (kbuchegg)


Lesenswert?

Lothar Miller schrieb:

> Ich vermute mal, der Grund ist: "dumm gelaufen, weil nicht richtig
> verstanden".

Das hab ich mir jetzt gerade beim Autofahren auch überlegt. Ich kann mir 
nämlich nicht vorstellen, dass irgendein Hersteller eine TTL-RS232 
verkauft, die sich nicht an den 'Standard' hält. Er würde sich damit 
selbst ein Bein stellen, weil er zu nichts und niemandem kompatibel ist.
Ich kann mir aber vorstellen, dass es ein Hersteller bei einer richtigen 
RS232 nicht so ganz genau mit den Pegeln nimmt und sich drauf verlässt, 
dass die Gegenstelle schon noch genug Spielraum hat um ihn trotzdem zu 
verstehen. Ob man das unterstützen sollte oder nicht, steht dann auf 
einem anderen Blatt.

> gibt es auch noch Geräte die einen Inverter brauchen
denn mit diesem Inverter ist ja im Regelfall auch noch ein anderer 
Spannungshub verbunden. Aus TTL-RS232 mit 0..5V Pegeln wird dann 
invertiert 'richtige' RS232 mit -12V..+12V

von Markus H. (holzbaer)


Lesenswert?

Hier handelt es sich um eine p2p Verbindung und nicht um einen Bus.
Es werden eben je nach Anlage verschiedene Fremdgeräte angeschlossen. Um 
den Monteueren das Leben zu erleichtern versuchen wir das so gut wie 
möglich zu automatisieren.
Mittlerweile habe ich eine Lösung: Ich nehme ein XOR Gatter und steuere 
mit freien uP Pins die Invertierung des Signals. Freie IO Pins habe ich 
genügend zu Verfügung!

von Markus H. (holzbaer)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Lothar Miller schrieb:
>
>> Ich vermute mal, der Grund ist: "dumm gelaufen, weil nicht richtig
>> verstanden".
>
> Das hab ich mir jetzt gerade beim Autofahren auch überlegt. Ich kann mir
> nämlich nicht vorstellen, dass irgendein Hersteller eine TTL-RS232
> verkauft, die sich nicht an den 'Standard' hält. Er würde sich damit
> selbst ein Bein stellen, weil er zu nichts und niemandem kompatibel ist.
> Ich kann mir aber vorstellen, dass es ein Hersteller bei einer richtigen
> RS232 nicht so ganz genau mit den Pegeln nimmt und sich drauf verlässt,
> dass die Gegenstelle schon noch genug Spielraum hat um ihn trotzdem zu
> verstehen. Ob man das unterstützen sollte oder nicht, steht dann auf
> einem anderen Blatt.
>
>> gibt es auch noch Geräte die einen Inverter brauchen
> denn mit diesem Inverter ist ja im Regelfall auch noch ein anderer
> Spannungshub verbunden. Aus TTL-RS232 mit 0..5V Pegeln wird dann
> invertiert 'richtige' RS232 mit -12V..+12V

Natürlich ist es stumpfsinnig sich nicht an diverse Standards zu halten, 
leider habe ich keinen Einfluss auf diese Geräte und muss mit der 
idiotischen Ansteuerung leben!
Ich würde niemals so was bauen!

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.