Step 1. Do you have the Philips document that defines I2C? If not get it here. http://www.semiconductors.philips.com/acrobat/literature/9398/39340011.pdf >The SCL (clock) is low, till the PIC transmits, where I see >the nine rising edge clocks. The SDA goes low before the >first clock, indicating a START condition? The clock should not be low between messages. You are looking at something that is incorrect. I suspect your code is not doing the right things. Get the Microchip application note AN735 and copy the code. This works correctly. >What exactly controls that, in other words I need to send out >address, then command then data, but it would appear that >the start bit is sent each time with each packet. It is not a start bit as such. Look at the Philips document to see how to detect when the bus goes from an idle state to the start state. >I don't see anything that explicitly says...this bit set, will send out a start condition. You can get all this from AN735 >Also, using 7 bit addressing, and the address is placed in >the SSPBUF where it will be streamed out, do I need to >explicitly define the R/W bit as the LSB of the address >data? Or is this done internally in the MSSP hardware. Again check AN735 to see how it is implemented. -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body