Forum: Analoge Elektronik und Schaltungstechnik Bidirektionaler 1.4v<->3.3v Pegelwandler


von Alex K. (shadow851)


Lesenswert?

Hallo Leute,

für eine bidirektionale PPM-Kommunikation mit 1.4v Pegel (leider 
ungetaktet, sprich beide Partner könnten gleichzeitig senden wollen. 
wurde mir extern vorgegeben, klar wären andere Protokolle besser) 
benötige ich einen bidirektionalen 3.3v<->1.4v Pegelwandler. Der 
http://datasheets.maxim-ic.com/en/ds/MAX13046E-MAX13047E.pdf sieht recht 
vielversprechend aus, jedoch habe ich noch ziemliche 
Verständnissprobleme was die i/o Zustände im bidirektionalen angeht.
Was passiert wenn beide Seiten gleichzeitig senden wollen?
Kann jemand eine Wahrheitstabelle aufstellen was jeweils bei den 
Kombinationen aus LOW/HIGH/FLOATING an beiden Seiten passiert?

Wäre super wenn mir jemand auf die Sprünge helfen könnte, da ich dabei 
wirklich auf dem Schlauch stehe.

Viele Grüße,
Alex

von Alex K. (shadow851)


Lesenswert?

push

Brauche immer noch Hilfe. Die Frage an sich ist zwar trivial, ich hab 
mir nur inzwischen so viele Kommentare durchgelesen dass ich vermutlich 
den Wald vor lauter Bäumen nicht mehr sehe.

von Johannes E. (cpt_nemo)


Lesenswert?

> Was passiert wenn beide Seiten gleichzeitig senden wollen?

Schau dir mal das Schaltbild auf Seite 9 im Datenblatt an. Darin siehst 
du auf jeder Seite eine Pull-Up Widerstand mit 10 kOhm, in der Mitte ein 
Mosfet und dann noch zwei Funktionsblöcke "One-Shot Rise-Time 
Accelerator".

Im statischen Betrieb sind die beiden P-Kanal Mosfets ausgeschaltet, der 
Mosfet unten hat einen Widerstand von ca. 80 Ohm.
Vermutlich ist dieser Widerstandswert abhängig von der Spannung an den 
I/O-Pins, das ist im Datenblatt nicht so richtig beschrieben. Bei 
ähnlichen Bausteinen von anderen Herstellern ist es so, dass dieser 
Transistor bei Spannungen über einem bestimmten Grenzwert (über die 
Gate-Spannung einstellbar) hochohmig wird.

Wenn der Baustein in der Richtung VCC->VL betrieben wird, dann wird bei 
einem High-Pegel am Eingang die Ausgangsspannung dadurch begrenzt, dass 
der Mosfet hochohmig wird. Der Pull-Up am Ausgang sorgt für die richtige 
Ausgangsspannung.

In der anderen Richtung wird der Mosfet ebenfalls bei einem High-Pegel 
am Eingang hochohmig, die Ausgangsspannung kann durch den Pull-Up am 
Ausgang größer als die Eingangsspannung werden.

Die One-Shot Rise-Time Accelerator-Blöcke haben die Funktion, bei einer 
steigenden Flanke am Eingang den Ausgang durch einen kurzen Stromimpuls 
schnell aufzuladen. Mit dem 10kOhm Pull-Up alleine wäre die Flanke am 
Ausgang wesentlich langsamer.

> Kann jemand eine Wahrheitstabelle aufstellen was jeweils bei den
> Kombinationen aus LOW/HIGH/FLOATING an beiden Seiten passiert?

Der Baustein ist nicht dafür ausgelegt, dass auf der einen Seite ein 
Low-Pegel und auf der anderen Seite gleichzeitig ein High-Pegel angelegt 
wird. Da würde auch keinen Sinn ergeben.

Man hat also immer auf einer Seite (Eingang) High bzw Low; das wird dann 
entsprechend am Ausgang ausgegeben.

von Alex K. (shadow851)


