Wir sollten diese Dinge beim Betrieb mit Batterie und ggf. mit Solar im Blick haben:
Läuft LittleFS jetzt stabil
Wird – wie früher bei FatFS – durch zu niedrige Spannung das Dateisystem korrumpiert und gehen dadurch Programmfiles verloren? bisher ist das seit wir auf little FS umgestiegen sind bei mir nicht passiert
Gibt es Anlaufschwierigkeiten
Läuft der FiPy mit einem neuen / aufgeladenen Akku wieder problemlos hoch oder braucht es ein händisches reset
Brauchen wir eine Erholungsphase für den LiPo
Kommt er auch bei grenzwertiger Spannung wieder in Gang oder brauchen wir hier eine Rekonvaleszenz-Zeit, was ich damit meine: LiPo oder Software schaltet bei 3,2 V ab, LiPo wird durch Solarzelle wieder auf 3,3 V geladen, damit läuft der FiPy wieder an, verbraucht Energie, LiPo ist recht schnell, vielleicht sogar vor dem ersten Senden wieder auf 3,2 V schaltet sich ab / wird abgeschaltet, rien ne va plus, usw. Brauchen wir hier ggf. eine Zeit in der der Akku z.B. auc 3,6 V geladen wird, aber erst mal keine Daten geschickt werden?
Softwareseitiger deep sleep forever vor dem hardwareseitigen Tiefentladungsschutz
Und noch etwas: Die Abschaltung durch den Tiefentladungsschutz des Akkus / LiPos sollte nur als allerletztes Sicherheitsnetz greifen, wie @weefschön gezeigt hat ist die Spannungsgrenze bei manchen LiPos nicht konservativ (für den LiPo) gewählt, die Abschaltung erfolgt erst sehr spät. Hier brauchen wir noch eine softwareseitig Lösung, die den Microcontroller in den deep sleep forever schickt.
schoener ist natuerlich immer ein hardware-schutz wie er z.b. im solar1 verbaut ist: https://d3s5r33r268y59.cloudfront.net/datasheets/9948/2017-06-28-22-40-16/LiFePO4wered-Solar1-CC-BY-SA.pdf
in diesem schaltbild gibt es rechts unten einen chip ncp302hsn30 das ist der undervoltage cut-off und reset chip. (delayed ein bisschen)
der benutzt einen p-channel fet an seinem output als load switch um die load (in unsrem fall ein messknoten) sauber an und wieder abzuschalten.
da es nur ein paar teile sind, kann man sowas natuerlich auch auf ein eigenes modul loeten bzw mit auf ein traegerboard bauen. (mit fuer lipo passenden schwellwerten)
in software muss man halt damit leben das das system aufwacht - den akkustand misst, und dann entscheidet direkt wieder zu schlafen oder gar die aufweckzeit weiter in die zukuft zu stellen und dann zu schlafen, und nur bei ausreichend energie alle messungen zu machen.
ehrlichgesagt finde ich das konzept ‘mehr blei und mehr panelflaeche’ da wirklich reizvoller… :)
rein weils zwar aehnlich ist, aber weniger komplex in manchen details… und am ende kann man sich die eine oder andre zeitaufwaendige optimierung schenken wenn man energie im ueberfluss hat.
Es funktionieren für sowas auch einfachere reset controller wie z.B. MCP120 und MCP130 (im SOIC8, SOT23-3 und sogar TO92) , aber denen fehlt gegenüber dem NCP302 die verzögerungsmöglichkeit. Ihre Hysterese ist nur 50 mV, und für reine Akku-Überwachungsaufgaben gibt es gewiß einen vielleicht kurzen Punkt, bei welchem das schwingen würde - daher hier lieber sowas wie den NCP302.
Diese Art integrierte Schaltkreise sollte noch woanders hier seine Anwendung haben: und zwar als Schreib-Sperre am write protect-Eingang von EEPROM, FRAM, flash mem… für jenen Moment, wenn die Spannung zum Schreiben nicht mehr ausreicht, ohne irgendwelche zufälligen Speicherschreiber zu erhalten - dann muß das Signal /WP gezogen werden, damit nichts mehr den Speicherinhalt korrumpieren kann. Denn vor soetwas schützt auch der Einsatz eines FRAM nicht von selbst.
Zugegebenermaßen ein hoffentlich seltener Fall, doch wir haben es bei unserer Anwendung mit meist unsicheren Stromquellen zu tun, bei denen ein solcher Fall wahrscheinlicher ist - daher die Mahnung zum Einsatz einen reset controllers / voltage detectors am write protect der wiederbeschreibbaren nicht-flüchtigen Speicher-ICs.