PDA

View Full Version : 24lc512: i2cread don't work!



LUCAS1983
- 18th November 2005, 16:15
I have the 18f458 20MHz and the 24lc512. I put all the pull-up resitor.But, as you can see in the picture, if I read the eeprom the result is always zero.where is the mystake?
excuse for my English! thanks very much
luca from italy

LUCAS1983
- 18th November 2005, 17:33
the i2cwrite works very very good!!!(I can program but not read the eeprom)
if I use the i2cread to read the pcf8593 memory (time/date) it works...why it doesn't work with the eeproms?
Please help me.it is important...

BigWumpus
- 21st November 2005, 20:29
Please read the documentation !

I think, you need to use WORD-variables for the adress while using such huge EEPROMs !

;-)

I use them too, and i write and read with I2CREAD/I2CWRITE... It's not easy, but it works !

LUCAS1983
- 4th December 2005, 17:34
thanks Wumpus for the help.
But I use a WORD-variables for the adress. If you see the picture the variable B0 is defined as WORD.but it doesn't work!

LUCAS1983
- 4th December 2005, 17:39
I try to change the 4.7K pull-up resistor with a 10K pull-up resistor (I put that on the SCL or on the SDA or on both)... but if I read the EEprom the result is always 0.

Darrel Taylor
- 4th December 2005, 19:08
Do you have Pins 1 & 2 (A0 & A1) tied to ground?
Is Pin 3 (A2) tied to VDD?
Is Pin 7 (WP) tied to ground?

Do not leave any of those pins floating.
<br>

LUCAS1983
- 4th December 2005, 19:48
i have pin1 and pin2 to and pin3 and pin7 to gnd.
why you say that i should have pin3 to VDD? the address is:
$A0=%10100000 the data sheet says (show attach file) that I have pin1,2,3 to GND

Darrel Taylor
- 4th December 2005, 20:25
Sorry, I was looking at the 24LC515 datasheet instead of the 512.

You should be ok wired that way.
<br>

Darrel Taylor
- 8th December 2005, 03:51
Luca,

After looking at the Image in you're first post for a while longer, I think I found the problem. I hope.

Something I missed the first time was that you're using an 18F458. That chip has Comparators multiplexed with the PORTD pins, and they default to analog mode. You can kind of see the results in the Variables window of the image. Both SDA and SCL are 0, instead of the 1 that they should be since I2C idles HIGH.

You can just add a ...

CMCON = 7

and you should be smiling again. :)

Also, the 24LC512 is a 400khz device, so I2C_SLOW isn't required.
<br>

LUCAS1983
- 18th December 2005, 12:13
thanks a lot Darrel now the i2cread works very fine...thanks thanks thanks luca