Forum: Mikrocontroller und Digitale Elektronik tiny1/mega0 inverted half-duplex


von Randy B. (rbrecker)


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.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

hast du schon PINnCTRL und das INVEN Bit probiert?

von Randy B. (rbrecker)


Lesenswert?

Veit D. schrieb:
> Hallo,
>
> hast du schon PINnCTRL und das INVEN Bit probiert?

Nein, denn m.E. löst es das Problem OpenDrain (N-Channel) <-> OpenSource 
(P-Channel) nicht.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich dachte es geht ums invertieren des Pin Levels am TX?
Was genau möchtest du invertieren? Ich habs nicht verstanden.

von Georg M. (g_m)


Lesenswert?

Randy B. schrieb:
> Nein, denn m.E. löst es das Problem OpenDrain (N-Channel) <-> OpenSource
> (P-Channel) nicht.

Kann "OpenSource" überhaupt funktionieren?

von Randy B. (rbrecker)


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.

von Randy B. (rbrecker)


Lesenswert?

Georg M. schrieb:
> Kann "OpenSource" überhaupt funktionieren?

Wo sind Deine Bedenken?

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.