Das EEPROM 24C65 auf der C-Control-Unit verfügt über drei Adressleitungen A0, A1 und A2 zur Festlegung der I²C-Bus-Adresse. Alle drei Leitungen liegen an Masse. Der Chip belegt damit die Adresse A0 beim Schreiben und A1 beim Lesen.
Theoretisch kann man noch sieben weitere EEPROMs der selben Art an den Bus anschließen, indem man andere Basisadressen einstellt. Das grundsätzliche Verfahren wird hier mit einem zusätzlichen Speicherbaustein gezeigt. Der zweite 24C65 kann entweder über die nach außen geführten Anschlüsse SDA und SCL angeschlossen werden, oder man setzt ihn einen huckepack auf den ersten Baustein. Alle Leitungen bis auf A0 werden direkt angelötet. A0 wird mit VSS verbunden. Der zusätzliche Baustein belegt nun die Busadresse A2hex bzw. A3hex beim Lesen.
Mit diesem Umbau hat man den verfügbaren Speicher verdoppelt. Allerdings wird das zusätzliche IC nicht automatisch vom Betriebssystem erkannt und verwendet. Man braucht also ein Zusatzprogramm wie EEio.ASM zur Ansteuerung. Die Adressen liegen auch wieder im Bereich 0 bis 8191, nur die I²C-Adresse ist geändert.
'************************************** ' ' C-Control/BASIC EEio3.BAS ' ' Aufgabe: ' ' - Zugriff auf ein zusätzliches EEPROM ' - Schreiben eines Datenbereichs ' '************************************** ' --- Definitionen -------------------- define AdrI2C byte define Dat byte define Adr word ' --- Programmoperationen ------------- AdrI2C = &H0A2 'eigenes EEPROM for Dat = 000 to 255 adr = Dat sys &H101 'EEPROM schreiben next Dat for Adr = 000 to 255 sys &H130 'EEPROM lesen print Dat, next Adr end syscode "EEio.obj"
Achtung: Das Programm sollte nur gestartet werden, falls wirklich ein zusätzliches EEPROM angeschlossen wurde. Sonst wartet das CC-Betriebssystem beim ersten Speicherzugriff ganz geduldig, bis Sie fertig gelötet haben. Und andererseits soll man ja bekanntlich nicht an einem laufenden System herum löten.
EEIO3 starten
Terminal starten