System
Interrupt
Handler
Local
Host
System
DMA
I2C Pads
Master/Slave
Control
Logic
OCP
IF
Registers
Block
I2CIF
Interrupt Request Line
DMA Request Lines (Rx/Tx)
I2C
FIFOs
Clock/Reset
Logic
Test Logic
I2C_SCL
I2C_SDA
V
DD
Pullup
Resistors
I2C Device
(Master/
Slave)
I2C Device
(Master/
Slave)
Peripheral
Functional Description
21.3 Functional Description
21.3.1 Functional Block Diagram
shows an example of a system with multiple I2C compatible devices in which the I2C serial
ports are all connected together for a two-way transfer from one device to other devices.
Figure 21-3. I2C Functional Block Diagram
The I2C peripheral consists of the following primary blocks:
•
A serial interface: one data pin (I2C_SDA) and one clock pin (I2C_SCL).
•
Data registers to temporarily hold receive data and transmit data traveling between the I2C_SDA pin
and the CPU or the DMA controller.
•
Control and status registers
•
A peripheral data bus interface to enable the CPU and the DMA controller to access the I2C peripheral
registers.
•
A clock synchronizer to synchronize the I2C input clock (from the processor clock generator) and the
clock on the I2C_SCL pin, and to synchronize data transfers with masters of different clock speeds.
•
A prescaler to divide down the input clock that is driven to the I2C peripheral
•
A noise filter on each of the two pins, I2C_SDA and I2C_SCL
•
An arbitrator to handle arbitration between the I2C peripheral (when it is a master) and another master
•
Interrupt generation logic, so that an interrupt can be sent to the CPU
•
DMA event generation logic to send an interrupt to the CPU upon reception and data transmission of
data.
21.3.2 I2C Master/Slave Contoller Signals
Data is communicated to devices interfacing with the I2C via the serial data line (SDA) and the serial clock
line (SCL). These two wires can carry information between a device and others connected to the I2C bus.
Both SDA and SCL are bi-directional pins. They must be connected to a positive supply voltage via a pull-
up resistor. When the bus is free, both pins are high. The driver of these two pins has an open drain to
perform the required wired-AND function.
An example of multiple I2C modules that are connected for a two-way transfer from one device to other
devices is shown in
3702
I2C
SPRUH73H – October 2011 – Revised April 2013
Copyright © 2011–2013, Texas Instruments Incorporated