
Mini57
Apr. 06, 2017
Page 387 of 475
Rev.1.00
MINI5
7
S
E
RI
E
S
TECH
NIC
A
L R
E
F
E
RE
N
CE
MA
N
UA
L
6.14.5.4 Slave Address Transfer
After a (repeated) start condition, the master sends a slave address to identify the target device of
the communication. The start address can comprise one or two address bytes (for 7-bit or for 10-
bit addressing schemes). After an address byte, a slave sensitive to the transmitted address has
to acknowledge the reception.
Therefore, the slave’s address can be programmed in the device, where it is compared to the
received address. In case of a match, the slave answers with an acknowledge (SDA = 0). Slaves
that are not targeted answer with a non-acknowledge (SDA = 1). In addition to the match of the
programmed address, another address byte value has to be answered with an acknowledge if the
slave is capable to handle the corresponding requests. The address byte 00H indicates a general
call address that can be acknowledged.
To allow selective acknowledges for the different values of the address byte(s), the following
control mechanism is implemented:
If the GCFUNC bit (UI2C_PROTCTL [0]) is set the I
2
C port hardware will respond to
General Call address (00H). Clear GC bit to disable general call function.
The I
2
C port is equipped with one device address registers, UI2C_DEVADDR0. In 7-bit
address mode, the first 7 bits of a received first address byte are compared to the
programmed slave address (UI2C_DEVADDR0 [6:0]). If these bits match, the slave sends
an acknowledge.
In addition, if the slave address is programmed to 1111 0XXB, the XX bits are compared to
the bits UI2C_DEVADDR0 [9:8] to check for address match and also sends an
acknowledge when ADDR10EN (UI2C_PROTCTL [4]) is set. The slave waits for a second
address byte compares it with UI2C_DEVADDR0 [7:0] and sends an acknowledge
accordingly to cover the 10 bit addressing mode. The user has to consider about reserved
addresses (refer to I
2
C specification for more detailed description). Only the address 1111
0XXB is supported. Under each of these conditions, bit SLASEL (UI2C_PROTSTS [14]) will
be set when the addressing delivered a match. This SLASEL (UI2C_PROTSTS [14]) bit is
cleared automatically by a (repeated) start or stop condition.
The I
2
C port is equipped multiple address recognition with one address mask registers
I2C_ADDRMSKn (n = 0). When the bit in the address mask register is set to 1, it means the
received corresponding address bit is "Don’t care". If the bit is set to 0, it means the
received corresponding register bit should be exactly the same as address register.
6.14.5.5 Data Transfer
When a slave receives a correct address with an R/W bit, the data will follow R/W bit specified to
transfer. Each transferred byte is followed by an acknowledge bit on the 9th SCL clock cycle. If
the slave signals a Not Acknowledge (NACK), the master can generate a STOP signal to abort
the data transfer or generate a Repeated START signal and start a new transfer cycle.