Datasheet

Data Sheet ADuC7019/20/21/22/24/25/26/27/28/29
Rev. F | Page 77 of 104
Table 129. I2C0SSTA MMR Bit Descriptions
Bit Value Description
31:15 Reserved. These bits should be written as 0.
14 Start decode bit. Set by hardware if the device
receives a valid start plus matching address.
Cleared by an I
2
C stop condition or an I
2
C
general call reset.
13 Repeated start decode bit. Set by hardware
if the device receives a valid repeated start and
matching address. Cleared by an I
2
C stop condi-
tion, a read of the I2CSSTA register, or an I
2
C
general call reset.
12:11 ID decode bits.
00 Received Address Matched ID Register 0.
01 Received Address Matched ID Register 1.
10 Received Address Matched ID Register 2.
11 Received Address Matched ID Register 3.
10 Stop after start and matching address interrupt.
Set by hardware if the slave device receives an
I
2
C stop condition after a previous I
2
C start
condition and matching address. Cleared by a
read of the I2C0SSTA register.
9:8
General call ID.
00 No general call.
01 General call reset and program address.
10 General call program address.
11 General call matching alternative ID.
7 General call interrupt. Set if the slave device
receives a general call of any type. Cleared by
setting Bit 8 of the I2CxCFG register. If it is a
general call reset, all registers are at their
default values. If it is a hardware general call,
the Rx FIFO holds the second byte of the
general call. This is similar to the I2C0ALT
register (unless it is a general call to reprogram
the device address). For more details, see the I
2
C
bus specification, Version 2.1, January 2000.
6 Slave busy. Set automatically if the slave is busy.
Cleared automatically.
5 No ACK. Set if master asking for data and no
data is available. Cleared automatically by
reading the I2C0SSTA register.
4 Slave receive FIFO overflow. Set automatically if
the slave receive FIFO is overflowing. Cleared
automatically by reading the I2C0SSTA register.
3 Slave receive IRQ. Set after receiving data.
Cleared automatically by reading the I2C0SRX
register or flushing the FIFO.
2 Slave transmit IRQ. Set at the end of a trans-
mission. Cleared automatically by writing to the
I2C0STX register.
1 Slave transmit FIFO underflow. Set automatically if
the slave transmit FIFO is underflowing. Cleared
automatically by writing to the I2C0SSTA register.
0 Slave transmit FIFO not full. Set automatically if
the slave transmit FIFO is not full. Cleared auto-
matically by writing twice to the I2C0STX register.
Table 130. I2CxSRX Registers
Name Address Default Value Access
I2C0SRX 0xFFFF0808 0x00 R
I2C1SRX 0xFFFF0908 0x00 R
I2CxSRX are receive registers for the slave channel.
Table 131. I2CxSTX Registers
Name Address Default Value Access
I2C0STX 0xFFFF080C 0x00 W
I2C1STX 0xFFFF090C 0x00 W
I2CxSTX are transmit registers for the slave channel.
Table 132. I2CxMRX Registers
Name Address Default Value Access
I2C0MRX 0xFFFF0810 0x00 R
I2C1MRX 0xFFFF0910 0x00 R
I2CxMRX are receive registers for the master channel.
Table 133. I2CxMTX Registers
Name Address Default Value Access
I2C0MTX 0xFFFF0814 0x00 W
I2C1MTX 0xFFFF0914 0x00 W
I2CxMTX are transmit registers for the master channel.
Table 134. I2CxCNT Registers
Name Address Default Value Access
I2C0CNT 0xFFFF0818 0x00 R/W
I2C1CNT 0xFFFF0918 0x00 R/W
I2CxCNT are 3-bit, master receive, data count registers. If a master
read transfer sequence is initiated, the I2CxCNT registers denote
the number of bytes (−1) to be read from the slave device. By
default, this counter is 0, which corresponds to the one byte
expected.
Table 135. I2CxADR Registers
Name Address Default Value Access
I2C0ADR 0xFFFF081C 0x00 R/W
I2C1ADR 0xFFFF091C 0x00 R/W
I2CxADR are master address byte registers. The I2CxADR
value is the device address that the master wants to commun-
icate with. It automatically transmits at the start of a master
transfer sequence if there is no valid data in the I2CxMTX
register when the master enable bit is set.
Table 136. I2CxBYTE Registers
Name Address Default Value Access
I2C0BYTE 0xFFFF0824 0x00 R/W
I2C1BYTE 0xFFFF0924 0x00 R/W
I2CxBYTE are broadcast byte registers. Data written to these
registers does not go through the TxFIFO. This data is transmitted
at the start of a transfer sequence before the address. After the
byte is transmitted and acknowledged, the I
2
C expects another
byte written in I2CxBYTE or an address written to the address
register.