![](http://datasheet.mmic.net.cn/110000/ML674001TC_datasheet_3507949/ML674001TC_341.png)
ML674001 Seies/ML675001 Series User’s Manual
Chapter 20
I2C
20-17
20.3.7
Start byte transmit operation
There are some I2C devices that require a unique start sequence in order to work properly. This sequence can be
supported in this I2C block by using the special start byte generation technique. In this LSI, the transmission of
the start byte is accomplished by setting the START bit (bit 4 of the I2CCON register) to "1."
To transfer 1-byte of data to a slave device that requires the start byte:
The I2CSAD register is set to 00000001 (start byte pattern).
The I2CCON register is set to XXX1X110.
The following series of operation is automatically performed
when both the STCM bit (bit 2 of the I2CCON register) and the START bit (bit 4 of the I2CCON register)
are set to "1": Transmission of the start sequence (to attain bus access), and transmission of the start byte
pattern specified to the I2CSAD register.
Step
at the time of 1-byte transmit operation is performed.
Step
at the time of 1-byte transmit operation is performed.
The I2CCON register is set to XXX0X101.
The following series of operations is automatically performed
when the I2CEN bit (bit 0 of the I2CCON register) and the STCM bit (bit 2 of the I2CCON register) are set
to "1": Transmission of the restart sequence, transmission of the slave address and the transfer direction
specified to the I2CSAD register, confirmation of an acknowledge from the slave device for the data
transmitted, transmission of the transmit data specified to the I2CDR register, and confirmation of an
acknowledge from the slave device for the data transmitted.
Also, when the I2COC bit (bit 1 of the
I2CCON register) is set to "0," the stop sequence is successively transmitted (the bus is released) and
communication is then finished.
At this point, the I2CIR bit is set to "1," indicating that the transmission
of 1-byte of data has been finished.
If acknowledges for the address and data transmitted have not been
returned normally, both the I2CAAK and I2CDAK bits are set to "1" upon completion of transmission.
I2CSAD = 00000001b
I2CCON = xxx1x110b
I2CSAD
Flag
Register
settings
I2CSAD = xxxxxxx0b
I2CDR = xxxxxxxxb
I2CCON = xxx0x101b
I2CIR = 1
(I2CDAK = 0)
(I2CAAK = 0)
Transmission complete
I2CIR = 1
I2CSAD
I2CDR
S B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
A B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
A P
S S
r
B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0