Forum: Mikrocontroller und Digitale Elektronik EEprom Flash Ram


von Michael (Gast)


Lesenswert?

Hallo zusammen also ichhabe ein Problem mit der Speicherwahl. Was
empfiehlt ihr mir für einen Speicher zu verwenden?

Ich benutze einen PIC 18F452 mit folgenden Speichern:

Flash: 32 Kbytes
RAM: 1536 bytes
Data EEPROM: 256 Bytes

Bei meinem Projekt geht es um eine Türsteuerung mit Zugangscodes

Ich hab folgende 2 Teile die ich in einen Speicher unterbringen muss:

1) Über einen Mastercode(der fest programmiert ist) können neue Codes
hinzugefügt und gelöscht werden. Es wird eine Liste z.B. mit 10
Zugangscodes geben die bei jeder eingabe eines codes überprüft werden
müssen. Die Codes dürfen natürlich nicht flüchtig sein. Welchen
Speicher soll ich da verwenden?

2) Die Türsteuerung beinhaltet einen Real Clock Timer wenn man sich mit
einem Code anmeldet liest der PIC das Datum aus dem RCT verknüpft dies
mit dem Benutzername(Zugangscode) und legt diesen String, oder was auch
immer es dann sein wird in eine Liste ab. Diese Liste beinhaltet immer
die letzten 50 Türöffnungen. Wo soll ich diese Liste anlegen?
Flüchtig/nicht Flüchtig? wie soll ich das mit der Liste lösen? den
speicher immer eins nachschieben und die bei 50 Fallen raus?

Gruss Michael

von Rufus T. Firefly (Gast)


Lesenswert?

Den Mastercode solltest Du im EEPROM ablegen.

Die Protokollierung der Türöffnungsvorgänge solltest Du im RAM ablegen;
Du musst, wenn diese Daten wichtig sind, dafür sorgen, daß a) der
Prozessor immer mit Spannung versorgt wird, oder b) bei Erkennen eines
Stromausfalls die Liste ins Flash-ROM kopieren. Ins EEPROM passt sie
aufgrund ihrer Größe nicht (50 * (Benutzerkennung + Zeitinformation)).

Die Liste permanent im Flash zu halten und zu aktualisieren ist der
Lebensdauer des Flash abträglich, das wird nur einige tausend
Schreibzyklen überleben (steht im Datenblatt).

Alternative: Externes nichtflüchtiges RAM anschließen;
batteriegepuffert (MK48T08) oder FERAM/MRAM.

von Bartli (Gast)


Lesenswert?

> wie soll ich das mit der Liste lösen? den
> speicher immer eins nachschieben und die bei 50 Fallen raus?

Mit einem Ringpuffer ?

von Michael (Gast)


Lesenswert?

Hmm das hör ich zum ersten mal kannst du mir sagen was das ist?

von Bartli (Gast)


Lesenswert?

Im Forum / Google nach Ringpuffer, Ringbuffer oder FIFO suchen.

Grob gesagt machst du dir ein Array und merkst dir in zwei Variablen
den  Index des neuesten und des ältesten Eintrags. Beim
Einfügen/Entfernen arbeitest du entsprechend mit diesen Indizes,
anstatt beim Einfügen die ganze Zeit sämtliche Einträge nach hinten zu
kopieren.

von Rufus T. Firefly (Gast)


Lesenswert?

Einen Ringpuffer oder dergleichen sollte man bloß tunlichst nicht im
Flash-ROM unterbringen. ->Lebensdauer.

Und ins EEPROM passt er hier nicht, es sei denn, es wäre möglich, einen
Eintrag (Personenkennung & Zeit) in 5 Bytes unterzubringen.

von Michael (Gast)


Lesenswert?

nee ich mach das ins RAM ich merk nur grad das meine Kentnisse was
String und Array anbelangt nicht gerade soo doll sind um sowas zu
realisieren

von lader (Gast)


Lesenswert?

hello all;
I have to program the flash memeory of msp430f1611 to read from and
write to the flash memeory and i donot know how it could be.
Any help will be appreciated
thanks

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
Noch kein Account? Hier anmelden.