Das Stichwort dazu lautet Brownout-Reset, ein erzwungener Neustart bei zu niedriger Versorgungsspannung. Er tritt oft genau dann auf, wenn das Programm technisch einwandfrei ist.
Zuerst überwacht ein im Mikrocontroller fest eingebauter Spannungsüberwacher die Versorgungsspannung. Er vergleicht sie dauerhaft mit einer im Chip festgelegten Schwelle. Unterhalb dieser Schwelle arbeitet der Chip nicht mehr zuverlässig, darum löst der Baustein einen Neustart aus.
Dann kommt es zur kritischen Stromspitze, etwa beim Einschalten des WLAN-Funkteils. Das Netzteil oder der Spannungsregler sackt kurz ein. Sinkt die Spannung dabei unter die Schwelle, startet der Chip neu – mitten im Verbindungsaufbau.
Danach verrät das Board selbst die Ursache. Viele Mikrocontroller speichern den Reset-Grund in einem Register und melden ihn beim Start. Auf dem ESP32 zeigt die Ausgabe im seriellen Monitor beim Booten Meldungen wie „Brownout“ an. So gelingt die Diagnose ohne Messgerät.
Zuletzt beseitigt man die Ursache in fester Reihenfolge, nicht im Code. Zuerst einen 100-nF-Abblockkondensator (kleiner Keramikkondensator) direkt an die Versorgungspins setzen und einen Elektrolytkondensator als Puffer ergänzen, der kurze Spitzen aus seiner Ladung liefert. Dann Versorgungsleitungen kürzen oder dicker machen, denn nach dem ohmschen Gesetz wächst der Spannungsabfall an der Leitung mit dem Strom. Zuletzt ein stärkeres Netzteil einsetzen, das seine Nennstromangabe auch bei Spitzen hält, oder einen kräftigeren Regler wählen.
Der Neustart kommt selten vom Code, sondern von der Spannung. Erst Kondensatoren, Leitungen und Netzteil prüfen, dann die Firmware.
📌 Brownout-Reset · Stromspitze · Abblockkondensator
📚 IoT von Grund auf · Tag 22 von 30
#esp32 #Mikrocontroller #iot #Energieeffizienz