Forum: Mikrocontroller und Digitale Elektronik bidirektionaler Pegelwandler mit "Floating-Erkennung"


von Daniel P. (ppowers)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich stehe gerade etwas auf dem Schlauch...

Ich möchte zwei Systeme miteinander verbinden:
System A ist batteriebetrieben (Versorgungsspannung 1.8V bis max. 3.3V). 
Das Signal [A] ist an einem I/O eines µCs (PIC24F32KA302) angeschlossen.

System B wird mit konstant 3.3V versorgt. Signal [B] ist hier auch an 
eine Logikschaltung angeschlossen. System B ist im Aufbau fix und kann 
nicht modifiziert werden.

System A beeinhaltet eine bidirektionale Pegelwandlung zwischen [A] und 
[B]. Es handelt sich um ein Signal < 1 kHz.

Aktuell sollte es funktionieren, dass wenn ein Signal [A] oder [B] auf 
low gezogen wird, das jeweils andere System dies zuverlässig erkennen 
kann.

Die Frage nun: wie muss ich die Schaltung anpassen, damit [A] immer auf 
low liegt, falls System B nicht angeschlossen ist?
Der Pull-Down rechts von dem FET (R2) reicht nicht aus, da - beim Fehlen 
von System B - ein Spannungsteiler aus R1 und R2 gebildet wird und die 
Spannung von Signal [A] zu hoch für die Erkennung eines Low-Pegels ist.
Ich suche nun eine Lösung, die diese Aufgabe möglichst stromsparend 
erfüllt.

Habt ihr eine Idee?

Danke & Gruß
Daniel

von Daniel P. (ppowers)


Lesenswert?

Ist die Frage so dämlich oder ist das Problem unlösbar? :)

von M. W. (rallini94)


Lesenswert?

Was spricht denn dagegen mal die Widerstände R1 und R2 zu vertauschen?

Hab das gerade mal in LTSpice kurz zusammen geklickt und es sah 
eigentlich ganz gut aus. Ich kam zwar nur auf 0,4V für das Low, aber ich 
hab auch gerade nicht das Modell des BSS138.

von Jim M. (turboj)


Lesenswert?

M. W. schrieb:
> Was spricht denn dagegen mal die Widerstände R1 und R2 zu vertauschen?

Damit funktioniert der (I²C ähnliche) Bus nicht mehr, da andauernd Low.

Bei einem Bus der jeweils nur aktiv Low durchstellt kann man kein 
passives Low durch einfaches Abstecken erzeugen.

von Daniel P. (ppowers)


Lesenswert?

Hi, danke für die Antworten!
@rallini94: sehe das auch so, System B würde ein Dauer-Low erkennen.

Ich hätte noch mehr µC-Pins frei und könnte daher die Floating-Erkennung 
von der eigentlichen Kommunikation trennen. Ich frage mich, ob man mit 
mehreren Dioden etwas schlaues anstellen könnte, komme aber auf keinen 
grünen Zweig :-/

Eigentlich muss es auch keine wirkliche bidirektionale Kommunikation 
sein. Wichtig ist hauptsächlich, dass System A nach System B einen 
low-Pulse übertragen kann. Von System B interessiert mich eigentlich 
nur, ob es überhaupt da (also angeschlossen) ist. Vielleicht lässt sich 
mit dieser aufgeweichten Aufgabenstellung die ganze Sasche anders 
angehen?

Danke Euch!

von Daniel P. (ppowers)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!
Was haltet ihr von dem angehängten Vorschlag?

Ist zwar nicht ganz so fancy wie mit MOSFETs, könnte aber möglicherweise 
den Zweck erfüllen:
- Wenn System B nicht angschlossen ist sollte T2 sperren -> an SYS_A_IN 
liegt ein HIGH-Pegel an
- Wenn System B angeschlossen ist und SYS_B_IN = HIGH, dann sollte T2 
eigentlich leiten und damit SYS_A_IN = LOW sein
- Wenn SYS_A_OUT auf HIGH gesetzt wird, sollte T1 durchschalten und 
SYS_B_IN entsprechend auf LOW ziehen

Aber was ist, wenn SYSTEM B zwar angeschlossen ist, aber SYSTEM A nicht 
eingeschaltet ist? Übersehe ich etwas und es könnte zu parasitärer 
Versorgung von SYS A kommen?

Gibt es noch eine elegantere Lösung für SYS_A_IN, die im idle-Zustand 
(SYS_B_IN auf HIGH) keinen Strom verbraucht? Derzeit fließt ja ständig 
Strom durch R3.

Danke & Gruß
Daniel

von Daniel P. (ppowers)


Angehängte Dateien:

Lesenswert?

Ich habe den Wert von R6 auf 100k erhöht, andernfalls ergibt sich eine 
zu niedrige Spannung an SYS_B_IN im Idle-Zustand.

Der Steuerstrom für T2 liegt jetzt aber bei gerade einmal 18 µA. Kann 
man das machen oder ist die Schaltung bei so hochohmiger Ansteuerung 
(für den Fall System B ist nicht angeschlossen) anfällig für äußere 
Störungen?

von Daniel P. (ppowers)


Angehängte Dateien:

Lesenswert?

Ich habe mich noch einmal auf die Suche nach einem n-Kanal MOSFET mit 
niedrigem V_GS(th) gemacht und bin auf das PMV20XNR (Datenblatt: 
http://www.mouser.com/ds/2/302/PMV20XNE-842460.pdf) gestoßen.

Mit der MOSFET-Variante sieht die Schaltung wie im Anhang aus. Ich würde 
mich über Feedback dazu freuen. Geht das so? Würde man das in der Praxis 
so machen oder mit Bipolartransistoren lösen?
Gibt es noch eine Möglichkeit, den Strom durch R3 im Idle-Zustand 
(SYS_B_IN auf HIGH) zu vermeiden?

Danke!

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.