Speicherort für nichtflüchtige Variablen auf dem ARM-Mikrocontroller

Noob-Frage hier. Ich habe nur wenig Erfahrung mit Mikrocontrollern und all diese Erfahrungen beschränkten sich auf den 8051. Ich arbeite an einem Projekt und möchte den ARM Cortex M4 Mikrocontroller verwenden. Das Programmieren des Mikrocontrollers und das Einrichten der Register und IO ist einfach genug. Das Projekt erfordert, dass eine Person bestimmte Variablen wie Zeit, Gewicht usw. eingeben kann. Diese Werte müssen in einem nichtflüchtigen Speicher gespeichert werden, damit die Werte bei einem Stromausfall des eingebetteten Systems erhalten bleiben.

Verfügt einer der Cortex M4-Mikrocontroller über einen On-Chip-Flash-Speicher (oder eine andere Form von nichtflüchtigem Speicher), der für Daten verwendet werden kann? Wenn ja, wie spezifiziert das Programm dann diesen On-Chip-Speicher als Speicherort für die Daten?

Wenn es wie oben beschrieben keinen On-Chip-Speicher gibt, gehe ich davon aus, dass ein Flash-Speicher-IC an die GPIO-Pins des Mikrocontrollers angeschlossen werden kann, um die Daten extern zu speichern. Gibt es Ressourcen, die mich durch diesen Prozess führen würden?

Ich muss nicht viele Daten speichern, daher wäre die Verwendung von On-Chip-Ressourcen dem Kauf eines anderen ICs vorzuziehen, nur um ein paar Bytes an Informationen zu speichern.

Antworten (1)

Sie müssen das Datenblatt für den jeweiligen Chip lesen, den Sie im Sinn haben. Es gibt einige M4-Chips mit Byte-löschbarem EEPROM mit hoher Lebensdauer (100.000 oder mehr) (z. B. R7FS7G27H3A01CFC), andere haben möglicherweise einen beschreibbaren Flash, müssen jedoch sektorweise gelöscht werden, und die Lebensdauer kann viel geringer sein.

„ARM Cortex M4“ beschreibt nur die Grundeigenschaften des Kerns. Es gibt optionale Funktionen, und die Speicher- und Peripherieausstattung hängt von der Implementierung des jeweiligen Herstellers ab.

Sie können einfach und kostengünstig (ab einer Menge von etwa 10 Cent) ein serielles I2C- oder SPI-EEPROM verwenden, wenn Sie einige Bytes an Benutzerdaten speichern möchten, sodass die Einbeziehung des EEPROM für die MCU nicht erforderlich ist. Schauen Sie sich zum Beispiel das 128 Byte 24C01 an .

Einige unterstützen möglicherweise auch eine Batteriesicherung, was normalerweise eine schlechte Wahl für einfache nichtflüchtige Speicherspeicherung ist, aber wenn Sie eine Echtzeituhr benötigen und es ertragen können, dass die Daten manchmal verschwinden, wenn die Batterie leer ist, könnte dies eine praktikable Option sein .

@boymeetcode - Diese vorherige EE.SE-Frage zum selben Thema enthält nützliche Beispiele, obwohl einige Links spezifisch für diese Familie von MCUs sind, aus dem von Spehro erklärten Grund: electronic.stackexchange.com/questions/98381/… : Eine gute Suche Der Begriff „EEPROM-Emulation“ ist „EEPROM-Emulation“, wenn Sie etwas über die Abwägungen zwischen Kosten und Komplexität erfahren möchten, wenn Sie versuchen, On-Chip-Flash zum Speichern von programmgenerierten Daten für MCUs zu verwenden, die kein On-Chip-EEPROM haben.