Speicherbaustein(chen) gesucht

Gast #881563
Lesenswert?

Hallo,

ich muss alle 8 Sekunden einen 32-bit-Zähler erhöhen und abspeichern. 
Das Gerät kann mal 24 Stunden durchlaufen, oder auch mal einige 
Stunden/Tage aus sein. Der Speicher muss also nicht-flüchtig sein.

Könnt Ihr mir einen Chip nennen, den ich da am Besten nehmen kann? Der 
also möglichst klein ist (sind ja nur 32 Bit)? Der Abspeicher-Vorgang 
sollte bitte nicht zu langsam sein.

Vielen Dank!
Gast #881567
Lesenswert?

Ich habe schon bei Digikey und Reichelt gesucht.
Problem ist, dann allein in einem Jahr über rechnerisch über 3 Millionen 
mal geschrieben werden könnte. Viele ICs erlauben aber nur 10.000 bis 
50.000 write-Zyklen...
Gast #881589
Lesenswert?

Es gibt kleine MCs (8 Pin) musst du nur schauen ob die auch EEPROM 
intern haben. Die Anzahl der Schreibzyklen gilt pro Speicherzelle. Du 
könntest also jeden neuen Wert in eine andere Speicherzelle schreiben, 
und wenn der Speicher voll ist fängst du wieder am Anfang an. Damit 
erhöhst du die Anzahl dre Schreibzyklen enorm.
Gast #881601
Lesenswert?

@Travel Rec.
Laut Datenblatt hat der bereits genannten 24c02 1 Million Schreibzyklen.

@Martin
Ja, daran dachte ich auch schon. Dazu muss aber der Speicher möglichst 
schnell sein.
Z.B. bei 1024 Bytes muss ich im Maximalfall 1024 Bytes lesen und dann 
alle löschen (geht dann ja wieder von vorne los) und dann wieder die 
ersten 4 Bytes schreiben. Okay, könnte man auch nur jedes 4te Byte 
lesen, also 256 Bytes. Das müsste ich mal durchrechnen...
#881608
Lesenswert?

SamS wrote:
> Hallo,
>
> ich muss alle 8 Sekunden einen 32-bit-Zähler erhöhen und abspeichern.
> Das Gerät kann mal 24 Stunden durchlaufen, oder auch mal einige
> Stunden/Tage aus sein. Der Speicher muss also nicht-flüchtig sein.
>
> Könnt Ihr mir einen Chip nennen, den ich da am Besten nehmen kann? Der
> also möglichst klein ist (sind ja nur 32 Bit)? Der Abspeicher-Vorgang
> sollte bitte nicht zu langsam sein.
>
> Vielen Dank!


Nimm ein kleines EEPROm (24C02) und schreib an Adresse 00 die
Adresse der Speicherzelle, wo dein aktueller Zählerstand steht.
Alle tausend Speichervorgänge schreibst du eine neue Adresse an 00
und legst die Werte unter dieser Adresse ab....


=> lesen des Wertes an Adresse 00h (Addr)
=> lesen des alten Wertes, den du unter (Addr) findest
=> neuen Wert unter (Addr) speichern
=> nach zig Schreibvorgängen den Wert der Adresse an der Stelle 00
   ändern, um eine neue Speicherzelle zum speichern nutzen...

nitraM
Gast #881616
Lesenswert?

@Martin L.
Klingt soweit gut. Ich kenne mich mit FRAM nicht so aus, aber kann ich 
dort ein Byte (nahezu) beliebig oft beschreiben, ohne vorher löschen zu 
müssen, oder gar eine ganze Page, wie bei EEPROM?
#881619
Lesenswert?

SamS wrote:

> Ja, daran dachte ich auch schon. Dazu muss aber der Speicher möglichst
> schnell sein.

Wenn du ein "möglichst schnelles" Fahrzeug suchst, landest du bei 
Prototypen mit Raketentriebwerk. Wenn dir das zu teuer oder zu 
unpraktisch ist, wär's besser die Randbedingungen zu konkretisieren. 
Also: wie schnell ist schnell genug?

FRAMs sind so schnell wie seriell angebundene RAMs sein können, also 
beispielsweise 10Mbps SPI.

Oben schreibst du, dass alle paar Sekunden 4 Bytes geschrieben werden. 
Das ist alles andere als schnell, sondern derart langsam, dass auch 
EEPROMs grundsätzlich einsetzbar sind, auch Batterie/Goldcapgepufferte 
Uhrenchips mit integriertem RAM per I2C sind dafür schnell genug.
#881622
Lesenswert?

