tiny1/mega0 inverted half-duplex

#6446790
Lesenswert?

Hallo zusammen,

die mittel-neuen AVRs tiny1 und mega0 bieten UARTs mit loop-back-mode 
und open-drain Betrieb. Damit lassen sich wunderbar half-duplex Busse 
realisieren. Etwa solche, wie im RC-Bereich verwendet (IBus, 
Hott-Telemetrie, ...). Es gibt aber auch Bus-Systeme, die benutzen 
invertierte Pegel (etwa S.Port).

Dazu müsste man den UART-Output invertieren können und statt open-drain 
so etwas wie open-source (der FET-Anschluss ist gemeint) realisieren.

Wenn man beides in einem Layout realisieren möchte (inverted / 
non-inverted bus), und dann SW-mäßig umschaltbar, wie würde man das 
realisieren.

Im Moment fällt mir dazu nur ein:

1) auf LBME und ODMODE des AVR zu verzichten

2a) für non-inverted einen abschaltbaren OpenDrain-Treiber (Low-Side) 
für TX und abschaltbaren Puffer für RX, bzw.

2b) für inverted einen abschaltbaren OpenSource-Treiber (High-Side) für 
TX und einen abschaltbaren, invertierenden Puffer für RX

3) Richtungsumkehr per XDir

zu verwenden.

Geht es auch einfacher?
Bin für jeden Hinweis dankbar.
#6447119
Lesenswert?

Veit D. schrieb:
> Hallo,
>
> ich dachte es geht ums invertieren des Pin Levels am TX?

Richtig, allerdings in Kombination mit einem half-duplex bus.

Im "normalen" Modus hat man einen OpenDrain-Output. D.h. mehrere 
Teilnehmer können  gleichzeitig senden: elektrisch zwar ok, es ergibt 
aber eine Kollision, die man dann aber durch das read-back detektieren 
kann.

> Was genau möchtest du invertieren? Ich habs nicht verstanden.

Jetzt das ganze invertiert: also nicht per OpenDrain nach Gnd ziehen, 
sondern per Open-Source (P-Channel) nach High ziehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren