Jump to main content
29.2.4.3.4 Typical Receive Sequence
- The Host generates a Start condition by setting the SEN
bit.
- SSPxIF is set by hardware on completion of the Start.
- SSPxIF is cleared by software.
- Software 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 value from the client device and writes it into the ACKSTAT bit.
- The MSSP module generates an interrupt at the end of the ninth clock cycle by setting the SSPxIF bit.
- Software 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.
- Host clears SSPxIF and reads the received byte from SSPxBUF,
which clears BF.
- Host clears the ACKDT bit and initiates the ACK sequence by setting the ACKEN bit.
- Host’s ACK is
clocked out to the client and SSPxIF is set.
- User clears SSPxIF.
- Steps 8-13 are repeated for each received byte from the
client.
- Host sends a NACK or Stop to end communication.
Figure 29-31. I2C
Host Mode Waveform (Reception, 7-Bit Address)
Figure 29-32. I2C Host Mode Waveform
(Reception, 10-Bit Address)