Rückgabewert
RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode
(Anhang A, Rückgabewerte aus den API-Funktionen ).
Beschreibung
Die Funktion LS_I2CWriteEEProm schreibt Daten auf ein serielles I2C-EEPROM.
Der Zugriff auf eine Speicheradresse auf einem I2C-EEPROM wird prinzipiell über eine
normale Schreib- bzw. Leseanforderung auf dem I2C-Bus realisiert. Somit müssen
bei einem Schreibzugriff nur die passende Slave-Adresse, die Offset-Adresse auf
dem Chip und die eigentlichen Daten gesendet werden.
Die Funktion LS_I2CWriteEEProm setzt die übergebene Speicheradresse auf dem
Chip anhand der Angabe von der Subadresse und der Adressierungsvariante des
vorliegenden EEPROM-Typs korrekt um. Eine Angabe der Slave-Adresse entfällt, da
diese bereits durch die vorhandenen Parameter festgelegt ist.
Tipp
Beim Programmieren von EEPROMs ist zu beachten, dass der EEPROM-
Speicher in sogenannte Pages unterteilt ist und dass mit einem einzelnen
Schreibbefehl nur innerhalb einer Speicherseite programmiert werden
kann. Benutzer von LS_I2CWriteEEProm müssen selbst sicherstellen,
dass sie nicht über Seitengrenzen hinaus schreiben. Die jeweilige Größe
einer Speicherseite ist abhängig vom EEPROM-Typ.
Im folgenden ein Programmier-Beispiel, das ein EEPROM vom Typ ST24C1024
komplett löscht.
local tabData = {}
for i = 1, 256, 1 do
table.insert(tabData, 0x0)
end
local nSubAddress = 0
local nOffsetFormat = 0x10+0x0F
local RC, hHandle = LS_I2COpenDevice(400000, "192.168.1.254", 5000)
if RC == 0 then
for page = 0, 512-1, 1 do
RC = LS_I2CWriteEEProm(hHandle, nSubAddress, i*256, tabData, #tabData, nOffSetFormat)
end
LS_I2CCloseDevice(hHandle)
end
Es können bis zu 4 ST24C1024 am I2C-Bus verdrahtet werden. Über die Angabe
1
der Subadresse 0 liegen die Steuerpins E2 und E1 auf LOW.
Der ST24C1024 benötigt 17 Adressbits zur Adressierung der 128 kB. 16 Bits
2
werden über die Adressangabe des Schreibbefehls festgelegt: 16=0x0F. Das
Adressbit A16 wird über das E0 der Chip Enable Address festgelegt, deshalb ist
der Mode 1 (E2-E1-A0) zu verwenden: 0x10.
Die Seitengröße eines ST24C1024 beträgt 256 Byte, im vorliegenden Fall werden
3
alle Seiten komplett über eine for-Schleife programmiert.
I2C-Funktionen
des Adressbytes und 1 zusätzliches Bit. Damit können
über die 9 Bits insgesamt 512 Bytes adressiert werden.
1
2
165
© 2007-2015 Analytica GmbH
3