ESP2 Brownout disable vor dem Booten

Hallo,
ich wollte mal fragen, ob jemand weiß, ob man den Brownout - Detektor noch vor der Bootsequenz abschalten kann, wenn man die Arduino IDE nutzt?

Hintergrund:
Mein ESP32 läuft soweit sauber mit 1,8 V ohne Probleme. Die Spannung ist auch stabil und hat ein Rippel von wenigen mV. Das Problem ist, mit dem bekannten Befehl "WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);" als erstes im Setup(); kann der ESP32 aber nicht mit den 1,8V booten, da so immer der Brownout - Detektor dazwischen grätscht. Ich bin mir ziemlich sicher, das der Bootvorgang selbst auch mit 1,8V läuft (warum auch nicht). Nun muss ich aber ziemlich umständlich, die Spannungsversorgung für dem Bootvorgang eine höhere Spannung (2,5V) erzeugen lassen. Das funktioniert zwar, aber bedeutet einiges mehr an Schaltungsaufwand, das Softwaretechnisch zulösen wäre doch viel Eleganter.

Darf man fragen wieso 1,8V? Auch wenn der ESP damit "laufen" sollte, musst du immer mit Fehlern und undefinierbaren Zuständen rechnen.

Hallo,

ich würde auch sagen das kann nicht zuverlässig laufen. Kann es daran liegen des er zu dem Zeitpunkt noch irgendwas mit dem Wlan macht und darum der Strom höher ist. ?

Heinz

Hallo,
also das Problem ist nicht, dass er nicht mit 1,8V läuft, das tut er (>2 Tage am Stück mit permanentem WiFi für Mqtt Report und http Server).
Intern hat der ESP32 eh <=1,8V LDOs, ich war auch überrascht, das die ein pass through zu haben scheinen oder vielleicht läuft die SDIO Peripherie ja auch mit noch viel weniger als 1,8V stabil, darum geht es aber nicht.

Das Problem ist der Brownout - Detektor der unnötig früh einen Reset auslöst. Wenn er sich bei booten dann tatsächlich mal verschlucken sollte, weil die 1,8V nicht reichen, dann ok, dann weiß ich es, dann kann ich ja schauen ab welcher Spannung es schafft zu booten.

2 Tage würde ich nicht als stabil bezeichnen, es ist einfach zu wenig Spannung. Wenn sporadische Ausfälle erlaubt sind ok, aber ohne den Detektor stellt sich das Ding einfach tot und macht nichts mehr. Woher die 1,8V kommen verrätst du auch nicht.

Auszug aus dem Datenblatt:

ESP32-VDD.PNG

Bis auf VDD3P3_CPU brauchen alle anderen Versorgungsanschlüsse mindestens 2,3V. Da auf den üblichen Boards alle VDD's an einer gemeinsamen Spannung hängen, ist die mit 1,8V definitiv zu niedrig. Hat ja auch seinen Grund, dass der damit nicht booten will.

ESP32-VDD.PNG

Hallo,

also nun noch mal, es geht NICHT darum, dass er NICHT stabil läuft (ich weiß doppelte Verneinung, aber -1*-1=1). Wenn gebootet und der Brownout - Detektorüber den Programmcode abgeschaltet ist, läuft er wie ein Bienchen, das kann man mir jetzt glauben oder auch nicht. Wenn er nicht stabil laufen würde, dann erkenne ich das schon, dabei brauche ich auch keine Hilfe.

Das Problem ist aber das ich es ja gar nicht ausprobieren kann, ob er den Bootvorgang auch schafft, da er vom Brownout - Detektor kontrolliert rebootet wird, bevor überhaupt er anläuft (Was ja auch seine Aufgabe ist). Das erkenne ich am völlig sauberen Fehlercode in Endlosschleife, der über die UART-Schnittstelle gesendet wird. Wäre er schon instabil würde hier, wenn überhaupt, ein unverständliche Bitmuster raus geworfen werden. Die Hoffnung, dass er also den Bootvorgang erfolgreich absolviert ist berechtigt.
Daher meine Frage, wie man diesen komplett vor dem Booten abschalten kann?!? Bei den Atmels gibts ein Fuse dafür, beim ESP finde ich nichts dergleichen, da er sich aber per Programmcode abschalten lässt, sollte das doch physikalisch möglich sein.

Nebenbei:

Was Du da in deinem Bild zeigst sind interne Spannungswerte ( Ausgangsspannungen der internen LDO (=low drop out) Spannungsregler ). Für das, was extern anzuliegen hat, ist allein die von mir gepostete Tabelle relevant. Natürlich sind die dort von Espressif angegebenen Werte so gewählt, dass sie unter allen zugelassenen Umgebungsbedingungen ausreichend sind ( worst case ). Dass es in deinem Fall erstmal stabil läuft ist ja durchaus möglich, aber nicht garantiert.
Dass espressif beim Booten dann diese Grenzwerte erstmal prüft, ist wohl so, und ob man es abschalten kann ist nicht gesagt.
Es müsste ja eine Parametrierung sein, die ihren Wert auch ohne Spannungsversorgung hält. Das sind beim ESP32 meines Wissens nur die eFuses. Wenn man das ernst nimmt:

Fundamentally, an eFuse is a single bit of non-volatile memory with the restriction that once an eFuse bit is programmed to 1, it can never be reverted to 0.

eignen die sich aber weniger zum 'rumspielen' und dass man da den Brown-Out beeinflussen kann, habe ich auch noch nicht gelesen

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.