Forum: Mikrocontroller und Digitale Elektronik Speicherbausteine Grundkenntnisse


von T800w (Gast)


Lesenswert?

Hallo,
Ich benötige für einen Atmel ATTiny84 einen externen Speicherbaustein. 
Das ganze soll so aussehen, dass der ATTiny84 gelegentlich Daten zum 
Speicherbaustein schickt und die dann gespeichert werden soll. Dabei 
kann es auch vorkommen dass der ATTiny84 auch mehrmals hintereinander 
Daten schickt, dabei sollen die alten aber nicht verloren gehen. Und der 
Speicherbaustein soll auch von einem anderen Atmel Chip zur Verfügung 
gestellt werden, damit der die Daten lesen kann.D.h dass der ATTiny84 
nur schreibt und der andere nur ließt. Das ganze sollte innerhalb von 
ein paar ms passieren, also entweder ein lesezyklus oder schreib zyklus. 
Sobald der andere Atmel Chip die Daten hat soll er die Daten auf dem 
Speicherbaustein löschen (oder auch nur Überschreiben, damit der 
Speicherbaustein länger funktioniert), damit keine Komplikationen 
entstehen. Der Speicherbaustein sollte eine Kapazität von 54 kb haben. 
Ich weiß das die alle mithilfe von Adressen über die SDA und SCL Leitung 
kommunizieren können. Doch ich habe keine Ahnung welcher 
Speicherbaustein sich am besten eignet und wie das ganze Funktioniert, 
also wie man auf den Speicherbaustein zugreift und dem die Daten 
aufspielt.
Vielen Dank

von Michael B. (laberkopp)


Lesenswert?

T800w schrieb:
> Doch ich habe keine Ahnung welcher
> Speicherbaustein sich am besten eignet

Der, den du am billigsten kaufen kannst.

Ein mögliches 64k SPI RAM wäre z.B.
http://ww1.microchip.com/downloads/en/devicedoc/22126c.pdf

Falls der Inhalt auch bei Stromausfall erhalten bleiben soll,
könnte man FRAM einsetzen:
http://de.farnell.com/cypress-semiconductor/fm25cl64b-g/fram-64k-spi-8soic/dp/2077755

Denn Flash-Baustein sind meist grösser, haben blöde Betriebsspanugnen 
und wird bei Millisekunden eventuell knapp
AT25DF256-XMHNGU-B (niedrige Spannung)
oder
S25FL128SAGMFI003

von Adam P. (adamap)


Lesenswert?

Also möchtest du
2x Master (ATtiny & anderer Ateml Chip)
1x Slave (Speicher)
aufbauen?

Wenn der eine nur schreibt und der andere nur liest...
warum sendet dann der ATtiny die Daten nicht direkt an den anderen Chip.

Wenn es blöd läuft, dann versuchen beide gleichzeitig auf den Speicher 
zuzugreifen und dann funktioniert weder schreiben noch lesen.

Ich würde da anders herangehen.

von Michael B. (laberkopp)


Lesenswert?

Adam P. schrieb:
> Wenn es blöd läuft, dann versuchen beide gleichzeitig auf den Speicher
> zuzugreifen und dann funktioniert weder schreiben noch lesen.

Na ja, das kann man ja über eine Leitung oder Sowfatre synchronisieren.

von Stefan S. (chiefeinherjar)


Lesenswert?

T800w schrieb:
> Ich weiß das die alle mithilfe von Adressen über die SDA und SCL Leitung
> kommunizieren können

Da hast du etwas falsch verstanden.

SDA und SCL gehören zum I2C-Bus.
Und bei weitem nicht alle Speicherbausteine nutzen diesen Bus.

Über die von dir angesprochenen Adressen werden die einzelnen Bausteine 
an sich angesprochen.
Das ist wie in einem Raum, in den dich jeder hören kann. Da musst du 
auch eine Person konkret ansprechen und ihr sagen "Werner, merk dir mal 
die Zahl 42 an Position 1!".
Folglich wird sich nur Werner diese Zahl an dieser Position merken, auch 
wenn jeder mithören konnte.


