> I wanted to know if someone has successfully used the PIC 16C6x in I2C mode. > Bit BF is supposed to go low only when I read SSPBUF, but it keeps going > low by itself when the clock rises on the ninth pulse. Can someone help me > here? I seem to be initializing all the resisters right. You did not write what you are actually doing at the time of this event, and what you are doing it with (emulator, simulator, controller). From your explanation it sounds like a transmission. If it is, BF is doing what it's supposed to do. Since you're having a problem with this, I assume you are receiving data. If you are receiving, BF should be zero while you are receiving the current byte. If this is not the case, the problem is most likely somewhere else. If you're using the slave-mode, you must make sure the transmission before this byte is really doing what it's supposed to. This is possible to check by reading the status-bit for the SSP-module. The UA and D/A flag is typical sources of this kind of behaviour. Also, if you're using an emulator, make sure the SSPBUF register is not present in any watch-window (just to make sure that it is never read before your code wants to). Regards, Dag Bakken