Forum: Analoge Elektronik und Schaltungstechnik UND Schaltung P-Kanal


von Andre (Gast)


Lesenswert?

Ich habe zwei Bauteile (Modellbahn) die auf mechanische Aktionen einen 
Eingang auf 0V ziehen.

Ein weiteres Bauteil (Arduino) dessen Anschluss erwartet auf 0V gezogen 
zu werden, intern mit Pull-Up auf 5V.

Jetzt würde ich gern die zwei ersten Bauteile in einer UND Logik 
miteinander verbinden. Also der Pin am Arduino soll nur auf 0V gezogen 
werden, wenn beide Bauteile auf 0V ziehen.

Ist es möglich, dazu zwei p-Kanal Mosfets in Reihe zu schalten. Und 
jeweils am Gate eins der Bauteile anzuschließen. Somit würde eine 
Verbindung zu 0V nur zustande kommen, wenn beide Gates Richtung 0V 
gehen.

Habe ich da einen Gedankenfehler oder ist das so möglich?

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Andre schrieb:
> Ist es möglich, dazu zwei p-Kanal Mosfets in Reihe zu schalten. Und
> jeweils am Gate eins der Bauteile anzuschließen. Somit würde eine
> Verbindung zu 0V nur zustande kommen, wenn beide Gates Richtung 0V
> gehen.

Nein, das geht so nicht.

Aber die gewünschte Funktion ist nichts anderes als eine ODER-Funktion.

Am Besten gleich ein CMOS-ODER-Gatter nehmen, oder ein NOR-Gatter plus 
Inverter (auch mit NOR), oder 2 Inverter und ein NAND Gatter, u.v.m.

Nachtrag: Wenn du unbedingt mit MOSFETs arbeiten möchtest: 3x N-Kanal 
(1x NOR, 1x Inverter) + 4 Pull-Up-Widerstände.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Man nimmt ganz einfach zwei der Arduino-Eingänge, und verknüpft die in 
der SW entsprechend ...

von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

Nutze die De Morganschen Theoreme aus, dann geht das sogar mit nur zwei 
Dioden und einem bipolaren NPN Transistor.

von Jens G. (jensig)


Lesenswert?

Ach Du grüne Neune (Gast)

>Nutze die De Morganschen Theoreme aus, dann geht das sogar mit nur zwei
>Dioden und einem bipolaren NPN Transistor.

Das macht aber nicht 1x 0V aus 2x 0V ...

von Ach Du grüne Neune (Gast)


Lesenswert?

Ach, ich habe mich verzettelt. Die Schaltung soll genau umgekehrt sein. 
Sorry, mein Fehler.

von Ach Du grüne Neune (Gast)


Lesenswert?

Jens G. schrieb:
> Das macht aber nicht 1x 0V aus 2x 0V ...

Ja, ich hab's auch gerade gemerkt. Jetzt könnte man tatsächlich noch den 
P-MOSFET am Ausgang anschließen. Den Pull Down an der Basis habe ich, im 
Eifer des Gefechts,  auch vergessen.
Aber das werden dann auch schon wieder mehr Bauteile, als man eigentlich 
haben will.

Jens G. schrieb:
> Man nimmt ganz einfach zwei der Arduino-Eingänge, und verknüpft
> die in der SW entsprechend ...

Ja, das ist dann wohl doch das Einfachste.

von Andre (Gast)


Angehängte Dateien:

Lesenswert?

Am Arduino lässt sich leider kein weiterer Eingang verwenden.

Ich habe es nochmal aufgezeichnet. Da ich glaube mich missverständlich 
ausgedrückt.

Gewollt ist, das der Anschluss am Arduino auf 0V gezogen wird, wenn 
beide Modelbahn-Bauteile ihren Ausgang mit 0V verbinden.

Da beide P-Mosfets am Gate weniger Spannung als an der Source haben, 
sollte der DS-Widerstand Richtung 0Ohm gehen womit am Arduino Anschluss 
doch nahezu 0V anliegen sollten.

Wenn das nicht funktioniert, könnt ihr mir bitte erklären, worin mein 
Gedankenfehler liegt?

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Ein P-Kanal-MOSFET wird mit einer negativen Spannung relativ zu seinem 
Source-Anschluss angesteuert.

von Andre (Gast)


Lesenswert?

Eberhard H. schrieb:
> Ein P-Kanal-MOSFET wird mit einer negativen Spannung relativ zu seinem
> Source-Anschluss angesteuert.

Die Source liegt doch bei 5V und das Gate bei 0V. Somit liegt das Gate 
doch relativ negativ zur Source um 5V. Oder nicht?

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Andre schrieb:
> Eberhard H. schrieb:
>> Ein P-Kanal-MOSFET wird mit einer negativen Spannung relativ zu seinem
>> Source-Anschluss angesteuert.
>
> Die Source liegt doch bei 5V und das Gate bei 0V. Somit liegt das Gate
> doch relativ negativ zur Source um 5V. Oder nicht?

Mit dem Widerstand an Source folgt hier Source dem Gate um die 
Threshold-Spannung, ist also immer entsprechend höher und wird nie zu 
0V.

Deshalb klappt deine Idee nicht.

Wenn Bauteil 1 und Bauteil 2 aber 5V aktiv treiben und nicht nur nach 
GND (0V) schalten), reichen auch 2 Dioden und ein Pull-Down-Widerstand, 
eben die ODER-Schaltung.

von Andre (Gast)


Lesenswert?

Ok. Es liegt also am PullUp an der Source. Schade und Danke für die 
Erklärung.

Die Bauteile 1 und 2 haben intern ein PullUp zu 5V und ziehen über 
N-Mosfet Richtung 0V (GND).

von Georg M. (g_m)


Lesenswert?


von HildeK (Gast)


Lesenswert?

Andre schrieb:
> Gewollt ist, das der Anschluss am Arduino auf 0V gezogen wird, wenn
> beide Modelbahn-Bauteile ihren Ausgang mit 0V verbinden.

Problem der Schaltung ist, dass du einen Sourcefolger gebaut hast. Die 
liefern dann keine 0V. Jeder erhöht den LOW-Pegel um UGS.
Das wäre die Lösung:
Eberhard H. schrieb:
> Wenn Bauteil 1 und Bauteil 2 aber 5V aktiv treiben und nicht nur nach
> GND (0V) schalten), reichen auch 2 Dioden und ein Pull-Down-Widerstand,
> eben die ODER-Schaltung.

Oder du brauchst halt noch einen Inverter, also einen dritten 
Transistor.

von Jens G. (jensig)


Lesenswert?

Andre (Gast)

>Am Arduino lässt sich leider kein weiterer Eingang verwenden.

Pech.

>Ich habe es nochmal aufgezeichnet. Da ich glaube mich missverständlich
>ausgedrückt.

>image.jpg

Egal ob Du p-Kanal oder n-Kanal nimmst, oder npn oder pnp, der 
PullUp/Down gehört in die Drainleitung (nicht in Source, womit die 
Spannungsverstärkung deutlich kleiner 1 wäre).
Auserdem ist solch eine Schaltung dann immer invertierend. D.h., Du mußt 
grundsätzlich noch eine zusätzliche Transistorstufe zum nochmaligem 
Invertieren nachschalten.
Da Du letztlich ein OR bauen willst, sind zwei serielle p-Kanal mit 
drainseitigem PullUp (unten) und nachfolgender Inverterstufe (im 
einfachsten ein n-Kanal mit PullUp im Drain) schon mal (als eine 
Variante) richtig.

: Bearbeitet durch User
von Eberhard H. (sepic) Benutzerseite


Angehängte Dateien:

Lesenswert?

Andre schrieb:
> Die Bauteile 1 und 2 haben intern ein PullUp zu 5V und ziehen über
> N-Mosfet Richtung 0V (GND).

Dann klappt das mit 2 Dioden als ODER auch nicht.

Es bleibt jedoch noch eine analoge Lösung, im einfachsten Fall mit 3 
Widerständen.
Hierzu sollte man den Wert der Pull-Up-Widerstände bei BAUTEIL1 und 
BAUTEIL2 einigermaßen kennen.

Dann könnte die sehr einfache Schaltung z. B. wie im Anhang ausschauen.

R3 ist der offensichtlich bereits vorhandene Pull-Up-Widerstand beim 
Arduino-Board.

Die ATmegas haben CMOS-Eingänge mit ca. 0,5V Hysterese @5V.
Pegel < 2V bzw. > 3V erfüllen also die LOW/HIGH-Bedingungen.

Wenn die Pull-Up-Werte bei BAUTEIL1 (R4) und BAUTEIL2 (R5) stark von 10 
kOhm abweichen, muss man ggf. die Werte von R1 bis R3 anpassen.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

Eberhard H. schrieb:
> Dann klappt das mit 2 Dioden als ODER auch nicht.

Doch schon. Der PU am Arduinoeingang muss halt zu einem PD und im Wert 
ggf. angepasst werden.
Wie dimensionieren hängt halt davon ab, was diese 'Bauteile' für einen 
PU haben.

von Andre (Gast)


Lesenswert?

Jens G. schrieb:
> Egal ob Du p-Kanal oder n-Kanal nimmst, oder npn oder pnp, der
> PullUp/Down gehört in die Drainleitung (nicht in Source, womit die
> Spannungsverstärkung deutlich kleiner 1 wäre).

Danke, verstanden.

Eberhard H. schrieb:
> Dann klappt das mit 2 Dioden als ODER auch nicht.
>
> Es bleibt jedoch noch eine analoge Lösung, im einfachsten Fall mit 3
> Widerständen.
> Hierzu sollte man den Wert der Pull-Up-Widerstände bei BAUTEIL1 und
> BAUTEIL2 einigermaßen kennen.
>
> Dann könnte die sehr einfache Schaltung z. B. wie im Anhang ausschauen.
>
> R3 ist der offensichtlich bereits vorhandene Pull-Up-Widerstand beim
> Arduino-Board.
>
> Die ATmegas haben CMOS-Eingänge mit ca. 0,5V Hysterese @5V.
> Pegel < 2V bzw. > 3V erfüllen also die LOW/HIGH-Bedingungen.
>
> Wenn die Pull-Up-Werte bei BAUTEIL1 (R4) und BAUTEIL2 (R5) stark von 10
> kOhm abweichen, muss man ggf. die Werte von R1 bis R3 anpassen.

Cool, ich denke ich habe es verstanden. Wenn nur ein Bauteil auf GND 
zieht, habe ich den Spannungsteiler von 10k und 12k. Wenn beide auf GND 
ziehen habe ich den Spannungsteiler zwischen 10k und 6k (2x12k 
parallel). Und somit nur bei beiden ein Low am Arduino.

HildeK schrieb:
> Doch schon. Der PU am Arduinoeingang muss halt zu einem PD und im Wert
> ggf. angepasst werden. Wie dimensionieren hängt halt davon ab, was diese
> 'Bauteile' für einen PU haben.

Ok, das kann ich noch nicht ganz nachvollziehen.

Ich vermute das jeweils einer der Beiden Bauteile den Arduino Eingang 
oben hält. Und wenn beide gegen Masse schalten, bleibt der 
Spannungsteiler zwischen Arduino PullUp und 50k PullDown. Aber dann wäre 
am Arduino Pin kein Low.


Aber Danke. Ihr habt zum verstehen viel geholfen.

von HildeK (Gast)


Lesenswert?

Andre schrieb:
> Ok, das kann ich noch nicht ganz nachvollziehen.
>
> Ich vermute das jeweils einer der Beiden Bauteile den Arduino Eingang
> oben hält. Und wenn beide gegen Masse schalten, bleibt der
> Spannungsteiler zwischen Arduino PullUp und 50k PullDown. Aber dann wäre
> am Arduino Pin kein Low.

