User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 604
UG585 (v1.11) September 27, 2016
Chapter 20
I2C Controller
20.1 Introduction
This I2C module is a bus controller that can function as a master or a slave in a multi-master design.
It supports an extremely wide clock frequency range from DC (almost) up to 400 Kb/s.
In master mode, a transfer can only be initiated by the processor writing the slave address into the
I2C address register. The processor is notified of any available received data by a data interrupt or a
transfer complete interrupt. If the HOLD bit is set, the I2C interface holds the SCL line Low after the
data is transmitted to support slow processor service. The master can be programmed to use both
normal (7-bit) addressing and extended (10-bit) addressing modes.
In slave monitor mode, the I2C interface is set up as a master and continues to attempt a transfer to
a particular slave until the slave device responds with an ACK.
The HOLD bit can be set to prevent the master from continuing with the transfer, preventing an
overflow condition in the slave.
A common feature between master mode and slave mode is the timeout (TO) interrupt flag. If at any
point the SCL line is held Low by the master or the accessed slave for more than the period specified
in the Timeout register, a timeout (TO) interrupt is generated to avoid stall conditions.
20.1.1 Features
The PS supports two I2C devices with these key features:
I2C bus specification version 2
Supports 16-byte FIFO
Programmable normal and fast bus data rates
•Master mode
°
Write transfer
°
Read transfer
°
Extended address support
°
Support HOLD for slow processor service
°
Supports TO interrupt flag to avoid stall condition
•Slave monitor mode