SamS wrote:

> Klingt soweit gut. Ich kenne mich mit FRAM nicht so aus, aber kann ich
> dort ein Byte (nahezu) beliebig oft beschreiben, ohne vorher löschen zu
> müssen, oder gar eine ganze Page, wie bei EEPROM?

Jedes Byte darf einzeln praktisch beliebig oft neu geschrieben werden, 
und zu beachtende Programmierzeit gibt es nicht, d.h. Byte/Page-Modi 
sind nicht relevant. Interface ist SPI oder I2C oder parallel, je nach 
Typ.

Für Einzelbeschaffung ist die günstigste Bezugsquelle dank des Portos 
kurioserweise Modtronix in Australien.
Gast #881642
Lesenswert?

@Andreas Kaiser
Mein MC muss natürlich noch was anders "nebenher" machen, als nur diesen 
Zähler zu aktualisieren. der Zähle ist eigentlich Nebensache und dient 
der Sicherheit der Messwert-Erfassung.

Ich weiß, ich sollte noch genauer schreiben, wie schnell alles sein 
muss. Nur kann ich im Moment nicht genau sagen, wie schnell. Geschätzt 
muss der gesamte maximale Schreibvorgang (inkl. Löschen) in weniger als 
1ms abgeschlossen sein.


Ich verstehe das immer noch nicht ganz. helft mir bitte:
beim FRAM muss nicht gelöscht werden, sondern einfach neu beschrieben 
werden? Also quasi wie SRAM?
#881643
Lesenswert?

Andreas Watterott wrote:

> Das Porto nach Dtl. konnte ich leider nirgends finden.

3 US$: http://www.modtronix.com/shipping.php#letter_air

> Man muss aber auch noch Einfuhrumsatzsteuer bezahlen

Ich meine mich errinnern zu können, dass es ein Limit so um die 22€ 
gibt. Wenn man darunter liegt, bleibt einem die m.W. erspart.

> und die Versandzeit ist bestimmt auch etwas länger.

Sicher.

Fairerweise: Es sind andere Chips, 64Kbit statt 256Kbit. Aber wenn man 
nur 32 Bits braucht...
#881645
Lesenswert?

SamS wrote:

> beim FRAM muss nicht gelöscht werden, sondern einfach neu beschrieben
> werden? Also quasi wie SRAM?

Genau so ist es. Für alle praktischen Belange kann man FRAM als 
nicht-flüchtiges serielles RAM betrachten und die Geschwindigkeit wird 
nur vom seriellen Interface definiert. Drum heisst es ja auch "FRAM" und 
nicht "FROM".
Persönliche Seite #881649
Lesenswert?

Andreas Kaiser wrote:
>> Das Porto nach Dtl. konnte ich leider nirgends finden.
>
> 3 US$: http://www.modtronix.com/shipping.php#letter_air

Ah, ich hatte immer unter "International Destinations" geschaut.

>> Man muss aber auch noch Einfuhrumsatzsteuer bezahlen
>
> Ich meine mich errinnern zu können, dass es ein Limit so um die 22€
> gibt. Wenn man darunter liegt, bleibt einem die m.W. erspart.

Stimmt, hatte ich ganz vergessen.
(Firma: TravelRec.) Persönliche Seite #881738
Lesenswert?

>Nimm ein kleines EEPROm (24C02) und schreib an Adresse 00 die
>Adresse der Speicherzelle, wo dein aktueller Zählerstand steht.
>Alle tausend Speichervorgänge schreibst du eine neue Adresse an 00
>und legst die Werte unter dieser Adresse ab....


>=> lesen des Wertes an Adresse 00h (Addr)
>=> lesen des alten Wertes, den du unter (Addr) findest
>=> neuen Wert unter (Addr) speichern
>=> nach zig Schreibvorgängen den Wert der Adresse an der Stelle 00
>   ändern, um eine neue Speicherzelle zum speichern nutzen...

Und wo legst Du ab, wie oft Du schon geschrieben hast, um zu wissen, daß 
1.000 Speichervorgänge erfolgt sind?
Gast #882340
Lesenswert?

Meine Schaltung hat einen C8051 von Silabs. Und leider kam es schon vor, 
dass sich der Flash ungewollt veränderte. SiLabs kennt das Problem und 
antwortet sofort mit einer langen Liste an Vorsichtsmaßnahmen. Ich halte 
auf meiner Schaltung und in meiner Software alles ein. Dennoch passiert 
es.
Um dem aus dem Weg zu gehen, soll dieser Zähler jetzt eben "extern" 
gelegt werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren