Forum: Mikrocontroller und Digitale Elektronik I2C 64kB Speicher (shiftend?)


von Sebastian (Gast)


Lesenswert?

Hallo..

Ich suche einen schnellen (dafür flüchtigen) 64kB Speicher um ihn an 
einem I2C Bus zu betreiben. Das Problem ist, dass ich eine spezielle 
Speicherarchitektur benötige.

Das ganze soll für ein kontinuierliches Sampeln verwendet werden.

Ich stelle mir das so vor, dass das Shiften automatisch von statten 
geht. Also wenn der Speicher mit 1042 64Bit-Werten voll ist und der 
nächste Wert folgt müssten ja alle Werte nach Vorne shiften, der fordere 
rausfallen und der neue hinten angehangen werden.

Gibt es speicher dieser Art?

Das würde unglaublch viele Speicherzugriffe sparen.

Mit freundlichen Grüßen,

Sebastian

von Michael Z. (incunabulum)


Lesenswert?

Was du suchst ist ein Ringbuffer. Denn kann man in Software 
implementieren. Wo dann die Daten liegen (Ram, Eeprom oder extern via 
I2C) sollte erstmal keine Rolle spielen.

Vielleicht mal danach suchen? Es gibt da einige schöne Beispiele, wie 
man das machen kann.

cu, mz

von Sebastian (Gast)


Lesenswert?

Dankeschön.. Ich werde suchen und meine Resultate präsentieren!

Dieser Begriff hat mir gefehlt!  ;)

von Sebastian (Gast)


Lesenswert?

Gut, im Prinzip handelt es sich dabei ja nur um eine (doppelt) 
verkettete Liste mit zwei iterierenden Zeigern.
Welche möglichkeit ist denn nun die beste, diesen Speicher in den I2C 
auszulagern?
Ich muss letztendlich ca 1000 mal 64 Bit speichern, der AVR reicht da 
natürlic nicht.
Ich habe ferner leider nicht genug I/O Ports um einen RAM anzuschließen.

Da ein I2C eh auf der Platine ist, würde sich das ja anbieten.

Gruß, Sebastian..

von (prx) A. K. (prx)


Lesenswert?

I2C SRAM dieser Kapazität kenne ich nicht, es gibt aber ebenso 
"schnelles" 64KB FRAM mit I2C: FM24C512-G, erhältlich beispielsweise bei 
TME. Dass der nichtflüchtig ist dürfte ja nicht stören.

Das Shiften macht man natürlich in Software. Als Ringpuffer, wie schon 
skizziert wurde.

von Route_66 (Gast)


Lesenswert?

Hallo!
Die 24C512 sind 512k Bit und nicht 64k.

von (prx) A. K. (prx)


Lesenswert?

Eben. KB=Kilobyte. Da 8 Bit ein Byte darstellen sind 
512Kbit=64KByte=64KB.

von Route_66 (Gast)


Lesenswert?

@A.K.
1024 64Bit-Werte sind 64k Bit !!!!

von (prx) A. K. (prx)


Lesenswert?

Ok, ich hatte seine 64kB blind übernommen (gängige Schreibweise ist 
64Kb=bit, 64KB=Byte). Dann nehme er halt nen kleineren Baustein, wenn 
die Löcher im grossen zu sehr auffallen. Gibt's als FM24C64 auch, wenn 
er mag auch mitsamt Uhr.

von Route_66 (Gast)


Lesenswert?

Ich meine nur, bei 8k Byte kommt er vielleicht doch mit internem 
Speicher aus?

von (prx) A. K. (prx)


Lesenswert?

Wenn er den Controller wechselt... Denn welcher der AVRs hat mehr als 
8KB RAM-Speicher?

von Matze (Gast)


Lesenswert?

In welcher Zeit sollen die 64KByte gespeichert werden? I2C ist oft sehr 
langsam. SPI würde schneller gehen. Nur so als Hinweis.

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.