UND Schaltung P-Kanal

Gast #6484704
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?
Persönliche Seite #6484725
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.
Gast #6484761
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.
Gast #6484804
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?
Angehängte Dateien:
Persönliche Seite #6484820
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.
Gast #6484856
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.
#6484884
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.
Persönliche Seite #6484990
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.
Angehängte Dateien:
Gast #6485063
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.
Gast #6485088
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.
Gast #6485201
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.
Gast #6485686
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.
Angehängte Dateien:
Gast #6485749
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.
Gast #6485828
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.

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