Philips Semiconductors
The I2C-bus and how to use it
(including specifications)
April 1995 16
11.0 EXTENSIONS TO THE I2C-BUS
SPECIFICATION
The I2C-bus with a data transfer rate of up to 100 kbit/s and 7-bit
addressing has now been in existence for more than ten years with
an unchanged specification. The concept is accepted world-wide as
a de facto standard and hundreds of different types of I2C-bus
compatible ICs are available from Philips and other suppliers. The
I2C-bus specification is now extended with the following two
features:
•A fast-mode which allows a fourfold increase of the bit rate to 0 to
400 kbit/s
•10-bit addressing which allows the use of up to 1024 additional
addresses.
There are two reasons for these extensions to the I2C-bus
specification:
– New applications will need to transfer a larger amount of serial
data and will therefore demand a higher bit rate than 100 kbit/s.
Improved IC manufacturing technology now allows a fourfold
speed increase without increasing the manufacturing cost of the
interface circuitry
– Most of the 112 addresses available with the 7-bit addressing
scheme have been issued more than once. To prevent problems
with the allocation of slave addresses for new devices, it is
desirable to have more address combinations. About a tenfold
increase of the number of available addresses is obtained with the
new 10-bit addressing.
All new devices with an I2C-bus interface are provided with the
fast-mode. Preferably, they should be able to receive and/or transmit
at 400 kbit/s. The minimum requirement is that they can
synchronize with a 400 kbit/s transfer; they can then prolong the
LOW period of the SCL signal to slow down the transfer. Fast-mode
devices must be downward-compatible which means that they must
still be able to communicate with 0 to 100 kbit/s devices in a 0 to
100 kbit/s I2C-bus system.
Obviously, devices with a 0 to 100 kbit/s I2C-bus interface cannot
be incorporated in a fast-mode I2C-bus system because, since they
cannot follow the higher transfer rate, unpredictable states of these
devices would occur.
Slave devices with a fast-mode I2C-bus interface can have a 7-bit or
a 10-bit slave address. However, a 7-bit address is preferred
because it is the cheapest solution in hardware and it results in the
shortest message length. Devices with 7-bit and 10-bit addresses
can be mixed in the same I2C-bus system regardless of whether it is
a 0 to 100 kbit/s standard-mode system or a 0 to 400 kbit/s
fast-mode system. Both existing and future masters can generate
either 7-bit or 10-bit addresses.
12.0 FAST-MODE
In the fast-mode of the I2C-bus, the protocol, format, logic levels and
maximum capacitive load for the SDA and SCL lines quoted in the
previous I2C-bus specification are unchanged. Changes to the
previous I2C-bus specification are:
– The maximum bit rate is increased to 400 kbit/s
– T iming of the serial data (SDA) and serial clock (SCL) signals has
been adapted. There is no need for compatibility with other bus
systems such as CBUS because they cannot operate at the
increased bit rate
– The inputs of fast-mode devices must incorporate spike
suppression and a Schmitt trigger at the SDA and SCL inputs
– The output buf fers of fast-mode devices must incorporate slope
control of the falling edges of the SDA and SCL signals
– If the power supply to a fast-mode device is switched off, the SDA
and SCL I/O pins must be floating so that they don’t obstruct the
bus lines
– The external pull-up devices connected to the bus lines must be
adapted to accommodate the shorter maximum permissible rise
time for the fast-mode I2C-bus. For bus loads up to 200pF, the
pull-up device for each bus line can be a resistor; for bus loads
between 200pF and 400pF, the pull-up device can be a current
source (3mA max.) or a switched resistor circuit as shown in
Figure 37.
13.0 10-BIT ADDRESSING
The 10-bit addressing does not change the format in the I2C-bus
specification. Using 10 bits for addressing exploits the reserved
combination 1111XXX for the first seven bits of the first byte
following a START (S) or repeated START (Sr) condition as
explained in Section 9.1. The 10-bit addressing does not affect the
existing 7-bit addressing. Devices with 7-bit and 10-bit addresses
can be connected to the same I2C-bus, and both 7-bit and 10-bit
addressing can be used in a standard-mode system (up to
100 kbit/s) or a fast-mode system (up to 400 kbit/s).
Although there are eight possible combinations of the reserved
address bits 1111XXX, only the four combinations 11110XX are used
for 10-bit addressing. The remaining four combinations 1111 1XX are
reserved for future I2C-bus enhancements.
13.1 Definition of bits in the first two bytes
The 10-bit slave address is formed from the first two bytes following
a START condition (S) or a repeated START condition (Sr).
The first seven bits of the first byte are the combination 11110XX of
which the last two bits (XX) are the two most-significant bits (MSBs)
of the 10-bit address; the eighth bit of the first byte is the R/W bit
that determines the direction of the message. A ‘zero’ in the least
significant position of the first byte means that the master will write
information to a selected slave. A ‘one’ in this position means that
the master will read information from the slave.
If the R/W bit is ‘zero’, then the second byte contains the remaining
8 bits (XXXXXXXX) of the 10-bit address. If the R/W bit is ‘one’, then
the next byte contains data transmitted from a slave to a master.