![Infineon XDPP1100 Technical Reference Manual Download Page 531](http://html1.mh-extra.com/html/infineon/xdpp1100/xdpp1100_technical-reference-manual_2055193531.webp)
User Manual 531 of 562 V 1.0
2021-08-25
XDPP1100 technical reference manual
Digital power controller
Central processing unit subsystem
Table 113
Master transmit status after a repeated START
Code
MI2CV State
Microprocessor response
Next MI2CV action
28h
Data byte transmitted, ACK
received
Write byte to DATA, clear IFLG
Or set STA, clear IFLG
Or set STP, clear IFLG
Or set STA and STP, clear
IFLG
Transmit data byte, receive
ACK
Transmit reeated START
Transmit STOP
Transmit START then STOP
30h
Data byte transmitted, ACK
not received
Same as for code 28h
Same as for code 28h
38h
Arbitration lost
Clear IFLG
Or set STA, clear IFLG
Return to idle
Transmit START when bus
free
When all bytes have been transmitted, the STP bit should be set by writing a
“
1
”
to this bit in the CNTR register.
The I
2
C will then transmit a STOP condition, clear the STP bit and return to idle state (status code F8h).
15.11.1.3
Master receive
In master receive mode, the I
2
C will receive a number of bytes from a slave transmitter.
After the START condition has been transmitted, the IFLG bit will be set and status code 08h will be in the STAT
register. The DATA register should now be loaded with the slave address (or the first part of a 10-bit slave
address), with the LSB set to
“
1
”
to signify a read. The IFLG bit should now be cleared to
“
0
”
to prompt the
transfer to continue.
When the 7-bit slave address (or the first part of a 10-bit address) and the read bit have been transmitted, the
IFLG bit will be set again. A number of status codes are possible in the STAT register (
Table 114
Master receive status after address and read bit transmission
Code
MI2CV State
Microprocessor response
Next MI2CV action
38h
Arbitration lost
Clear IFLG
Or set STA, clear IFLG
Return to idle
Transmit START when bus
free
40h
A Read bit
transmitted, ACK received
Clear IFLG, AAK=0
Or clear IFLG, AAK=1
Receive data byte, transmit
not ACK
Receive data byte, transmit
ACK
48h
A Read bit
transmitted, ACK not
received
Set STA, clear IFLG
Or set STP, clear IFLG
Transmit repeated START
Transmit STOP
Transmit STOP then START