|
|
EEPROM (seriell) 24C64/24C65/24C128/24C256
|
Die C-Control-(M)-Units sind grundsätzlich alle mit dem EEPROM 24C65 von
"MICROCHIP"
bestückt, d.h. es gibt einige wenige Versionen, die mit einer Pin-kompatiblen
Version des EEPROM 24C64 von der Firma "SGS THOMSON" bestückt sind. Der Unterschied
besteht darin, das der 24C65 einen High Endurance Block besitzt. Im Normalfall
kann jede Speicherstelle im seriellen 24C65'er EEPROM, zwischen 100.000 mal und
eine Million mal neu programmiert werden, danach ist sie tot. Es gibt aber einen
verschiebbaren, 4096 Bit großen Bereich, der bis zu zehn Millionen mal neu
programmiert werden kann. Dieser Bereich heißt High Endurance Block und liegt vom
Werk aus (angeblich) am Ende des Speicherraums des EEPROMs.
Weitere Informationen bietet das 24C65 Manual (24LC64 Manual)
von der Firma MICROCHIP. Auf der Seite
http://www.geocities.com/ccontrolintern
von Dietmar Harles liegt ein Programm zum Verschieben des High Endurance Blocks
(leider noch nicht getestet bzw. kein Feedback).
Es gibt sogar größere
EEPROMs, die für die C-Control-Units genutzt werden können.
Statt dem 24C65 (8 Kilobyte Speicher), kann man z.B. einen 24C256 einsetzen.
Dieser bietet 32 KB Speicherplatz (siehe Tabelle unten).
Zusätzliche Informationen zu diesem Thema gibt es auch unter
http://home.t-online.de/home/B.Kainka.
Das Betriebssystem schert sich beim Speichern in die Datendatei (mit
den "OPEN# FOR ..."- und "PRINT#"-Befehlen) übrigens nicht um die
Größe des EEPROMs. Falls über die gültige Bereichsgrenze des EEPROMs
hinaus in dieses geschrieben (oder aus diesem gelesen wird) läuft einfach
der interne Adresszähler im EEPROM über und es wird der Beginn des EEPROMs
überschrieben. Nur der FILEFREE-Befehl benutzt zur Berechnung des freien
Speichers des EEPROMs eine feste Größe.
Das kann man sich wie folgt zu nutze machen:
DEFINE blocksize 9 'es sollen immer 9 Werte geschrieben werden
DEFINE i BYTE 'definiert eine Variable vom Typ BYTE (8-Bit)
DEFINE Temperatur WORD 'definiert eine Variable vom Typ WORD (16-Bit)
DEFINE Luftdruck WORD
...
...
#hauptprogramm 'Beginn des Hauptprogramms
...
GOTO meszwert_speichern 'Sprung zum Unterprogramm
...
END ' Ende des Hauptprogramms, ab hier beginnen die Unterprogramme
#meszwert_speichern 'Sprungziel und Name des Unterprogramms
OPEN# FOR APPEND 'öffnet die Datei im EEPROM zum "anhängen"
IF FILEFREE < blocksize THEN GOTO filefull 'Ist der Rückgabewert von FILEFREE
'kleiner als der Wert von blocksize, dann Sprung zu filefull
PRINT# Luftdruck 'Werte der Variable "Luftdruck" ins EEPROM schreiben
PRINT# Temperatur 'Werte der Variable "Temperatur" ins EEPROM schreiben
...
...
GOTO fileok v'gehe zum Sprungziel
#filefull 'Sprungziel
PRINT"EEPROM voll" 'Fehlermeldung über COM-Port
'(oder LCD-Ausgabe je nach Ausstattung)
FOR i=1 TO 25 'akustischer Fehlermeldung (Schleife)
BEEP 440,2,0
BEEP 200,2,0
NEXT
#fileok 'Sprungziel
CLOSE# 'Datei schließen'
RETURN 'Rückkehr zum Hauptprogramm
Erklärung:
FILEFREE ist ein CC-Basic-Befehl der auf freien Speicherplatz im Datenbereich des EEPROM testet.
Ist der Rückgabewert von FILEFREE kleiner als die zu speichernde Blockgröße, so
wird eine Fehlermeldung ausgegeben und zum Hauptprogramm zurückgegangen.
Soll ein BASIC-Programm mit mehr als 8 Kilobyte Größe
von der C-Control ausgeführt werden wird für die Windows-IDE
eine neue "CCBAS32.DLL"-Datei benötigt.
Diese kann direkt von der Homepage
von C. Edelmann heruntergeladen werden.
Übrigens:
Das interne EEPROM des MC68HC05B6-Mikrokontroller, das dazu dient Assemblerprogramme
zu beherbergen kann nur ca. 10.000 Lösch- und Schreibzyklen vertragen.
Also, vorher überlegen, ob die Aktualisierung des Assemblerprogrammes bei der Übertragung
BASIC-Programms notwendig ist oder evtl. auskommentiert werden kann.
EEPROM Bezugsquellen:
Typ | Hersteller | Größe |
Bestellnummer | Preis ca. |
Conrad Elektronik
Klaus-Conrad-Str. 1
92240 Hirschau
Tel.: 01 80 / 5 31 21 11 |
24C65 | | 64K (8Kx8) | 18 1803-22 | 5.60 EUR |
Reichelt
Reichelt Elektronik
Elektronikring 1
26452 Sande
Tel.: 0 44 22 / 9 55 - 0 |
24C64 | | 64K (8Kx8) | St24C64BN6 | 1.80 EUR |
24C64 (SMD) | | 64K (8Kx8) | St24C64MN6 | 1.55 EUR |
Farnell Electronic Components GmbH
Grünwalder Weg 30
82041 Deisenhofen bei München:
Tel.: 0 89 / 61 39 39 39 |
M24C64-BN6 | | 64K (8Kx8) | 111-260 | 4.78 EUR |
M24C64-MN6 (SMD) | | 64K (8Kx8) | 3025-329 | 3.71 EUR |
M24C128-BN6 | | 128K (16Kx8) | 111-272 | 7.64 EUR |
M24C256-BN6 | | 256K (32Kx8) | 111-284 | 5.26 EUR |
FM24C256M8 | | 256K (32Kx8) | 3550-412 | 5.80 EUR |
FM24C256N (SMD) | | 256K (32Kx8) | 3550-400 | 5.80 EUR |
RS Components GmbH
Hessenring 13b
64546 Mörfelden-Walldorf
Tel.: 0 61 05 / 4 01 - 2 34 |
AT24C6410PC | | 64K (8Kx8) | 246-6979 | 5.60 EUR |
AT24C64N10SC (SMD) | | 64K (8Kx8) | 246-6963 | 5.60 EUR |
24LC65P | | 64K (8Kx8) | 831-832 | 4.58 EUR |
Firma Modul-Bus
Email: modul-bus@t-online.de
Tel. 0 25 74 / 80 90
|
AT24C256 | | 256K (32Kx8) | --- | ??.?? EUR |
Firma Schuricht
Email: scc@schuricht.de
Tel. 0 18 05 / 5 22 34 35
|
24LC65/P | | 64K (8Kx8) | 64 45 30 | 2.81 EUR |
Stand: 12/03 (alle Angaben ohne Gewähr)
|
|
|
|
|