mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM Daten wegen Zugriffszeit im RAM Spiegeln?


Autor: Zeitsparer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist es aus Zugriffszeitgründen ev. sinnvoll, die im EEPROM 
abgespeicherten Daten einer Sensorkennlinie eins zu eins ins RAM zu 
spiegeln und vom RAM aus zu operieren?

Das im EEPROM liegende Array könnte in der Ini ins RAM gespiegelt 
werden.

Welche Probleme bzw. Nachteile handelt man sich da ein? Bitkipper bei 
EMV o.ä.?
Wie macht man das praktisch?

Gruß

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Zeitsparer

>ist es aus Zugriffszeitgründen ev. sinnvoll, die im EEPROM
>abgespeicherten Daten einer Sensorkennlinie eins zu eins ins RAM zu
>spiegeln und vom RAM aus zu operieren?

Wenn die Kennliniendaten oft und schnell gebraucht werden, dann ja.
Wenn sie nur selten gebraucht werden und Geschwindigkeit keine Rolle 
spielt, dann ist es egal.

>Das im EEPROM liegende Array könnte in der Ini ins RAM gespiegelt
>werden.

Ja.

>Welche Probleme bzw. Nachteile handelt man sich da ein? Bitkipper bei

Wenn in deinem RAM Bits kippen, hast du SO oder SO ein Problem. 
Kritische Anwendungen verwenden CRC Prüfsummen, die zyklisch geprüft 
werden (z.B. in Weltraumelektronik, Sicherheitstechnik, etc.).

>EMV o.ä.?
>Wie macht man das praktisch?

??
Wo ist das Problem? Daten aus dem EEPROM lesen und ins RAM schreiben.

MfG
Falk

Autor: ab-cd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.
war 'lesen' nicht doch viel schneller ....als schreiben ?
.

Autor: Zeitsparer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten müssen in jeder main gelesen und damit gerechnet werden. Es 
sind mindestens zehn Werte. Darunter komme ich nicht.

EEPROM Lesen ist natürlich schneller als Schreiben.

Ich dachte schon an zyklisches sukzessives updaten einer einzelnen 
Zellen einmal pro main.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lesen aus dem SRAM 2 Takte
Lesen aus dem EEPROM 2 Takt (sbi und in)
Also bringt nicht soooo viel es sei den du willst viel hinterinader 
lesen, aber meist ist der Controller eh gelangweilt...

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Läubi
So einfach ist das aber nciht.
Du musst erst das EEPROM ansprecehn, dann den Lesebefehl absetzten. 
Danach die Adresse und Anzahl der Byte(s) übertragen.
Diesen Protokolloverhead hast du bei EEPROM immer.



@Zeitsparer
Am schnellsten ist es wenn du die Daten im Ram spiegelst. Das heißt bei 
der Initialisierung die Daten von EEPROM ins Ram lesen, und beim 
Abschalten die eventuell geänderten Daten wieder ins EEPROM schreibst.

Das wird in professionellen Anwendungen übrigens genauso gemacht.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ist es aus Zugriffszeitgründen ev. sinnvoll, die im EEPROM
> abgespeicherten Daten einer Sensorkennlinie eins zu eins ins RAM zu
> spiegeln und vom RAM aus zu operieren?

Das kommt auf die gewünschte Anwendung an. Wenn der Zugriff zu langsam 
für die Anforderung ist, wird's wohl sinnvoll sein, sonst nicht.

> Welche Probleme bzw. Nachteile handelt man sich da ein?

Längere Initialisierungszeit, etwas mehr Programmieraufwand, höherer 
RAM-Verbrauch. Falls Daten zurückgeschrieben werden müssen, ist bei 
einem Ausfall der Versorgung alles weg, was zwischenzeitilich nicht 
gesichert wurde.

> Bitkipper bei EMV o.ä.?

Wenn in deinem RAM Bits umkippen, ist ein sinnvoller Betrieb des Systems 
sowieso unmöglich.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph wrote:
> @Läubi
> So einfach ist das aber nciht.
> Du musst erst das EEPROM ansprecehn, dann den Lesebefehl absetzten.
> Danach die Adresse und Anzahl der Byte(s) übertragen.
> Diesen Protokolloverhead hast du bei EEPROM immer.
>
Naja man muß das auch ins RAM spiegeln, also Initialisierung laß ich mal 
nicht gelten.

Adresse laden und und Bytes übertragen mußt du auch beim SRAM,
Lesebfehl hab ich ja als SBI gezählt und IN als auslesen, beim SRAM mußt 
du auch erst die Adresse setzen wie beim EEPROM und kannst dan lesen, 
nur das das Lesen halt 2 Takte braucht.

Und ich behaupte einfach mal das es sehr wenig Anwendungen gibt wo man 
eine Sensorkennlinie in soooo hoher Geschwindigkeit lesen muß als das es 
sich lohnt das ins RAM zu spiegeln...

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Läubi:
> Lesen aus dem SRAM 2 Takte
> Lesen aus dem EEPROM 2 Takt (sbi und in)

Von was für SRAM und EEPROM sprichst du?

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Zeitsparer

>Die Daten müssen in jeder main gelesen und damit gerechnet werden. Es
>sind mindestens zehn Werte. Darunter komme ich nicht.

Graf-Zahl-Witz-mal-wieder-verkniffen

>EEPROM Lesen ist natürlich schneller als Schreiben.

A) WELCHES EEPROM? Ich habe unbewusst an ein exterenes, serielles EEPROM 
gedacht, meist per I2c oder SPI angeschlossen. I2C macht max. 400 
kbit/s, effektiv bissel weniger. SPI je nach EEPROM einige Mbit/s.

b) Die Aussage "Die Daten müssen in jeder main gelesen und damit 
gerechnet werden" ist so gut wie nichts wert. Wie oft wird den dein 
"main" pro Sekunde ausgeführt? 10mal? 1000mal?

>Ich dachte schon an zyklisches sukzessives updaten einer einzelnen
>Zellen einmal pro main.

Und wozu?

@ Rolf Magnus

>@Läubi:
>> Lesen aus dem SRAM 2 Takte
>> Lesen aus dem EEPROM 2 Takt (sbi und in)
>Von was für SRAM und EEPROM sprichst du?

Die internen vom AVR.

@ Läubi Mail@laeubi.de

>Und ich behaupte einfach mal das es sehr wenig Anwendungen gibt wo man
>eine Sensorkennlinie in soooo hoher Geschwindigkeit lesen muß als das es
>sich lohnt das ins RAM zu spiegeln...

Sehe ich ähnlich. Aber man sollte einfach mal ein paar brauchbare Zahlen 
auf den Tisch legen (an den OP gerichtet). Dann klappts auch mit den 
substanziellen Antworten . . . ;-)

MFG
Falk





Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.