Spannungsabschaltung mittels MOSFET

Hallo,

vielen Dank für die vielen PCB Designs die hier schon zur Verfügung gestellt werden.

Ich versuche für mich immer ein wenig zu verstehen, wie das alles auch funktioniert. Leider verstehe ich nicht, warum zur Spannungsabschaltung der Peripherie zwei MOSFETs gebraucht werden.

Kann mir das vielleicht einer erklären?

Danke!

Moin,

also die Schaltung funktioniert ja so, dass der N-Channel per GPIO angesteuert wird. Steuert dieser durch, dann zieht er das Gate des P-Channel auf GND, wodurch die Peripherie dann angeschaltet wird, weil dieser durchsteuert.
Ja, du hast schon Recht: Vermutlich würde es reichen, wenn man die Schaltlogik invertiert (also GND wenn nicht Deepsleep) und damit den P-Channel ansteuert. Gleichzeitig hat man an dessen Gate ein PullUp auf 3.3V (ist aktuell eh schon da), der dafür sorgt, dass dieser gesperrt bleibt, wenn Deepsleep vorherrscht und der GPIO „floatet“ (der Zustand also undefiniert ist).

Man will auf jeden Fall einen High-Side-Switch (deswegen P-Channel), da das Wegschalten von GND zu Problemen führen kann, weil GND dann „anders woher“ geholt wird.
Literatur: Schalten mit Transistoren

Ich finde es gedanklich irgendwie „richtig“, dass man HIGH setzt am ESP32, wenn die Peripherie aktiv sein soll (und umgekehrt). Und jetzt habe ich halt so angefangen mit nicht-invertierter Schaltung, da will ich nicht alles wieder ändern im Code und den Leuten erklären :slight_smile:

Hallo zusammen

Wie wird das bei diesen Modulen gelöst? Hier habe ich nur einen MOSFET (IRF 520). Diese Module schalten nach meinem Wissen nicht „invertiert“.

Gruss
Reto

Ja als Schalter kann man einen NChannel auch benutzen, nur die schaltest halt GND weg. Und wenn du das tust, holt sich das Modul das halt über die Steuerungsleitungen.
Man kann es mit einem pChannel lösen mit invertierer Logik. D.h du gehst auf GND, wenn es an sein soll und umgekehrt. Damit der esp32 im Deepsleep nicht für undefinierte Schaltzustände sorgt, muss man dann halt mit einem Pullup am Gate machen.

Korrigiert mich wenn ich falsch liege.

Schaub doch mal im Github Repository unter ESPuino/Schematics.pdf at 47f654a898ffcc320f4bd58acffadddf8d560c83 · biologist79/ESPuino · GitHub (oben links). Vielleicht kann das dir ja helfen.

@Alex Meinst du damit mich? Das ist zwar nur ein Mosfet, aber dafür ein NPN-Transistor dazu. Kurzum: Es ist das Gleiche :smiley:

Sorry, ich meinte @rrohner

Der MOSFET schaltet bei dem Modul die Masse, deshalb ist das so nicht so ideal.
So werden aber häufig Motoren, Pumpen usw. geschaltetdie keine direkte weitere Verbindungen zur Steuerung brauchen, wenn man von Sensoren Wie Drehzahlmesser usw. absieht da die Potentialfrei sind.
Da ich so ein Teil hier habe habe ich mal die Schaltung gezeichnet.


Daher ist die invertierende Schaltung die vernünftige.

1 Like

Ich habe übrigens meine 2stufige Mosfet-Schaltung wieder mit IRF530N + NDP6020P aufgebaut. Das hat wieder ohne Probleme geklappt.
Das erwähne ich nur, weil ich zwar inzwischen auch IRL3103 empfehle (anstelle IRF530N), ich selbst habe mit diesem jedoch gar keine Probleme. Voll durchsteuern tun sie natürlich nicht, abe für die paar mA, die wir da durchschicken, ist das auch nicht so tragisch. An für sich sind die Mosfets eh einigermaßen überdimensioniert :slight_smile:

Ich hänge mich hier mal kurz mit dran:

Am WROVER gibt es ja GPIO17 nicht, könnte ich die Mosfet Schaltung auch an GPIO22 hängen?

Screenshot anbei:

Gpio22 sollte auf jeden Fall gehen.

Sehe ich auch kein Problem. Nur was auf jeden Fall nicht geht ist >=34. 0 würde ich vermutlich auch eher nicht benutzen, aber für einen Button kann man 0 nehmen (habe ich schon testweise gemacht).

Bezieht sich das jetzt auf mein Schema? Ich habe auf 35 den „MEASURE_BATTERY_VOLTAGE“ liegen… Ich glaube die Bedingung für „MEASURE_BATTERY_VOLTAGE“ ist ein ADC Pin, oder?

Ansonsten schonmal vielen Dank für die Info :+1:t3:

Alle GPIOs >= 34 können nur Input aber kein Output. D.h. für Batterie ok, aber du kannst damit keinen Mosfet ansteuern.

Beim Lolin32 lite sind da ab 34 nur Eingänge also Messen ist ok, Ausgeben zum Beispiel die Abschaltung nicht.

Das ist nicht nur beim lite so. Das ist generell so bei ESP32.

Danke nochmals…
Ich glaube, ich habe mein Schema jetzt durch… Die Tage nochmal ein bisschen routen und dann wirds hoffentlich :slight_smile:

Übrigens: VP und VN kann man auch nutzen. In Zahlen ist das 36 und 39 (kann mir nur nie merken, was was ist :slight_smile: ). Und was man auch wissen sollte: Bei >= 34 kann man keinen internen PullUp aktivieren. D.h. wenn du einen brauchst, dann musst du den in Hardware dranbauen.

Beim Lite ist mir das zum ersten Mal aufgefallen, da ist auch im Pinout nur von GPI34 die Rede, bei den anderen steht dann GPIO32.
Ich hatte das bisher bei den anderen nicht gesehen, am D32 pro sagt das Pinout GPIO34.
Ich glaube da kommen dann manche Fehler her

Habt/Kennt ihr eine Alternative zum [quote=„biologist, post:9, topic:103“] NDP6020P[/quote]? Leider wird er nicht mehr hergestellt und meine Suche nach einer Alternative bei Reichelt gestaltet sich schwierig.