2.3.5 Master Mode 10-Bit Transmit Sequence
The following steps highlight a typical 10-bit transmit sequence:
- Software sets the SEN bit, master hardware generates a Start condition.
- Upon the completion of the Start condition, hardware sets SSPxIF.
- Software clears the SSPxIF bit.
- Software loads SSPxBUF with the
10-bit high address byte and R/W bit. In 10-bit Master
Transmit mode, the R/W bit value is ‘
0’. - The high address byte is shifted out on the SDA line until all eight bits have been transmitted.
- Master hardware clocks in the ACK value from the slave and copies the value into the ACKSTAT bit.
- Master hardware sets the SSPxIF bit. If the SSPxIE bit is also set, an interrupt is generated. SSPxIF must be cleared by software.
- Software loads SSPxBUF with the 10-bit low address byte.
- The low address byte is shifted out on the SDA line until all eight bits have been transmitted.
- Master hardware clocks in the ACK value from the slave and copies the value into the ACKSTAT bit.
- Master hardware sets the SSPxIF bit. If the SSPxIE bit is also set, an interrupt is generated. SSPxIF must be cleared by software.
- Software loads SSPxBUF with a data byte.
- Data is shifted out until all eight bits have been transmitted.
- Master hardware clocks in the ACK value from the slave and copies the value into the ACKSTAT bit.
- On the ninth falling clock edge, SSPxIF is set by hardware. If SSPxIE is also set, an interrupt is generated. SSPxIF must be cleared in software.
- Repeat steps 12 - 15 until all data has been transmitted.
- Software generates a Stop or Restart condition by setting the PEN or RSEN bits, respectively. Once the Stop/Restart condition is complete, hardware sets SSPxIF.
