ADuC7122
Rev. 0 | Page 60 of 96
Master Mode
In master mode, the I2CADR0 register is programmed with the
I2C address of the device.
In 7-bit address mode, I2CADR0[7:1] are set to the device
address. I2CADR0[0] is the read/write bit.
In 10-bit address mode, the 10-bit address is created as follows:
I2CADR0[7:3] must be set to 11110b.
I2CADR0[2:1] = Address Bits[9:8].
I2CADR1[7:0] = Address Bits[7:0].
I2CADR0[0] is the read/write bit.
I2C REGISTERS
The I2C peripheral interface consists of a number of MMRs.
These are described in the following section.
I2C Master Registers
I2C Master Control Register
Name:
I2C0MCTL, I2C1MCTL
Address:
0xFFFF0880, 0xFFFF0900
Default Value:
0x0000, 0x0000
Access:
Read/write
Function:
This 16-bit MMR configures I2C peripheral in
master mode.
Table 101. I2CxMCTL MMR Bit Designations
Bit
Name
Description
15:9
Reserved. These bits are reserved and should not be written to.
8
I2CMCENI
I2C transmission complete interrupt enable bit.
Set this bit to enable an interrupt on detecting a stop condition on the I2C bus.
Clear this bit to disable the interrupt source.
7
I2CNACKENI
I2C NACK received interrupt enable bit.
Set this bit to enable interrupts when the I2C master receives a NACK.
Clear this bit to disable the interrupt source.
6
I2CALENI
I2C arbitration lost interrupt enable bit.
Set this bit to enable interrupts when the I2C master has lost in trying to gain control of the I2C bus.
Clear this bit to disable the interrupt source.
5
I2CMTENI
I2C transmit interrupt enable bit.
Set this bit to enable interrupts when the I2C master has transmitted a byte.
Clear this bit to disable the interrupt source.
4
I2CMRENI
I2C receive interrupt enable bit.
Set this bit to enable interrupts when the I2C master receives data.
Cleared by user to disable interrupts when the I2C master is receiving data.
3
I2CMSEN
I2C master SCL stretch enable bit.
Set this bit to 1 to enable clock stretching. When SCL is low, setting this bit forces the device to hold SCL low until
I2CMSEN is cleared. If SCL is high, setting this bit forces the device to hold SCL low after the next falling edge.
Clear this bit to disable clock stretching.
2
I2CILEN
I2C internal loopback enable.
Set this bit to enable loopback test mode. In this mode, the SCL and SDA signals are connected internally to their
respective input signals.
Cleared by user to disable loopback mode.
1
I2CBD
I2C master backoff disable bit.
Set this bit to allow the device to compete for control of the bus even if another device is currently driving a start
condition.
Clear this bit to back off (wait) until the I2C bus becomes free.
0
I2CMEN
I2C master enable bit.
Set by user to enable I2C master mode.
Cleared disable I2C master mode.