Rückgabewert
Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A,
Rückgabewerte aus den API-Funktionen ).
Beschreibung
Die Funktion 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 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 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.
#include <AnaGateDllSPI.h>
int main()
{
char
int
int
AnaUInt16 nSubAddress = 0;
AnaUInt32 nOffsetFormat = 0x10|0x0F;
int nRC = I2COpenDevice(&hHandle, 400000, "192.168.1.254", 5000);
if ( nRC == 0 )
{
memset(cBufferPage,0,256);
for (int i=0; i<512;i++)
{
I2CWriteEEProm( hHandle, nSubAddress, i*256, cBufferPage, 256, nOffsetFormat );
}
I2CCloseDevice(hHandle);
}
return 0;
}
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.
I2C API Funktionen
berechnet werden. So benötigt z.B. ein M24C08 acht
Bits des Adressbytes und 1 zusätzliches Bit. Damit
können über die 9 Bits insgesamt 512 Bytes adressiert
werden.
cBufferPage[256];
hHandle = 0;
nRC = 0;
1
// clear page buffer
2
75
© 2007-2015 Analytica GmbH
3