Schaltung f. PWM an GPIO 0/2 eines ESP8266-12e

OP #6960004
Lesenswert?

Hallo,

ich bin neu im Forum und brauche mal Hilfe zu folgendem Problem:

Ich möchte mit einem ESP8266-12e eine unabhängige PWM-Ansteuerung für 5 
POWER-LEDs bauen. Getriggert durch PIRs, Zeitplan, oder Helligkeit. Ich 
habe das bereits mit einem Arduino Pro Mini realisiert, möchte es aber 
auf den ESP migrieren, weil ich dann die WLAN-Fähigkeit gewinnen. Die 
Steuerung und LEDs sind in UP-Dosen montiert und da ist eine 
Fernsteuerung per WLAN Gold wert!

Ich benötige alle GPIOs des ESP8266-12e. Für die LEDs habe ich 
GPIO016,15,14,0,2 vorgesehen. Die übrigen sind für I2C und PIR-Input 
vorbehalten. Ich teste zunächst mit einem Wemos D1 mini und Breadbord, 
später solls mal ne eigene Platine werden.

Dank des klasse Beitrags 
Beitrag "GPIO 2 mit PWM nutzen und trotzdem flashen können" habe ich das 
"Pulled_High beim Starten des ESP Problem" von GPIO0 & 2 in den Griff 
bekommen: Denn ich wollte zuerst für alle GPIO016,15,14,0,2 die 
einfachere der beiden Schaltungen aus dem Anhang nutzen. Was aber für 
GPIO0 & 2 nicht geht, weil diese scheinbar über die beiden Widerstände 
am Gate des FETs den GPIO auf GND ziehen. Mit der Folge, dass der ESP 
nicht mehr durchstartet.

Ich möchte Euch trotzdem einmal um Feedback zu meinen beiden Schaltungen 
bitten (ich bin blutiger Laie, was E-Technik angeht und bevor ich ne 
Platine in China bestelle, möchte ich sicher sein, dass die Schaltungen 
zuverlässig 24/7 funktionieren).

FYI: PWM Settings ist nix besonders Anspruchsvolles. Ich nutze die 
Default-Einstellungen. Der MOSFET ist ein IRLM2502. SMD Package, weil 
wie gesagt später alles auf eine möglichst kleine Platine soll.

Im Anhang sind die Schaltung für GPIO0,2 und die für GPIO14,15,16

Freue mich auf Euer Feedback.

PS: Sorry für die doppelte Datei. Keine Ahnung, wie ich die hier im 
Forum wieder löschen kann.
Angehängte Dateien:
OP #6960749
Lesenswert?

So ich habe die Skizzen nochmal aktualisiert (vergesst alle Anhänge aus 
dem 1. Post). Ich hoffe, ich habe alle Fehler in Skizzen gekillt.

Mir ist beim Testen der Schaltung (pulled_high_gpio0_2.jpg) für GPIO 0 & 
2 aufgefallen, dass diese die Logik invertiert: Aus high wird low und 
umgekehrt. Hat jemand einen Vorschlag, was ich ändern muss, so dass die 
Logik nicht invertiert wird, ich sie aber trotzdem an GPIO 0&2 nutzen 
kann? Möglichst einfach und mit möglichst wenigen Bauteilen. Wäre super 
das auf Schaltungsebene zu lösen, dann muss ich nicht

Dankeschön
Angehängte Dateien:
OP #6961116
Lesenswert?

Michael M. schrieb:
> Helmut -. schrieb:
>> Mache halt noch einen Inverter mit einem NPN und zwei Widerständen in
>> den Signalzweig!
>
> So würde ich es auch machen, aber es soll ja auch möglichst einfach
> sein. Deshalb genügt ein Logik Level Mosfet direkt am GPIO.

Hi Michael,
danke für Deine Antwort.

Wie sieht diese einfache Schaltung mit MOSFET denn aus? (Und ja genau, 
ich möchte mit so wenig Bauteilen, wie möglich, zum Ziel kommen)

Ich habe ja bereits eine Schaltung, die sehr gut mit nur einem IRLM2502 
als aktiven Bauteil funktioniert (s. general_led_driver_mosfet.jpg). 
Aber die funktioniert eben gerade nicht für die Problem-GPIOs 0 & 2, 
weil diese beim Start des ESP8266 auf HIGH gepulled sein müssen - 
ansonsten geht der in den Flashmodus.

Ich kenne nur die FET-Schaltung, wie ich sie nutze, bei der das FET-Gate 
über 10K zu GND verbunden wird, um einen definierten OFF-Zustand zu 
haben und das widerspricht Anforderung für die GPIOs müssen beim Starten 
auf HIGH gepulled sein...

Für mich sind diese unterschiedlichen Potentiale zu verschieden Zeiten 
echt böhmische Dörfer. Ich habe auch schon überlegt, ob man dass 
positive Potential für die Einschaltphase irgendwie über das Aufladen 
eines Elkos realisieren könnte. Aber das geht über meine E-Fähigkeiten 
hinaus. Ich würde mich daher sehr über eine kleine Skizze Deiner Idee 
freuen :-)
Gast #6961142
Lesenswert?

Michael M. schrieb:
> Helmut -. schrieb:
>> Mache halt noch einen Inverter mit einem NPN und zwei Widerständen in
>> den Signalzweig!
>
> So würde ich es auch machen, aber es soll ja auch möglichst einfach
> sein. Deshalb genügt ein Logik Level Mosfet direkt am GPIO.

Das funktioniert eben nicht.
Bitte immer alles lesen.

@Sven
Hiermit noch mal der Hinweis.
Nimm einen N-Channel und den NPN als Treiber. Das ist für dich am 
einfachsten.
OP #6961215
Lesenswert?

Hm, der verwendete IRLML2502 ist ja bereits ein N-Channel MOSFET.

Ich verstehe dich so, dass ich die Schaltung mit einem p-Channel MOSFET 
so umbauen soll, wie ich sie jetzt im Anhang (inverse_logik.jpg) 
skizziert habe. Richtig?

Ich weiß aber nicht, wie ich die Vgs(th) in der neuen Schaltung 
berechne, um den passenden p-Channel FET auszuwählen. 3.3V - 12V = 
-8.7V?
Angehängte Dateien:
Gast #6961448
Lesenswert?

Sven S. schrieb:
> Brain 2.0 schrieb:
>> In deiner Schaltung legst du nur den 10k Widerstand der auf das Gate
>> geht an der anderen Seite auf die 12 Volt.
>
> Cool Danke.
>
> Ich habe das jetzt nochmal gezeichnet (s. Anhang
> ESP8266-GPIO_0_p-Channel-FET.jpg). Habe ich alles richtig verstanden?

Ja, so war es von mir auch "gedacht".
Wenn HIGH an Pin des ESP liegt, schaltet der NPN durch und damit auch 
der P-Channel Mosfet.

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