
95
L2166_A
I2C Register Denitions
I2C Slave Module Software Interface
Bt2166
Graphics/Video Controller
I2C Slave Control
Read Register
name:
GRP_I2C_SCTRLR
index:
4Ch, read only
size:
8 bits
The GRP_I2C_SCTRLR register supplies status information about the
progress/completion of any I2C bus transaction. A break must be enabled before
the I2C slave can supply status information. The bit contents for the
GRP_I2C_SCTRLR register are shown in Table 70. Table 71 provides bit values
and meanings. Table 72 gives an example of possible settings of the
GRP_I2C_SCTRLR bits.
Table 70. I2C Slave Read Control Register GRP_I2C_SCTRLR[7:0] Bit Descriptions
(1 of 2)
Bit
Function
Detail
7
DONE
The DONE bit is set to “1” whenever the I2C slave module has nished its current operation
and is ready for another request from the system software. It is “0” whenever the I2C slave
module is busy servicing a request. This bit can be used by the system software to determine
whether the I2C slave module was the source of an interrupt (interrupts enabled) or to check
whether the I2C slave has nished its current request (software polling, interrupts disabled).
This bit is used in the generation of the I2C interrupt (it is ANDed with the INTE interrupt
enable bit) but it is set independently of the value of INTE (interrupt enable). If more than one
break request is included in the write to the GRP_I2C_SCTRLW register, the DONE bit will
be set when a break conditions occurs. For each of the break conditions, the DONE bit will
be set under the following conditions.
BSTA = 1: (Break on start) The DONE bit will be set after the start token is received.
BRCV = 1: (Break on receive) The DONE bit will be set after 8 data bits are received. This
request facilitates the system software dynamically, determining the value of the ACK bit
to be transmitted based on the data received.
BACK = 1: (Break on acknowledge) The DONE bit will be set after the acknowledge bit has
been transmitted. This request facilitates the system software predetermining the value of
the ACK bit before any data has been received.
BSTO = 1: (Break on stop) The DONE bit will be set after the stop token is received.
Finally, the DONE bit will also be set if the I2C bus arbitration is lost.
0 = module is still busy with last request
1 = nished last request
6
LOST
Arbitration lost. The LOST bit is set to 1 whenever the I2C slave module loses the I2C arbitra-
tion process. Note, since this module is only capable of I2C receptions, it can only lose the
arbitration process during the transmission of the acknowledge bit
0 = arbitration not lost
1 = arbitration lost
5
STOP
Stop token received. The STOP bit indicates that a stop transaction was received on the I2C
bus. This bit is cleared whenever the GRP_I2C_SCTRLW register is written. Therefore if this
bit is set, a stop transaction was received since the last GRP_I2C_SCTRLR write.
0 = no stop token received since last read
1 = stop token received since last read