Probleme beim Schalten eines Displays mit MOSFET und ESP32

#7759882
Lesenswert?

Hallo zusammen,

ich stehe vor einem Rätsel, das ich mir nicht erklären kann. Ich möchte mit einem MOSFET (HL 2302V) ein Display (GMT020-02 mit ST7789V2) ein- und ausschalten. Eine vereinfachte Skizze der Schaltung könnt ihr im Bild sehen.

Das Schalten des MOSFETs über den ESP32 funktioniert grundsätzlich gut, aber das Problem ist, dass das Display (bzw. die Hintergrundbeleuchtung) danach nicht angeht. Wenn ich die Spannung zwischen VCC und GND am Display messe, habe ich festgestellt, dass nur 2,5 V ankommen (was für das Display natürlich nicht aussreicht). Wie dieser Spannungsabfall zustande kommt, ist mir allerdings momentan ein Rätsel.

Da ich Elektronik nur hobbymäßig betreibe, fehlt mir sicherlich an einigen Stellen das Fachwissen. Daher kann es gut sein, dass ich einen grundlegenden Denkfehler gemacht habe.

Ich würde mich freuen, wenn mir jemand weiterhelfen könnte!

Angehängte Dateien:
Gast #7759890
Lesenswert?

Um den Plus-Pol zu schalten brauchst du einen P-Kanal MOSFET. Siehe http://stefanfrings.de/transistoren/index.html#mosfet

Außerdem willst du 5V mit einem 3,3V Mikrocontroller schalten. Wegen der unterschiedlichen Pegel brauchst du einen zweiten Transistor.

Siehe http://stefanfrings.de/transistoren/index.html#p-mosfet (zweite Schaltung). R2 kannst du in deinem Fall weg lassen.

Persönliche Seite #7759892
Lesenswert?

Janek schrieb:

Wie dieser Spannungsabfall zustande kommt, ist mir allerdings momentan ein Rätsel.

Damit ein n-Channel-MOSFET durchschaltet, muss über Gain-Source eine gewisse Spannung abfallen (typabhängig). Die Spannung am Output-Pin des ESP32 müsste also deutlich höher als 5V sein, damit hier auch 5V am Ausgang rauskommen.

Der ESP32 gibt aber wohl nur 3.3V aus, und somit ist die Spannung am Source genau um so viel weniger als 3.3V, sodass der Abstand zwischen Gate und Source hoch genug ist. 0.8V sind sogar ein ziemlich guter Wert.

Mit einem High-Side-Driver könnte man die Spannung am Gate auf über 5V heben damit der Transistor voll durchschaltet. Das ist hier aber totaler Overkill. Stattdessen könntest du einfach einen PNP-Transistor nehmen, oder einen p-Channel-MOSFET plus einen n-Channel-MOSFET.

Moderator (Firma: Titel) Persönliche Seite #7759899
Lesenswert?

Niklas G. schrieb:

Stattdessen könntest du einfach einen PNP-Transistor nehmen

Der wäre hier aber ständig (ein wenig) eingeschaltet, weil schon die Differenz 5V-3,3V = 1,7V höher als die nötige Basisspannung ist.

H. H. schrieb:

Verwende einen p-MOSFET in Souceschaltung, und zwar einen mit nicht zu niedriger Thresholdspannung

Das ist ein heiße Kiste, denn da muss man ggfs. den Mosfet von Hand selektieren.

Ich würde das technisch sicher so machen:

1
                P
2
5V -------o------.  -------------
3
          |    | ^ |
4
         47k   =====
5
      R1  |      |
6
          '------o
7
                 |
8
               |-
9
   µC-----o----|<  N
10
          |    |-|
11
         47k     |
12
      R2  |      |
13
GND ------o------o----------------

Der R2 sorgt dafür, dass der N Mosfet im Reset zuverlässig abschaltet.

#7759924
Lesenswert?

Nimm einen High Side Switch wie den hier: https://www.ti.com/lit/ds/symlink/tps2051b.pdf https://www.ti.com/product/de-de/TPS2051B https://de.farnell.com/texas-instruments/tps2051bdbvr/switch-current-ltd-1a-5sot23/dp/3124035

Damit kannst Du problemlos mit einem 3.3V Signal eine 5V Versorgung schalten, und Du hast für den Fehlerfall auch noch einen Überstromschutz mit dabei, der Schäden verhindert. Und teuer ist sowas auch nicht.

fchk

#7759930
Lesenswert?

H. H. schrieb:

Du brächtest so gut 2V mehr am Gate als am Ausgang, je nach Thresholdspannung des MOSFET.

Das reicht nicht. Das Display springt erst an, wenn der MOSFET richtig leitet. Die Threshold Spannung gilt bei den meisten Kleinleistungs-MOSFETs für einen DS-Strom von lediglich 250µA, d.h. die gibt nur an, bei welcher U_GS der FET ANFÄNGT, nennenswert zu leiten.

Moderator (Firma: Titel) Persönliche Seite #7759937
Lesenswert?

Niklas G. schrieb:

Pin auf Open-Drain schalten?

Auch bei Open Drain wird die Pinspannung üblicherweise nicht auf wesentlich mehr als Vcc+0,3V ansteigen, weil dann die ESD-Schutzdiode zu leiten beginnt.

Und der µC wird dabei im Prinzip ausserhalb der Spec betrieben.

Rainer W. schrieb:

Das Display springt erst an, wenn der MOSFET richtig leitet.

Leider "springt" das Display schon an wenn der Mosfet auch nur halb leitet. Aber es "springt" dann eben auch nur irgendwie halb an.

Moderator (Firma: Titel) Persönliche Seite #7759990
Lesenswert?

H. H. schrieb:

Hat der ESP32 nicht 5V tolerante GPIOs?

Der ESP8266 hatte die. Und es gingen Gerüchte um, der ESP32 könne das auch: https://forum.arduino.cc/t/connecting-modules-with-esp32e-module-3-3v-or-5v/1139552/5

Allein: das Datenblatt gibt das nicht her. Da steht "max. VDD+0,3V".

Angehängte Dateien:
Gast #7760117
Lesenswert?

Lothar M. schrieb:

Der ESP8266 hatte die.

Hatte er nicht, gemäß Datenblatt. Ich habe mal eins der ersten von 2013 angehängt. Die Angabe von maximal 3,6 Volt ist bis heute so geblieben.

Die Story hat nach meinem Kenntnisstand jemand erfunden, als er entdeckte, dass die Schutzdioden* seines konkreten ESP8266 erst oberhalb von 5V ansprechen. In einem Statement zu dem "Fall" erklärte ein Mitarbeiter Espressif, dass die Schutzdioden typischerweise irgendwo zwischen 4 und 6 Volt ansprechen.

Verlassen kann man sich aber nur auf die zugesicherten 3,6 Volt.

*) Genau genommen sind es keine einfachen Dioden wie sonst üblich, aber ich will nicht mit zu vielen Details ablenken.

Angehängte Dateien:

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