PIC 18f2550 und I2C EEPROM

Gast #2401591
Lesenswert?

Hallo Gemeinde,

wie schon im Titel ersichtlich möchte ich gern mit einem PIC 18f2550 in 
einen EEPROM schreiben und auch wieder aus ihm lesen und das über den 
I2C Bus

Zu den Daten:

µC PIC: 18f2550
EEPROM: 24AA 1025 I/P
Compiler: C18


Verwendeter Code:

Schreiben:
1
   
2
OpenI2C(MASTER, SLEW_ON);
3
SSPADD = 9;
4
IdleI2C();              
5
StartI2C();             //I2C starten
6
WriteI2C(0xA6);         //Controllbyte
7
EEAckPolling(0xA6);
8
WriteI2C(0x00)          //Highteil der Speicher-Addresse
9
EEAckPolling(0xA6);
10
WriteI2C(0x00)          //Lowteil der Speicher-Addresse
11
EEAckPolling(0xA6);
12
WriteI2C(0x05))         //Daten
13
EEAckPolling(0xA6);
14
StopI2C();              //I2C Stop

Lesen:
1
OpenI2C(MASTER, SLEW_ON);    // Initialize I2C module
2
SSPADD = 9; 
3
IdleI2C();
4
StartI2C();                 //I2C starten
5
WriteI2C(0xA6);      //Controllbyte
6
EEAckPolling(0xA6);
7
WriteI2C(0x00;      //Highteil der Speicher-Addresse
8
EEAckPolling(0xA6);
9
WriteI2C(0x00);      //Lowteil der Speicher-Addresse
10
EEAckPolling(0xA6);
11
IdleI2C();
12
StartI2C();                        //I2C starten
13
ToSendDataBuffer[1] = ReadI2C();   //Daten auslesen
14
EEAckPolling(0xA6);
15
StopI2C();                       //I2C Stop

Das Problem ist, dass ich immer 0xff im ToSendDataBuffer[1] stehen habe.
Ich verstehe auch das diagramm für das lesen nicht ganz da nach dem 
zweiten StartI2C noch ein Controllbyte eingezeichnet ist dass ich aber 
werder senden noch empfangen kann ohne dass sich der µc aufhängt.

Ich kenne auch die I2C EEPROM Funktionen aus der C18 lib nur sind die 
nicht für EEPROMs mit mehr als einem Adressbyte.

Das WriteProtectionPin ist richtig angeschlossen und die beiden 
Adresspins sind auf + angeschlossen.

Ich bin um jede Hilfe dankbar.
Angehängte Dateien:
Gast #2402119
Lesenswert?

>ich kenne die Seite von Sprut aber ich kann dort keine Antwort auf mein
>Problem finden

EEAckPolling(0xA6); macht nicht das was du denkst.
Das hat in deinem Program so wie von dir verwendet
nichts zu suchen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren