mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2119 Daten im Flash Rom speichern


Autor: Johannes Friedrich (jof307)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite im Moment an einem Programm für den LPC2119.
Um auf einen EEprom Baustein verzichten zu können würde ich gerne den 
internen Flash ROM (immerhin 128k) als Datenspeicher für bestimmte 
Parameter nutzen, die während der Betriebszeit verändert wurden.
Da bei gewöhnlicher Variablendeklaration nach Trennung des 
Microcontrollers vom Strom alle Daten verloren gehen, ist anzunehmen, 
dass sie im Ram gespeichert werden. Wie bekomme ich Zugriff auf den 
Flash ROM? Gibt es irgendwo Beispieldateien?

Gruß Johannes

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
User Manual Kap. 20 (IAP).

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber bedenke, dass der Flash-Speicher kein adäquater Ersatz für
ein EEProm ist, wie man es von anderen µCs kennt.
Du kannst den Flash nur sektorweise löschen (4k/32k) und dann
auch nur in Blöcken von mindestens 256 Byte wieder beschreiben.

Um also mal ein paar Parameter abzulegen/ zu ändern taugt das
Verfahren also leidern nicht. Sonst müßtest du ja immer den
ganzen Sektor, also 4k oder 32k ins RAM laden, deine kleine
Parameteränderung machen und den ganzen Block dann wieder zurück-
schreiben, um die anderen Parameter nicht kaputt zu machen.

Stehe gerade vor dem selben Problem und werde wohl ein kleines
I2C EEprom außen dranhängen.

Autor: Johannes Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip hast du Recht, aber ich denke ich werde das Problem anders 
angehen, da ich mir das EEprom mangels Platz wirklich gerne ersparen 
würde.
Ich werde ein flüchtiges Parameter-Array anlegen in das alle Parameter 
gespeichert werden. Und dieses Array schreibe ich dann jedesmal komplett 
in den Flash Rom, quasi wie ein Parameter Buffer. Das hat zwar den 
Nachteil das ich jedes Mal alle Parameter schreibe. Aber das 
interessiert mich eigentlich gar nicht, zumal ich dann immer nur die 4k 
beschreibe.
Wieviel Schreibzyklen hält das Flash Rom denn überhaupt aus?
Man könnte die Daten dann auch nur jedesmal vor dem Ausschalten 
speichern, nur leider weiss ich nicht, wann der Strom das nächste Mal 
weg ist.

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt eine Application Note wie das mit dem Flash als EEPROM Ersatz 
funktionieren kann. Eines ist dabei ganz wichtig, waehrend der 
Programmierung des Flashes kann kein Code aus dem Flash abgearbeitet 
werden. Also verzoegert sich eine Interrupt Antwortzeit in den 
millisekunden-Bereich. Das ist bei fast allen Microcontrollern der Fall. 
Deshalb halte ich auch die Verfahren, "die man von anderen 
Microcontrollern her kennt" fuer ziemlich kritisch im Bezug auf 
Echtzeit. Speichern von Variablen und Interrupts passen nicht so gut 
zusammen :-( auch wenn man einen Byte adressierbaren Speicher hat, wie 
z.B. die LPC900 Familie oder andere populaere Micros.

Die ApNote fuer LPC2000 ist hier:
http://tech.groups.yahoo.com/group/lpc2000/files/
dann suche nach: "  EE_demo_1_1.zip "

Wenn es das Budget zulaesst, ist ein externes serielles EEPROM trotzdem 
eine gute Idee! Kein Einfluss auf Echtzeitverhalten, simple 
Implemtierung = schnellere Entwicklungszeit.

Programmierzyklen on-chip Flash LPC2000: 100000

Robert

Autor: Gerhard. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht ob diese Frage berechtigt ist, aber was mich 
interessiert ist, dass viele neuere Mikrokontroller der 3V Serien keine 
eingebauten EEPROM mehr aufweisen. Hat das erst mit der 3.3V Technik 
angefangen?

Ich habe fast den Eindruck dass alle diese neuen Niedervolttypen kein 
EEPROM intern mehr erlauben. Zum Beispiel, alle 3V Typen von Microchip 
die mir bekannt sind und ein J in der Bauteilenummer haben sind 
EEPROMlos. LPC2000 ist ganz aehnlich. Habe mal schnell bei ATMEL SAM7 
Typen nachgeschaut und es ist da genauso.

Ich habe vor da etwas nachzuforschen, da mich das interessiert und zur 
Zeit nur Vermutungen habe.

Andrerseits, ist es ja nicht so schlimm zumindestens fuer Hobbyprojekte 
ein externes EEPROM mit Zweidrahtanschluss oder SPI ranzuhaengen, aber 
trotzdem.

Wie seht Ihr das?

Gruss,
Gerhard

Autor: Johannes Friedrich (jof307)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Tatsache mit den Interrupts hat mich schon Schweiß und Nerven 
gekostet. Die Interrupts haben beim Erase Vorgang nämlich immer 
dazwischen gefunkt. Einen EEprom zu benutzen macht sicher in vielen 
Fällen Sinn.
Aber was spricht dagegen:
Ich habe nicht viele Parameter zu sichern (und diese auch nicht oft). 
Also schreibe ich sie in den Flashspeicher. Und solange der 
Speichervorgang läuft, schalte ich die Interrupts einfach ab.
Natürlich geht das nicht immer. Hängt eben vom Programm ab. Aber wenn es 
nichts ausmacht, dann ist das doch die einfachste Lösung?
Welche Nachteile hat diese Methode?

Autor: LightCo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen zusammen,
könnte evtl jemand das Codebeispiel EE_demo_1_1.zip hier hochladen? Ich 
habe da bei Yahoo keinen Zugang.
Ich müßte meinen Flash ebenfalls als einen EE PROM nutzen und benötige 
noch eine gewisse Starthilfe. Die IAP Funktionen laufen einwandtfrei.

Gruß

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.