Hi If someone could help me here, I'm trying to get I2C up and running using a 24LC256 and a 16F877, I've put some code together mainly chopped bits of other peoples code! However it doesn't work, when I read the data back from the EEPROM all I get is 1's, now in the data sheet when reading you are meant to issue a start command send the control byte address high and low byte and then issue another start. It won't let me do this (it gets stuck) so I issue a restart instead however this doesn't seem to work. Basically Im asking what is the difference between these two different commands!? Thanks for any help Ed Cooper -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads