Forum: Mikrocontroller und Digitale Elektronik UART Signal invertieren


von Eimer (Gast)


Lesenswert?

Guten Tag,

ich möchte eine P2P TTL Kommunikation mit verschiedenen Fremdgeräten 
herstellen. Manche dieser Fremdgeräte brauchen teilweise invertiert 
Signale (RX, TX, CTS, DTR, RTS, ..).

Ich suche jetzt nach einer Möglichkeit softwareseitig diese Invertierung 
ein- und auszuschalten. Bei den ATMegas (bevorzugt) habe ich absolut 
nichts dazu gefunden (also geht es wohl auch nicht), bei den STM32 habe 
ich noch nicht ausgiebig geguckt. Der FT232 hat diese Möglichkeit 
(einzelne Signale können auf invertiert gestellt werden), aber leider 
suche ich keinen USB Converter.

Meine Idee wäre jetzt jedes Signal einzeln mit einem IC zu XOR'en.
Würde das so funktionieren? Könnt ihr mir ein Bauteil empfehlen? Die 
Datenrate liegt wohl so bei 1Mbps.

Habt ihr eine alternative Idee?

Beste Grüße
Werner.

von Karl M. (Gast)


Lesenswert?

Hallo Eimer,

warum sollte man das machen wollen?

Die TTL-Pegellage H = "0" und L = "1" sind genormt.

Bei einem AVR kann das über Hardware Usart nicht "umgeschaltet" werden.

Sonst siehst Du das richtig, man nehme einen Transistor in 
Kollektorschaltung, dann ist dies einfach möglich.
Sonst gibt es noch diverse Inverter aus der HC Serie.
74HC14, ist so einer.

von Karl M. (Gast)


Lesenswert?

Sorry,

Du willst ja im laufenden Betrieb die Pegel umschalten können.

Ich nutze gerne den 74HC132.

von Falk B. (falk)


Lesenswert?

Eimer schrieb:

> Ich suche jetzt nach einer Möglichkeit softwareseitig diese Invertierung
> ein- und auszuschalten.

Nimm ein XOR-Gatter ala 74HC86.

> Bei den ATMegas (bevorzugt) habe ich absolut
> nichts dazu gefunden (also geht es wohl auch nicht),

Geht auch nicht.

> Meine Idee wäre jetzt jedes Signal einzeln mit einem IC zu XOR'en.
> Würde das so funktionieren?

Ja.

> Könnt ihr mir ein Bauteil empfehlen? Die
> Datenrate liegt wohl so bei 1Mbps.

Läppisch.

> Habt ihr eine alternative Idee?

Alternativen in Deutschland . . . ? Ja, eine gibt es wohl ;-)

von A. S. (Gast)


Lesenswert?

Es sollten wohl alle oder kein Signal invertiert sein.

Am einfachsten sind 2 Stecker (alternativ 2 uarts) mit RX (TX) 
entsprechend verodert.

XOR geht aber auch.

von Julian B. (julinho)


Lesenswert?

oder ne Soft-Uart, kommt aber auf die Baudrate an und was du sonst noch 
so machst

von Eimer (Gast)


Lesenswert?

> Es sollten wohl alle oder kein Signal invertiert sein.

Da habe ich mich wohl ungenau ausgedrückt. Es soll möglich sein einzelne 
Signale zu invertieren. Also z.B.: TX ist invertiert, RX jedoch nicht.

> Nimm ein XOR-Gatter ala 74HC86.

Danke! Der SN74HC86N würde doch auch gehen, oder? Im Datenblatt habe ich 
kein Argument gegen die Nutzung gefunden, aber vielleicht übersehe ich 
etwas.

von Jacko (Gast)


Lesenswert?

Bist du sicher, dass die externen Geräte das auf TTL-Niveau
wollen? Wenn ja, haben die ein echt stümperhaftes Design.

An der früher üblichen lässigen Zuweisung von DTE und DCE
haben manche Adapterhersteller gut verdient. War ja nur
Steckerbelegung, keine Invertierung.

Auf TTL-Niveau die Polaritäten zu vertauschen ist ja noch
die Steigerung der Dummheit - bei dem kleinen Markt kann noch
nicht mal ein Adapterhersteller dran verdienen.

von tastendrücker (Gast)


Lesenswert?

Karl M. schrieb:
> Die TTL-Pegellage H = "0" und L = "1" sind genormt.

Sehe ich anders. Bei TTL gilt:

hoher Spannungspegel     = H = logisch "1"
niedriger Spannungspegel = L = logisch "0"

https://de.wikipedia.org/wiki/Transistor-Transistor-Logik

Kann es sein, dass die Fremdgeräte einfach nur über RS232 verbinuden 
werden wollen? Da sing die signale invertiert (L="1" und H="0").

von Bernd K. (prof7bit)


Lesenswert?

Eimer schrieb:
> bei den STM32 habe
> ich noch nicht ausgiebig geguckt.

Bei STM32 geht das bei vielen Modellen, RX und/oder TX Pins sind einzeln 
invertierbar. Auch bei NXP Kinetis und auch bei GigaDevice GD32 
(STM32-Klone fürs halbe Geld). Wahrscheinlich bei den meisten 
vernünftigen MCUs heutzutage.

Ist auch ganz praktisch wenn man damit zum Beispiel sowas wie IO-Link 
oder dergleichen machen will. Auch in einigen anderen Fällen die mir 
schon untergekommen sind - insbesondere wenn man die selbe Leitung für 
mehrere Zwecke nutzt - kann es sehr praktisch oder sogar zwingend 
erforderlich sein wenn der Ruhepegel auf 0V liegt.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

tastendrücker schrieb:
> Kann es sein, dass die Fremdgeräte einfach nur über RS232 verbinuden
> werden wollen? Da sing die signale invertiert (L="1" und H="0").

RS232 sieht für den H-Pegel (Space/Idle) eine negative Spannung (< 3V) 
vor.

von tastendrücker (Gast)


Lesenswert?

Wolfgang schrieb:
> tastendrücker schrieb:
>> Kann es sein, dass die Fremdgeräte einfach nur über RS232 verbinuden
>> werden wollen? Da sing die signale invertiert (L="1" und H="0").
>
> RS232 sieht für den H-Pegel (Space/Idle) eine negative Spannung (< 3V)
> vor

Yep, meinen Fehler habe ich auch schon bemerkt (kann aber den Beitrag 
nicht editieren). War noch zu früh am Morgen...

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.