EEProm Lebensdauer 1 Million Schreibzyklen/Löschzyklen
EEPROM
Nach der Migration der Lorawan Infrastruktur von The Things Network (TTN) auf den „TTN Stack V3 Standard“ wurde es nötig unseren Sensoren (Nodes) die Möglichkeit mitzugeben sich die Paketnummer zu merken. Da unsere Nodes die“Activation by Personalization“ (ABP) Methoden verwenden, gibt es zur Zeit, auch keine und bekannte Idee sich um die Fortschreibung der Paketnummer im Node (Sensor) zu drücken :-).
In unserer Konstruktion (Arduino pro mini) ist ein Atmel Mega 328 verbaut, dessen EEProm verspricht laut Datenblatt eine Lebensdauer von 10 000 Schreib/Löschzyklen für den Flash Speicher und 100 000 Schreib/Löschzyklen für den eingebauten EEProm Speicherbereich (Es gibt Quellen im Netz die von 700 000 Zyklen berichten, möchte ich aber nicht ausprobieren). Dies war uns zu wenig, eine Lösung wurde gesucht und in einem externen I2C EEProm mit 1 Milion Schreib/Löschzyklen gefunden.
Low Power Timer
Um die Akku/Batterielebensdauer zu erhöhen stellt der Atmel Prozessor einige Stromsparfunktionen zur Verfügung. Auch externe EEProms mit Low Power Modus gibt es. Die meisten modernen Sensoren bieten auch Low Power oder Power down Modes an. Soll es ein Sensor am Arduino pro mini mit Lora Datenübertragung sein, der in Stückzahl > 1 gebaut werden soll, kann es sinnvoll sein sich ausgiebig mit allen Stromsparmodi-Kombinationen des Prozessors und des Sensors auseinander zu setzen um die Low Power Timer Platine zu sparen. In meiner Situation in der ich den Sensor nutzen möchte, mit langer Batterie/Akku-Lebensdauer ohne ewige Hardware – Softwareentwicklung, bietet sich eine Hardware Standalone Lösung mit dem Chip TLP5110 von Texas Instruments zum Strom sparen an. Die Schaltung kommuniziert mit dem Sensor-Node über einen einzelnen GPIO Pin des Arduinos.
Schaltungsbeschreibung:
Von links nach rechts: Akku/Batterie Lipo über Kurzschlussschutz Sicherung an den Timer Chip TPL5110. Bei jedem IC zwischen VDD/VCC und GND je einen 100nF Kondensator zur Entkopplung. Beim TPL5110 Pin3 gegen GND wird mit Widerständen die Länge des „timing intervals“ eingestellt (Widerstandstabelle und Formel im Datenblatt). Pin4: Nach Ablauf des „timing intervals“ und Erwachen des Arduinos sowie dem Aussenden der Messwerte startet der Arduino über diesen Pin den neuen „timing interval“ die „Stromsparphase“ mit ca 35nA Stromverbrauch. Pin5: Mosfet-Treiber Pin für den Anschluß des „Ein Schalter Mosfets“. 470 µF Kondensator wird benötigt damit die Schaltung reproduzierbar funktioniert.
EEPROM: PIN 1-4 an GND, hierdurch wird der Chip mit GND verbunden und die Adresse auf sedezimal 0x50 ( dezimal 80) festgelegt. Pin 5 / Pin 4 I2C Bus, Pin 5 SDA, Serial Data Pin mit Pull up Widerstand 4,7 k Ohm, Pin 4 SCL, Serial Clock Input Pin mit Pull up Widerstand 4,7 k Ohm.
Wichtig: Die Verwendung von Informationen aus dieser Web Seite passiert auf eigenes Risiko. Das Hantieren mit Lithium Polymer Batterien und Akkus ist nicht ungefährlich und sollte mit größter Sorgfalt unter Einhaltung der gängigen Sicherheitsvorkehrungen passieren. (Mein Messgerät wirft für gebrauchte Lipos der Bauform 18650 mit ca 2,5 Ah, 40 -60 mOhm Innenwiderstand aus. ergo -> Kurzschluss = Feuer und Gestank!)
unbestückte Platine der Schaltung oben (Foto: Marvin Schäfe)
bestückte Platine der Schaltung oben, Anschlüsse: blau SDA, weiß SCL, schwarz GND, rot Batt+ Eingang, grün done, gelb Batt+ Ausgang, schwarz GND (Foto: Marvin Schäfe)