UART Single Wire Signal Invertierung

OP #6451773
Lesenswert?
• ▲
▼
Hallo zusammen,

gibt es einen einfachen Weg (=IC) ein serielles TTL Signal Single Wire 
(ein-Draht-Verbindung für RX und TX) zu invertieren. Ich habe das 
Problem das der SAMD21 Cortex M0+ beim SoftwareSerial im Single Wire 
Mode nicht invertieren kann, also muss eine Hardwarelösung her. :(
#6451820
Lesenswert?
• ▲
▼
Arno W. schrieb:
> ....gibt es NOT GATTER auch bi-direktional

Verdammt, das mit dem einen Draht hatte ich übersehen.
Aber gut, es kann ja immer nur eine Quelle die Leitung treiben. Und da 
gibt es schon Schaltungen die bidirektional funktionieren. In 
Spannungsübersetzern sind die drinnen.
https://www.ti.com/lit/gpn/TXB0102
Nur das selber zu bauen und um zwei NOT Gatter zu erweitern ist eher 
eine große Baustelle.

Ist denn wenigstens ein weiterer Pin als Ausgang verfügbar? Dann könnte 
man ein Gatter verwenden mit enable Eingang dessen Ausgang man also 
hochohmig schalten kann.
Gast #6451853
Lesenswert?
• ▲
▼
Gustl B. schrieb:
> Aber gut, es kann ja immer nur eine Quelle die Leitung treiben.

Du hast wired-or nicht verstanden.

Bei CAN, LIN oder 1-wire sind mehrere Datenquellen auf einer Leitung 
(Bus) sogar zum Prinzip erhoben. Man spricht dann von dominantem und 
rezessivem Pegel. Um das friedliche Miteinander kümmert sich das 
Protokoll.
#6452224
Lesenswert?
• ▲
▼
Arno W. schrieb:

> gibt es einen einfachen Weg (=IC) ein serielles TTL Signal Single
> Wire (ein-Draht-Verbindung für RX und TX) zu invertieren.

Nein.

> Ich habe das
> Problem das der SAMD21 Cortex M0+ beim SoftwareSerial im Single Wire
> Mode nicht invertieren kann, also muss eine Hardwarelösung her. :(

Das ist gleich doppelt Blödsinn. Denn natürlich wäre es trivial, den 
Pegel bei Verwendung einer Soft-UART zu invertieren. Es geht aber nicht. 
Der Witz bei singe-wire UART ist ja, daß TxD ein open-collector (bzw. 
open-drain) Ausgang ist. Damit die Gegenseite auch senden kann, muß der 
passive (rezessive) Pegel H sein. Realisiert durch einen 
Pullup-Widerstand.

Im Prinzip könnte man das mit invertiertem Pegel mit einem Pulldown und 
einem PNP open-collector Ausgang machen. Hat ein µC aber nicht. Und 
extern läßt sich das nur dann nachrüsten, wenn man getrennte Sende- und 
Empfangspins hat.
#6453818
Lesenswert?
• ▲
▼
Oder man klemmt einen ATtiny13a o.ä. dawzischen. Der übersetzt dir das 
Signal in beide Richtungen. Damit wird der Bus entkoppelt.

Vorsicht mit dem PullUp/Down. Wenn idle auf 0V ist, gehen ich von einem 
PullDown aus. Die 0V darf dann nicht aktiv auf den Pin gelegt werden, 
sonst kann es zu einem Kurzschluss kommen.

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.