hallo, ich möchte einen datenlogger auf µC-Basis entwickeln. Die Daten sollen auf einem externen SPI-FLash gespeichert werden. beim schreiben auf den SPI-Speicher (M25P) wird immer eine Adresse gefragt (Auszug aus M25P-Treiber): FlashProgram( ST_uint32 udAddr, ST_uint8 *pArray, ST_uint32 udNrOfElementsInArray ) Muss das System neu gestartet werden (Reset, Batterie leer), würde die Initialisierung wieder auf die erste Adresse des Speichers zeigen und damit den Speicher überschreiben. Wie kann ich die letzte freie Adresse im Speicher finden um keine Daten zu überschreiben? Grüße, Michael
Es gibt mehrere Möglichkeiten: -Du könntest doch einfach suchen wo der letzte Wert != 0xFF gespeichert ist. Das geht natürlich nur wenn die Daten so gespeichert werden, dass niemals FF gespeichert wird. -Du könntest ein oder mehrere Bytes nehmen wo die letzte Adresse drin steht. Das würde ich aber nur machen, wenn die Daten sich nicht allzu häufig geschrieben werden (wegen Schreibzyklen). -Du könntest die letzte Adresse im EEPROM des µC speichern und jedes mal eine andere Zelle nehmen um die Schreibzyklen pro Zelle möglichst gering zu halten. -Du könntest den µC mit einer Stützbatterie versorgen, über die der µC dann im Sleep-Modus gehalten wird. Der µC muss dann einfach nur prüfen ob die Hauptversorgungsspannung getrennt wurde und sich darauf hin dann in den Sleep-Modus zu versetzen. Das geht natürlich nur, wenn die anderen Komponenten nicht zu viel Strom brauchen. Den µC alleine kannst du jahrelang mit einer CR2032 im Sleep-Modus halten.
Hallo Timmo, das mit der Batterie ist natürlich eine gute Sache. Ich verwende selbst sogar eine Batterie, damit das System autark arbeiten kann. Von daher dürfte es ja kein Problem sein, bzw ich speichere jede Adresse im RAM mit. Aber für den Fall der Fälle, dass es wirklich zu einem Ausfall kommt muss ich wohl den Speicher durchsuchen. Vielen Dank, Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.