Forum: Mikrocontroller und Digitale Elektronik ESP32 - Preomlem mit externer Spannnungsversorgung


von Sim (Gast)


Lesenswert?

Hallo Leute,

vielleicht könnt ihr mir mit meinem Problem helfen. Derzeit bin ich 
etwas ratlos hinsichtlich der externen Spannungsversorgung meines ESP32 
Devkit V1 Moduls. Über USB funktioniert alles problemlos. Sobald ich 
über die Versorgung über den VIN Pin laufen lasse hat der ESP zwar 
Versorgungsspannnung bootet jedoch nicht automatisch. Sobald ich den 
Boot Button drücke läuft er wieder normal. Auch die 3.3V am Ausgang des 
LD1117 sind konstant da. Die 5V Versorgung wird über einen AC/DC wandler 
von Recom RAC05-05SK bereitgestellt.

Hat jemand von euch eine Idee wo der Fehler liegen kann?

Danke schon mal :)

von Stefan F. (Gast)


Lesenswert?

Möglicherweise steigt die Versorgungsspannung beim Einschalten zu 
langsam an oder sackt kurz nach dem ersten Anstieg nochmal ab. Das 
passiert bei Schaltnetzteilen häufig.

Bei AVR und STM32 Mikrocontrollern hilft ein Kondensator am Reset Pin 
(um den Reset-Impuls zu verlängern). Beim ESP32 bin ich jetzt unsicher, 
ob man da einfach einen Kondensator dranhängen kann oder ob er dort ein 
sauber aufbereitetet Rechteck-Signal benötigt.

Schau mal ins Datenblatt vom Chip, dazu müsste etwas drin stehen.

von Michael U. (amiga)


Lesenswert?

Hallo,

das Datenblatt sagt, daß Enable (CPU_PU) erst 50µs nach Erreichen der 
Betriebsspannung beginnen soll, auf H zu gehen.
Die Schaltung vom DevKit, die ich hier gerade habe, hat 10k PullUp und 
nichts weiter, die des ESP32 Moduls im UNO-Format 12k PullUp und 1µF 
gegen GND.
20k PullUp und 1µ gegen GND finde ich auch bei einem anderen Board, 
12k/1n kann ich auch noch bieten.
Da scheinen nicht alle ESP32 Boardentwickler das Datenblatt gelesen zu 
haben...
Der Eingang selbst scheint Schmitt-Trigger Verhalten zu haben.

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

Michael U. schrieb:
> das Datenblatt sagt, daß Enable (CPU_PU) erst 50µs nach Erreichen der
> Betriebsspannung beginnen soll, auf H zu gehen.

Wow! Dann wird das bei allen Modulen deren Pläne ich gesehen habe, 
falsch gemacht.

Ich kenne das vom ESP8266 eher anders herum: Man darf den Enable Pin 
erst auf Low setzen, nachdem die Firmware gestartet ist (sonst nimmt der 
Chip viel mehr Strom auf, als gewollt).

Ich hatte weiter oben jedoch den RESET Pin gemeint, nicht ENABLE.

von Michael U. (amiga)


Lesenswert?

Hallo,

es gibt beim ESP32 keinen Reset-Pin, dort wird einfach Enable dafür 
genutzt, was ja auch kein Problem ist und ein Pin gespart wird.
Das Problem mit dem Timing tritt auch bei einigen Modulen aus, die die 
Logik mit RTS/DTR steuern. Das Python-Script wurde da auch schonmal 
angepasst für den ESP32, ich habe hier eine recht bunte Sammlung Module 
und da ist es so: automatisch in den Progmode schalten aus der 
ArduinoIDE geht immer, geht manchmal, geht nie...
Ich habe mich im Moment dran gewöhnt und drücke eben die PROG-Taste, 
wenn er nicht freiwillig startet.
Ich muß mir das mal richtig anschauen auf den Modulen, beim Odroid Go 
sind auch 10k/100n verbaut und meinen beiden gehören zu "geht meistens". 
Die Beschreibung macht es sich da einfach: wenn es nicht alleine 
startet, Button "Vol" festhalten. Der hängt an GPIO0...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Sim (Gast)


Lesenswert?

Danke für eure Antworten. Ich habe nun mal einen 1uF Kondensator 
parallel zum 10k pullup am EN Pin gelötet in der Hoffnung,d ass es sich 
dabi um R4 handelt. Leider ohne Erfolg :-(

von Sim (Gast)


Lesenswert?

Eine Alternative wäre ein anderes ESP32 Dev Board. Könnt ihr mir ggf. 
eines empfehlen, welches keine Probleme beim booten mit externer 
Spannungsversorgung hat bei selbem Pinout?

von Pollux (Gast)


Lesenswert?

Sim schrieb:
> Danke für eure Antworten. Ich habe nun mal einen 1uF Kondensator
> parallel zum 10k pullup am EN Pin gelötet in der Hoffnung,d ass es sich
> dabi um R4 handelt. Leider ohne Erfolg :-(

Wieso parallel zum Pullup? Gegen GND war doch die Aussage im 3. Beitrag!

von Sim (Gast)


Lesenswert?

Ah verdammt, richtig. Mein Fehler. Habe nun einen 1uF zwischen EN und 
GND gelötet. Leider noch immer keine Verbesserung.

Beitrag #5698747 wurde vom Autor gelöscht.
von Michael U. (amiga)


Lesenswert?

Hallo,

was hast Du denn extern an den IOs des ESP32 alles dran und wie wird das 
versorgt? Es gibt ja außer GPIO0 noch andere Pins, die zur Resetzeit 
H-Pegel haben wollen. Wenn die beim Einschalten von außen zulange auf L 
gezogen werden, bootet er evtl. in einem falschen Bootmode. Wenn Du 
Reset drückst, sind die Versorgungen ja schon alle stabil.

Halte doch mal Reset fest wenn Du die Spannung einschaltest und lasse 
erst danach los, ob er dann sofort richtig bootet. Wenn er das nicht 
macht und auch erst einen zusätzlichen Reset braucht, muß die Ursache 
eine andere sein.

Ist aber im Moment etwas stochern im Nebel...

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Sim (Gast)


Lesenswert?

Derzeit sind beide I2C Schnittstellen sowie der SPI mit Peripherie 
belegt. Weiterhin sind beide GND Pins verbunden und ebenso der 3V3 Pin 
zur Versorgung der Peripherie.

von Michael U. (amiga)


Lesenswert?

Hallo,

da man ja beim ESP32 etliches auf verscheidene Portpins mappen kann: an 
welchen Pins was und was hängt als SPI/I2C Device dran?

Gruß aus Berlin
Michae

von Sim (Gast)


Lesenswert?

SPI -> VSPI Pins, BME680 Enviromental Sensor
I2C0 -> GPIO21 SDA, GPIO22 SCL, Sparkfun GridEye AMG88xx
I2C1 -> GPIO16 SDA, GPIO17 SCL, AS7262 Spctral Sensor

Alle drei über den 3V3 Pin gepowert.

von Sim (Gast)


Lesenswert?

Ok, Fehler wurde gefunden. Der AS7262 bootet langsamer als der ESP32. 
Dadurch hängt der ESP32 sich manchmal in der Init Routine des AS7262 
auf. Ein entsprechendes Delay vor der Initialisierungsroutine des AS7262 
hat Abhilfe geschafft.
Danke für eure Hilfe :)

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.