Zum optimalen Stromsparen im Deepsleep-Modus brauchen wir externe Pullup-Widerstände an manchen GPIO-Pins. Im wesentlichen geht es dabei um die Pins
- zum Wägezellen ADC HX711 oder ADS1231 o.ä.
- zum I²C Bus
- zu Tastern
Manche MCUs haben jedoch interne Pullups inkl. der Möglichkeit, deren Status auch im Deepsleep-Modus einzufrieren (hold). Das klappt bei all jenen, die dafür vorgesehen sind, in der RTC-Domäne betrieben zu werden – siehe dazu auch die exzellente Erklärung bei Strom sparen beim Einsatz der MicroPython-Firmware im Batteriebetrieb.
Während wir dem
bei Wägezellen-ADC abschalten Aufmerksamkeit schenken, gibt es einige Verweise auf den I²C Bus und die Taster bei Platine für FiPy » Suche nach “pullup”.
Würde ich erst mal mit Vorsicht genießen die Aussage! Den ADS und auch den HX711 nutze ich ohne externe pull-ups! Beim ADS hatte ich den Stromverbrauch gemessen und der war ok, was ich damals - mehr aus Vorsicht als aus Wissen gemacht habe - den ADS mit einem normalen Pin mit Strom versorgt, dann kann man den kompletten Zweig abschalten. Meinen HX711 mit dem ESP8266 bzw. ESP32 und dem C-Code muss ich nochmal durchmessen!
Doof sind immer Pins, die high einen sleep mode oder “ausgeschaltet” triggern. Diese brauchen dann für unsere Verhältnisse recht viel Strom.