English
Language : 

M054ZBN Datasheet, PDF (37/68 Pages) List of Unclassifed Manufacturers – 32-BIT MICROCONTROLLER
NuMicro™ M052/M054BN Data Sheet
6.5 I2C Serial Interface Controller (Master/Slave)
6.5.1 Overview
I2C is a two-wire, bi-directional serial bus that provides a simple and efficient method of data
exchange between devices. The I2C standard is a true multi-master bus including collision
detection and arbitration that prevents data corruption if two or more masters attempt to control
the bus simultaneously.
Data is transferred between a Master and a Slave synchronously to SCL on the SDA line on a
byte-by-byte basis. Each data byte is 8 bits long. There is one SCL clock pulse for each data bit
with the MSB being transmitted first. An acknowledge bit follows each transferred byte. Each bit is
sampled during the high period of SCL; therefore, the SDA line may be changed only during the
low period of SCL and must be held stable during the high period of SCL. A transition on the SDA
line while SCL is high is interpreted as a command (START or STOP). Please refer to the Figure
6-13 for more detail I2C BUS Timing.
STOP
START
Repeated
START
STOP
SDA
SCL
tBUF
tLOW
tHD;STA
tHIGH
tHD;DAT
tr
tf
tSU;DAT
tSU;STA
tSU;STO
Figure 6-13 I2C Bus Timing
The device‟s on-chip I2C provides the serial interface that meets the I2C bus standard mode
specification. The I2C port handles byte transfers autonomously. To enable this port, the bit ENS1
in I2CON should be set to '1'. The I2C H/W interfaces to the I2C bus via two pins: SDA (serial data
line) and SCL (serial clock line). Pull up resistor is needed on pin SDA and SCL for I2C operation
as these are open drain pins. When the I/O pins are used as I2C port, user must set the pins
function to I2C in advance.
- 37 -
Publication Release Date: Mar. 19, 2012
Revision V1.01