Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

EEPROM 24C08 Page write and read problem

Status
Not open for further replies.

Dhaval Shah

Junior Member level 3
Joined
Sep 24, 2010
Messages
29
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,554
Hi,

I am trying to store data in EEPROM by page write and Read from same address.
But I am not able to read proper data from EEPROM.
I am using ST24c08 interface with LPC2387.

Below is my code. Please check it and let me know where I am wrong..

I2C_BufferCounter = 0;
for ( I2C_Counter = 0; I2C_Counter < 15; I2C_Counter++)
{

I2CWriteLength = 10;
I2CReadLength = 0;
I2CMasterBuffer[0] = I2C_ADDR;
I2CMasterBuffer[1] = I2C_TEMP;
I2CMasterBuffer[2] = I2CDataBuffer[I2C_BufferCounter + 0];
I2CMasterBuffer[3] = I2CDataBuffer[I2C_BufferCounter + 1];
I2CMasterBuffer[4] = I2CDataBuffer[I2C_BufferCounter + 2];
I2CMasterBuffer[5] = I2CDataBuffer[I2C_BufferCounter + 3];
I2CMasterBuffer[6] = I2CDataBuffer[I2C_BufferCounter + 4];
I2CMasterBuffer[7] = I2CDataBuffer[I2C_BufferCounter + 5];
I2CMasterBuffer[8] = I2CDataBuffer[I2C_BufferCounter + 6];
I2CMasterBuffer[9] = I2CDataBuffer[I2C_BufferCounter + 7];
I2CMasterBuffer[10] = I2CDataBuffer[I2C_BufferCounter + 8];
I2CMasterBuffer[11] = I2CDataBuffer[I2C_BufferCounter + 9];
I2CMasterBuffer[12] = I2CDataBuffer[I2C_BufferCounter + 10];
I2CMasterBuffer[13] = I2CDataBuffer[I2C_BufferCounter + 11];
I2CMasterBuffer[14] = I2CDataBuffer[I2C_BufferCounter + 12];
I2CMasterBuffer[15] = I2CDataBuffer[I2C_BufferCounter + 13];
I2CMasterBuffer[16] = I2CDataBuffer[I2C_BufferCounter + 14];
I2CMasterBuffer[17]=2CDataBuffer[I2C_BufferCounter+15];
I2CEngine();
delayMs(0,50);
I2C_TEMP = I2C_TEMP + 32;
I2C_BufferCounter = I2C_BufferCounter + 8;
}
for (I2C_WriteClear = 0; I2C_WriteClear < 20; I2C_WriteClear++)
{
I2CMasterBuffer[I2C_WriteClear] = 0;
}
I2C_TEMP = 0;
for (I2C_ReadCounter = 0; I2C_ReadCounter < 15; I2C_ReadCounter++)
{
I2CWriteLength = 1;
I2CReadLength = 8;
I2CMasterBuffer[0] = I2C_ADDR;
I2CMasterBuffer[1] = I2C_TEMP;
I2CMasterBuffer[2] = I2C_ADDR | RD_BIT;
I2CCmd = I2C_CONFIG;
I2CEngine();
delayMs(0,50);
channelConfiguration[channelData] = I2CMasterBuffer[channelData + 3];
channelData++;
I2C_TEMP = I2C_TEMP + 32;
}
In above code i am trying to write data in multiple pages. So for that I have increment its word address(I2C_TEMP). And I have store data in buffer from which I want to write it to EEPROM and read from it.

Please let me know where I am doing mistake.

Thanks
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top