The user generates a Start condition by setting the SEN bit.
SSPxIF is set by hardware on completion of the Start.
SSPxIF is cleared by software.
The user writes SSPxBUF with the client address to transmit and
the R/W
bit set.
Address is shifted out the SDA pin until all eight bits are transmitted. Transmission begins as soon as SSPxBUF is written to.
The MSSP module shifts in the ACK bit from the client device and writes its value into the ACKSTAT
bit.
The MSSP module generates an interrupt at the end of the ninth clock cycle by setting the SSPxIF bit.
The user sets the RCEN bit and
the host clocks in a byte from the client.
After the eighth falling edge of SCL, SSPxIF and BF are set.
The host clears SSPxIF and reads the received byte from SSPUF
which clears BF.
The host sets the ACK value to be sent to client in the ACKDT bit and
initiates the ACK by setting the ACKEN
bit.
Host’s ACK is
clocked out to the client and SSPxIF is set.
The user clears SSPxIF.
Steps 8-13 are repeated for each received byte from the
client.
The host sends a not ACK or Stop to end communication.
The online versions of the documents are provided as a courtesy. Verify all content and data in the device’s PDF documentation found on the device product page.