Hello Ivan and Gang, I too have been fighting slave I2C. I am hearing through the grapevive that Microchip is quietly admitting to a problem with the SSP for I2C ussage on the mid range parts, but I am unsure about extent, details, and fixes. Below is a copy of the problem I am now fighting. ***following is a cut and paste of an outgoing email*** I am finally getting closer on the Slave I2C problems. I had to abandon the hardware approach and go software. The only problem I see occuring now, are the SDA and SCL lines are not being released after the following routines. Any ideas? (I think the problem is on the slave side). MASTER (16C67 software only) SLAVE (16C62A software on harware port) --------------------------------------------------------------------------- ---------------- #use i2c(master,sda=sda,scl=scl) #use i2c(slave,sda=sda, scl=scl, address=0x80, force_sw) i2c_start(); i2c_write(0x80); --> address=i2c_read(); i2c_write(byte1); --> byte1=i2c_read(); i2c_write(byte2); --> byte2=i2c_read(); i2c_write(byte3); --> byte3=i2c_read(); i2c_write(byte4); --> byte4=i2c_read(); i2c_start(); i2c_write(0x81); --> address=i2c_read(); byteA=i2c_read(); <-- i2c_write(byteA); byteB=i2c_read(); <-- i2c_write(byteB); byteC=i2c_read(); <-- i2c_write(byteC); byteD=i2c_read(0); <-- i2c_write(byteD); i2c_stop(); (SDA and SCL stay low at this point) - why are SDA and SCL staying low after pass through above code? - do I have read(0)'s in the right places? - since software only, do I really need to set the R/W bit? - do I need to place delays somewhere? Thank You, Bob Carter, design engineer Wildlife Materials, Inc. 1031 Autumn Ridge Road Carbondale, IL 62901, USA voice (618) 549-6330 (ext. 225) fax (618) 457-3340 email wolftech@midwest.net www www.wildlifematerials.com