I can't comment specifically on the 16F88 (as I've not tried it), but historically the I2C hardware in PIC's has been very troublesome, with the application notes not working!.
There seems very little reason to do master mode in hardware, slave mode is a different matter, but master mode works perfectly just in software.
If you want to play with the hardware, I suggest you have a look at the PICList.
i would have to kind of disagree, if you persivere [sp?] u will get very stable comms going, its just peachy starting out. For small tasks software is fine, but if u plan on using a lot of i2c comms then going hardware will be stable in the long run.
Mainly due to the SMBUS version of i2c, which has timeouts. If your software has interrupts then you could easily get out of sync and lose data comms with software programming.
just to get the idea clearly from thsi discussion...
for my case...my pic16f88 communicate with24l512 through i2c (ssp), there is no problem to use hardware routine using master mode ...and not for slave mode..
meaning that my pic will be master and eeprom is a slave..am i correct?..
or...i just can use software routine to create the same thing...
pls correct me..
i have another question related to this eeprom...how do i know that my eeprom full..if full, how about the previous data?...will be overwrite or eeprom will give a signal to inform pic?
Unlike the 16F877 (and many 18F' devices), the built-in 16F88 I2C peripheral supports 'slave' mode nicely but requires implementing software 'master' mode routines... Please check out the 16F88 Data Sheet carefully...
I also need to implement I2C 'master' mode software for the 16F88 sometime soon and I really appreciate Nigel's great resources/examples... Thank you Nigel...
just to get the idea clearly from thsi discussion...
for my case...my pic16f88 communicate with24l512 through i2c (ssp), there is no problem to use hardware routine using master mode ...and not for slave mode..
meaning that my pic will be master and eeprom is a slave..am i correct?..
Yes you can, the routines in my tutorials do exactly what you want!.
pls correct me..
i have another question related to this eeprom...how do i know that my eeprom full..if full, how about the previous data?...will be overwrite or eeprom will give a signal to inform pic?
It's up to you to keep a count of the current address, and act accordingly, depending how you want to handle the EEPROM being full. So you don't lose the current address if power should go off, it's a good idea to store the address in the EEPROM itself, usually in the first memory locations. Or if the PIC used has internal EEPROM, you can store it there instead.