PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersatz für Eeprom, FM24C16 FRAM Speicher von Ramtron ansprechen. Erfahrungen damit?



Accenter
21.06.2013, 16:58
Ich möchte in einem Projekt anstelle des internen Eeprom eines Atmel einen externen FM24C16 Speicher von Ramtron einsetzen. Diese halten weitaus mehr Speicherzyklen aus (10 hoch 14 Zyklen!!) und eignen sich darum perfekt für mein Vorhaben.

Hat diesen Speicher schonmal jemand mit Bascom angesprochen und kann mir Tipps geben? In der Bascom Hilfe findet man folgenen Hinweis:

By using : $lib "fm24c16.lib"
The EEPROM read and write routines from the library will be used instead of the internal EEPROM.
Thus you can still use : Dim BE as ERAM Byte
And you can use READEEPROM and WRITEEEPROM, but instead of using the internal EEPROM, the external I2C EEPROM is used.
The lib is for the FM24C16. It uses I2C/T

Habe noch nie mit einer .lib gearbeitet. Muss ich diese in ein spezielles Verzeichnis kopieren?
Was muss ich mir unter "Dim BE as ERAM Byte" vorstellen? BE ist eine Variable die ich frei wählen kann? Eine Speicherzelle muss ich nicht angeben? Bascom kümmert sich darum von alleine?

Kannte es bisher nur so:



Dim Variable as String * 10

speichern:
Writeeeprom Variable, 10 '10 = Speicherzelle des Eeprom'

lesen:
Readeeprom Variable, 10

Dnerb
21.06.2013, 23:10
Ich habe noch nie mit der Lib gearbeitet.
Aber den Chip kannst Du auch ohne die Lib mit den I2C-Befehlen ansprechen. So habe ich das gemacht (mit einem fm24c64), funktioniert 1A.

Accenter
24.06.2013, 22:33
wie funktioniert das mit der adressierung? beim fm24c16 erspart man sich das so wie ich das verstanden habe. hast du eventuell etwas code für mich damit ich verstehe wie ich das anstelle? danke.

Dnerb
25.06.2013, 20:34
In der Bascom-Hilfe steht alles zum Thema I2C drin. Zusammen mit dem Datenblatt des Chips ist das eine lösbare Aufgabe.

Adressierung ersparen? Wie soll das funktionieren?

Sorry das ich kurz angebunden bin, habe zur Zeit leider nicht die Zeit alten Code rauszusuchen und viel Support zu leisten.

Accenter
25.06.2013, 22:49
Adressierung ersparen? Wie soll das funktionieren?


Wenn du mit der Lib arbeitest kannst du mit "Dim Variable as Eram Byte" auch ohne Adressierung arbeiten. Bei Bytes sehr einfach.
Da ich aber längere Strings speichern möchte klappt das leider nicht so einfach wie wenn ich auf das interne Eeprom zugreife. Ich muss den langen String zerlegen und dann jedes Byte einzeln speichern und später wieder zusammenbauen. Total aufwendig leider und ich weiß noch nicht genau wie ich das hinbekomme. Hab da leider noch kein Codebeispiel gefunden im Netz.

Accenter
01.07.2013, 15:26
Hab das ganze jetzt mit der Lib zum laufen gebracht. Läuft total unkompliziert. der einzige Nachteil gegenüber des internen Speicher des Mega128 ist, dass ich einen String in seine Einzelzeichen zerlegen muss. Hab mir da jetzt eine Lösung gebastelt die perfekt arbeitet. Bin sehr zufrieden mit dem Ramtron Speicher.