Deine Quellen haben einen OC-Ausgang mit einem Pullup in unbekannter 
Höhe. Einigermaßen niederohmig wäre von Vorteil.
Der Arduino hat m. W. normalerweise keinen eingebauten PU, sondern eher 
einen per SW konfigurierbaren - gut, ich hab keinen zur Hand, um 
nachzuschauen. Zur Not müsste man den entfernen, auf jeden Fall in der 
SW deaktivieren.
Wenn dann beide "Bauteile" auf LOW sind, dann wird der 50k den 
Arduino-Eingang auf LOW ziehen.

von Manfred (Gast)


Lesenswert?

HildeK schrieb:
> Problem der Schaltung ist, dass du einen Sourcefolger gebaut hast. Die
> liefern dann keine 0V.

Ich bin der Meinung, dass die Schaltung laufen kann, wenn an beide Gate 
noch ein Widerstand nach +5V kommt und die FETs bei -4V UGS sicher 
schalten.

Ich würde das einfach mal zusammenlöten und messen.

von H. B. (Gast)


Angehängte Dateien:

Lesenswert?

Ich glaub am einfachsten ist es ein NOR Gate und einen kleinen N-Kanal 
MOSFET zu nehmen.

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

H. B. schrieb:
> Ich glaub am einfachsten ist es ein NOR Gate und einen kleinen N-Kanal
> MOSFET zu nehmen.

Und warum dann nicht gleich einen SN74LVC1G32?

So wären wir wieder bei 22.11.2020 14:35.

von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

H. B. schrieb:
> Ich glaub am einfachsten ist es ein NOR Gate und einen kleinen
> N-Kanal MOSFET zu nehmen

Da sowieso zwei Transistoren eingeplant sind, kann man die UND-Funktion 
auch nur mit Dioden bewerkstelligen. Dann benötigt man keinen 
ODER-Schaltkreis mehr und hat noch zusätzlich die Möglichkeit die 
Schaltung mit weiteren Dioden bequem zu erweitern, ohne dabei einen 
weiteren Eingang vom Arduino verwenden zu müssen.

von H. B. (Gast)


Lesenswert?

Eberhard H. schrieb:
> H. B. schrieb:
>> Ich glaub am einfachsten ist es ein NOR Gate und einen kleinen N-Kanal
>> MOSFET zu nehmen.
>
> Und warum dann nicht gleich einen SN74LVC1G32?
>
> So wären wir wieder bei 22.11.2020 14:35.

Meine Schaltung hat den Vorteil, dass man auch einen µC mit anderer I/O 
Spannung  als 5V (z.B. 1,8V) damit ansteuern kann.

von Ach Du grüne Neune (Gast)


Lesenswert?

H. B. schrieb:
> Meine Schaltung hat den Vorteil, dass man auch einen µC mit anderer I/O
> Spannung  als 5V (z.B. 1,8V) damit ansteuern kann.

...und meine Schaltung ist sogar noch besser, weil sie sowohl Eingangs- 
als auch Ausgangssignale zwischen 3,3V und ca. 12V verarbeiten kann. 
Dank des offenen Kollektors.

von HildeK (Gast)


Lesenswert?

Manfred schrieb:
> Ich bin der Meinung, dass die Schaltung laufen kann, wenn an beide Gate
> noch ein Widerstand nach +5V kommt und die FETs bei -4V UGS sicher
> schalten.
Dann hast du für LOW am Ausgang eben irgendwas bei 3-4V. Und keine 0V.
Wenn schon so, dann mit PNP, aber es fehlen dann noch immer 1.2-1.3V zu 
einen ordentlichen LOW. Oder mit einem pMOS mit extrem niedrigem 
G-S-Threshold.

> Ich würde das einfach mal zusammenlöten und messen.
Tu es und berichte.

von jens (Gast)


Angehängte Dateien:

Lesenswert?

oder so

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.