T800w schrieb:
> (oder auch nur Überschreiben, damit der
> Speicherbaustein länger funktioniert),
Jede Schreib-Operation (Löschen gehört auch dazu) verringer die 
Lebenszeit deines Chips. Typischerweise liegen die Zyklen bei so 
100.000, können aber auch deutlich mehr sein. Das hängt auch von der Art 
des Speichers (Flash, E(E)PROM, etc.) ab und lässt sich im Datenblatt 
finden.

Ein ATTINY84 klingt so, dass du grundsätzlich wenig Pins verwenden 
möchtest, da bietet sich in der Tat ein Speicher mit I2C an.

Wie es mit I2C-Flash-Speichern aussieht weiß ich nicht genau, aber die 
Ergebnisse bei Google sind recht mager - spontan habe ich nur EEPROMS 
gesehen, die haben aber Schreibzeiten im Bereich weniger ms.
Ob das reicht musst du wissen.

Alternativ bieten sich natürlich SPI-Flashs an. Die lassen sich einfach 
ansprechen und sind sehr schnell im Schreiben. Die brauchen aber vier 
Leitungen zum Lesen bzw. drei zum Schreiben. Ob das auch noch Okay für 
dich ist musst du wissen.

von Adam P. (adamap)


Lesenswert?

Michael B. schrieb:
> Na ja, das kann man ja über eine Leitung oder Sowfatre synchronisieren.

Ja da hast schon recht.

von Magneto (Gast)


Lesenswert?

Weiss eigentlich jemand, ob noch an den statischen Magnetspeichern 
gearbeitet wird, die man statt der Disketten und Platten mal ja als 
EEPROM-Ersatz einführen wollen?

von André R. (andr_r619)


Lesenswert?

@Magneto: Der FRAM, der da oben verlinkt wurde, klingt doch in etwa nach 
dem, was Du dir vorstellst, oder?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Magneto schrieb:
> Weiss eigentlich jemand, ob noch an den statischen Magnetspeichern
> gearbeitet wird,

"Bubble Memory"? Dürfte mehr als tot sein.

MRAM bzw. FRAM: Gibt es, sogar direkt in Microcontrollern anstelle des 
Flash-ROMs.

von Magneto (Gast)


Lesenswert?

Naja, das sind ja eigentlich schon die modernen Weiterentwicklungen ... 
aber egal.

Andere Frage: Wie stabil sind die eigentlich gegen äussere Felder?

von Falk B. (falk)


Lesenswert?

@ T800w (Gast)

>Ich benötige für einen Atmel ATTiny84 einen externen Speicherbaustein.
>Das ganze soll so aussehen, dass der ATTiny84 gelegentlich Daten zum
>Speicherbaustein schickt und die dann gespeichert werden soll. Dabei
>kann es auch vorkommen dass der ATTiny84 auch mehrmals hintereinander
>Daten schickt, dabei sollen die alten aber nicht verloren gehen. Und der
>Speicherbaustein soll auch von einem anderen Atmel Chip zur Verfügung
>gestellt werden, damit der die Daten lesen kann.D.h dass der ATTiny84
>nur schreibt und der andere nur ließt.

Wenn möglich, erledigt man das mit EINEM Controller und nicht zwei.

von Oliver S. (oliverso)


Lesenswert?

Falk B. schrieb:
> Wenn möglich, erledigt man das mit EINEM Controller und nicht zwei.

Was einen dann zur nächst naheliegenden Frage führt:

Wenn es schon zwei sein müssen, wie weit sind die voneinander entfernt?

Oliver

von Sebastian S. (amateur)


Lesenswert?

Keine Ahnung, ob die I²C Schnittstelle des ...84 Multimasterfähig ist.
Wenn nicht, solltest Du - nach Murphy - davon ausgehen, dass beide 
Prozessoren gleichzeitig am Speicher rumfummeln wollen.

Das aber lässt sich nur sinnvoll verhindern, wenn Du eine 
"Sicherungsleitung" ins System einfügst, die den Verkehr regelt. Z.B. 
über eine pulled up connection. Oder Du bestimmst einen der Beiden zum 
Massa und der "sagt" (Output) was Sache ist und der Andere darf Fragen 
(input). Ist aber eine Krücke.

Die Datenorganisation geschient am einfachsten in einem Ringpuffer. Wer 
schreibt, fummelt am "Ende-Zeiger" rum, wer liest, am Anfangszeiger. So 
kann jederzeit festgestellt werden ob und wie viele Daten im Topf sind 
oder wieviel freier Platz noch da ist. Wichtig ist dabei nur, dass immer 
ein "bisschen" Platz im Puffer ist. Denn mehr wie voll ist meist 
problematisch.

von T800w (Gast)


Lesenswert?


von Route_66 H. (route_66)


Lesenswert?

T800w schrieb:
> Hat welche Speicherkapazität?

Steht in der Überschrift zum IC

Was willst du eigentlich bauen, wenn dir
4kBIT (512 x 8) nichts sagen?

: Bearbeitet durch User
von Adam P. (adamap)


Lesenswert?

Route 6. schrieb:
> Was willst du eigentlich bauen

Wenn ich raten darf - bestimmt ein Datenspeicher für sein "20.000 I²C 
Sensoren Projekt)

4Kbit = 4096Bit = 512Byte

: Bearbeitet durch User
von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?


von Stefan S. (chiefeinherjar)


Lesenswert?

Da gab's doch auch ein Foto von  einem riesigen Array aus 
Ringkernspeichern.

Da bekommt der Begriff "Massenspeicher" gleich eine andere Bedeutung ;)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?


von Sebastian S. (amateur)


Lesenswert?

Die Beschreibung bei Reichelt ist ja echt lustig!

"It provides reliable data retention for 151 years"

Also nicht nur 150 Jahre, sondern volle 151 Jahre.

von Günter Lenz (Gast)


Lesenswert?

Ich suche so etwas auch, der so funktioniert wie der
EEPROM M24C64, nur eben als SRAM.

von Falk B. (falk)


Lesenswert?

@ Günter Lenz (Gast)

>Ich suche so etwas auch, der so funktioniert wie der
>EEPROM M24C64, nur eben als SRAM.

Hab ich dir nicht vor kurzem erst dazu einen Link gezeigt?

Beitrag "Re: benutzt ihr noch sram"

von Bernd T. (bastelmensch)


Lesenswert?

Sebastian S. schrieb:
> Die Beschreibung bei Reichelt ist ja echt lustig!
>
> "It provides reliable data retention for 151 years"
>
> Also nicht nur 150 Jahre, sondern volle 151 Jahre.

150 hören sich eben nach Marketing geschreibsel an.
Aber 151, das wirkt wie tatsächlich und wissenschaftlich korrekt 
ermittelt.

Mr. Spock hat ja auch nie gesagt "3 Stunden", da waren es "3 Stunden, 2 
Minuten und 12 Sekunden".

:-D

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@ Bernd T. (bastelmensch)

>Mr. Spock hat ja auch nie gesagt "3 Stunden", da waren es "3 Stunden, 2
>Minuten und 12 Sekunden".

Das war eher Data.

von Peter D. (peda)


Lesenswert?

T800w schrieb:
> D.h dass der ATTiny84
> nur schreibt und der andere nur ließt.

Das ist ein typischer Anfängerfehler, daß sie meinen, es wird einfacher, 
je mehr CPUs man benutzt. Das Gegenteil ist der Fall.
Vernetzung ist die hohe Schule der Programmierung, davor sollte man also 
erstmal lernen, eine CPU zu programmieren.

Wenn Du nen AVR mit 64KB SRAM brauchst, nimm z.B. einen ATmega162 und 
pappe 64kB SRAM dran. Der Schaltplan dazu steht im Datenblatt:
"Figure 12. External SRAM Connected to the AVR"

von André R. (andr_r619)


Lesenswert?

Mal eine Zwischenfrage an der Stelle: Wie schnell ist dann eigentlich 
der Zugriff auf den externen Speicher? Genau so viele Taktzyklen wie 
intern?

von Falk B. (falk)


Lesenswert?

@André R. (andr_r619)

>Mal eine Zwischenfrage an der Stelle: Wie schnell ist dann eigentlich
>der Zugriff auf den externen Speicher?

Welcher Prozessor und welcher Speicher? Wenn du externen SRAM am AVR 
meinst, so ist der pro Zugriff um 1-3 Takte langsamer.

> Genau so viele Taktzyklen wie intern?

Nein. Interner RAM ist fast immer am schnellsten.

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.