Lesenswert?

@johannes: vielen Dank für die Antwort, hat auf jeden Fall Licht ins 
Dunkle gebracht.
Was würde denn passieren wenn ich an beide Seiten ein aktives Signal 
anlege (in dem Fall würde ich meine Übertragung gerne unterbrechen, dazu 
müsste ich allerdings erstmal erkennen dass jemand anderes den Bus 
überschreibt)?

Mein Dilemma bleibt allerdings: ich habe eine einzelne Leitung über die 
ich Daten via PPM senden bzw. empfangen will. Ursprünglich wurden Master 
und Slave durch die jeweilige Reihenfolge von Gerät einschalten und 
Signalleitung anstecken festgelegt, dies ist mir jedoch zu unsicher. Hat 
jemand einen gute Vorschlag wie ich den Bus Hardwareseitig bidirektional 
anbinden und Softwareseitig den Bus während meinem Senden auf fremde 
Übertragungen überprüfen kann?

Vielen Dank für eure bisherige und zukünftige Hilfe im Voraus,
Alex

von Johannes E. (cpt_nemo)


Lesenswert?

> Was würde denn passieren wenn ich an beide Seiten ein aktives Signal
> anlege (in dem Fall würde ich meine Übertragung gerne unterbrechen, dazu
> müsste ich allerdings erstmal erkennen dass jemand anderes den Bus
> überschreibt)?

Kann ich nicht genau sagen, vermutlich wird der IC dabei etwas warm, 
aber es ist ein Kurzschluss-Schutz eingebaut, also wird vermutlich 
nichts kaputt gehen.

Am einfachsten wäre es, den Baustein mit Open-Collektor/Open-Drain zu 
betreiben, dann kann nichts passieren.

> Hat
> jemand einen gute Vorschlag wie ich den Bus Hardwareseitig bidirektional
> anbinden und Softwareseitig den Bus während meinem Senden auf fremde
> Übertragungen überprüfen kann?

Mit Open-Collector? Wie hoch ist denn die Bitrate?

von Micha (Gast)


Lesenswert?


von Alex K. (shadow851)


Lesenswert?

@johannes: laut db ist eine Abschaltung bei 150°C vorgesehen, als 
regelmäßigen "Anschlag" will ist die Hitzeabschaltung halt möglichst 
vermeiden.

Das Signal sieht in Etwa folgendermaßen aus:
http://www.mftech.de/ppm_en.htm

Mit Open-Collector also in etwa so:
Pull-Up an's Signal und via uC nach Bedarf zum Senden nach Low ziehen?
Zum Empfang müsste ein zweiter Pin genügen der das Signal nach fremden 
Flanken überwacht. Als Pegelwandler würde in dem Fall ein IC mit 2 
unidirektionalen Leitungen ausreichen. Stell ich mir das soweit richtig 
vor?
Stellt sich noch die Frage wie groß der Pull-Up mindestens sein sollte 
dass eine http://www.spektrumrc.com/Products/Default.aspx?ProdId=SPM2731 
die Leitung nach Low ziehen kann. Spezifikationen rückt der Hersteller 
leider keine raus.

Viele Grüße und Danke im Voraus,
Alex

von Johannes E. (cpt_nemo)


Lesenswert?

> Das Signal sieht in Etwa folgendermaßen aus:
> http://www.mftech.de/ppm_en.htm

Das ist das Protokoll für eine RC-Fernsteuerung, das ist doch nicht 
bidirektional? Auf jeden Fall ist das Signal ziemlich langsam 
(ms-Bereich), da sollte Open-Kollektor-Betrieb kein Problem sein.

> Mit Open-Collector also in etwa so:
> Pull-Up an's Signal und via uC nach Bedarf zum Senden nach Low ziehen?
Ja. Wobei der Pull-Up im MAX13046 schon integriert ist (10 kOhm).

> Zum Empfang müsste ein zweiter Pin genügen der das Signal nach fremden
> Flanken überwacht.

Verstehe nicht, was du damit meinst.

> Als Pegelwandler würde in dem Fall ein IC mit 2
> unidirektionalen Leitungen ausreichen. Stell ich mir das soweit richtig
> vor?

Wenn du eine bidirektionale Kommunikation brauchst, dann solltest du 
schon einen bidirektionalen Pegelwandler einsetzen. Allerdings ist der 
MAX13046 für ziemlich schnelle Signale ausgelegt, das brauchst du nicht 
unbedingt.
Vielleicht gibt es so etwas auch ohne "One-Shot Rise-Time Accelerator".

> Stellt sich noch die Frage wie groß der Pull-Up mindestens sein sollte
> dass eine http://www.spektrumrc.com/Products/Default.aspx?ProdId=SPM2731
> die Leitung nach Low ziehen kann. Spezifikationen rückt der Hersteller
> leider keine raus.

Mit 10 kOhm liegst du vermutlich nicht so schlecht, das sollte jeder 
Ausgang auf Low ziehen können.

von Alex K. (shadow851)


Lesenswert?

Johannes E. schrieb:
>> Das Signal sieht in Etwa folgendermaßen aus:
>> http://www.mftech.de/ppm_en.htm
>
> Das ist das Protokoll für eine RC-Fernsteuerung, das ist doch nicht
> bidirektional? Auf jeden Fall ist das Signal ziemlich langsam
> (ms-Bereich), da sollte Open-Kollektor-Betrieb kein Problem sein.
>
Sobald ausgehandelt wurde welcher Endpunkt Master und welcher Slave ist 
ist die Verbindung nur noch unidirektional, die Leitung muss mir aber 
hardwareseitig trotzdem beide Möglichkeiten offen halten.
Wäre der hier (http://www.fairchildsemi.com/ds/FD/FDV303N.pdf) schnell 
genug?

>> Mit Open-Collector also in etwa so:
>> Pull-Up an's Signal und via uC nach Bedarf zum Senden nach Low ziehen?
> Ja. Wobei der Pull-Up im MAX13046 schon integriert ist (10 kOhm).
>
>> Zum Empfang müsste ein zweiter Pin genügen der das Signal nach fremden
>> Flanken überwacht.
>
> Verstehe nicht, was du damit meinst.
>
Da Master und Slave leider nur über die Reihenfolge von Einschalten und 
Signalleitung anstecken festgelegt wird hätte ich gerne die Möglichkeit 
während ich sende auf der Leitung mitzuhören ob der zweite Endpunkt auch 
wirklich Empfänger und nicht Sender ist. Wird das Signal nach Low 
gezogen während mein Output eigentlich nur den Pull-Up arbeiten lässt 
könnte ich meinen Sendevorgang abbrechen und zum Slavemode wechseln.

>> Als Pegelwandler würde in dem Fall ein IC mit 2
>> unidirektionalen Leitungen ausreichen. Stell ich mir das soweit richtig
>> vor?
>
> Wenn du eine bidirektionale Kommunikation brauchst, dann solltest du
> schon einen bidirektionalen Pegelwandler einsetzen. Allerdings ist der
> MAX13046 für ziemlich schnelle Signale ausgelegt, das brauchst du nicht
> unbedingt.
> Vielleicht gibt es so etwas auch ohne "One-Shot Rise-Time Accelerator".
>
Der Maxim-IC liegt noch ein paar mal auf Lager, für den Prototypen 
sollte es ja keinen Unterschied machen.

>> Stellt sich noch die Frage wie groß der Pull-Up mindestens sein sollte
>> dass eine http://www.spektrumrc.com/Products/Default.aspx?ProdId=SPM2731
>> die Leitung nach Low ziehen kann. Spezifikationen rückt der Hersteller
>> leider keine raus.
>
> Mit 10 kOhm liegst du vermutlich nicht so schlecht, das sollte jeder
> Ausgang auf Low ziehen können.
Sehr gut, vielen Dank.


Viele Grüße und nochmals Danke,
Alex

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.