I2C Bus Manual
I2C Bus Manual
INTEGRATED CIRCUITS
APPLICATION NOTE
AN10216-01
I2C MANUAL
Abstract – The I2C Manual provides a broad overview of the various serial buses,
why the I2C bus should be considered, technical detail of the I2C bus and how it
works, previous limitations/solutions, comparison to the SMBus, Intelligent Platform
Management Interface implementations, review of the different I2C devices that are
available and patent/royalty information. The I2C Manual was presented during the 3
hour TecForum at DesignCon 2003 in San Jose, CA on 27 January 2003.
1
AN10216-01 I2C Manual
TABLE OF CONTENTS
OVERVIEW .......................................................................................................................................................................4
DESCRIPTION .....................................................................................................................................................................4
SERIAL BUS OVERVIEW...............................................................................................................................................4
UART OVERVIEW.............................................................................................................................................................6
SPI OVERVIEW..................................................................................................................................................................6
CAN OVERVIEW ...............................................................................................................................................................7
USB OVERVIEW................................................................................................................................................................9
1394 OVERVIEW .............................................................................................................................................................10
I2C OVERVIEW ................................................................................................................................................................11
SERIAL BUS COMPARISON SUMMARY .............................................................................................................................12
I2C THEORY OF OPERATION ....................................................................................................................................13
I2C BUS TERMINOLOGY...................................................................................................................................................13
START AND STOP CONDITIONS ....................................................................................................................................14
HARDWARE CONFIGURATION ...............................................................................................................................14
BUS COMMUNICATION.............................................................................................................................................14
TERMINOLOGY FOR BUS TRANSFER ................................................................................................................................15
I2C DESIGNER BENEFITS .................................................................................................................................................17
I2C MANUFACTURERS BENEFITS .....................................................................................................................................17
OVERCOMING PREVIOUS LIMITATIONS .............................................................................................................18
ADDRESS CONFLICTS ......................................................................................................................................................18
CAPACITIVE LOADING > 400 PF (ISOLATION) .................................................................................................................19
VOLTAGE LEVEL TRANSLATION .....................................................................................................................................20
INCREASE I2C BUS RELIABILITY (SLAVE DEVICES).........................................................................................................21
INCREASING I2C BUS RELIABILITY (MASTER DEVICES)..................................................................................................22
CAPACITIVE LOADING > 400 PF (BUFFER)......................................................................................................................22
LIVE INSERTION INTO THE I2C BUS .................................................................................................................................24
LONG I2C BUS LENGTHS .................................................................................................................................................25
PARALLEL TO I2C BUS CONTROLLER ..............................................................................................................................25
DEVELOPMENT TOOLS AND EVALUATION BOARD OVERVIEW..................................................................26
PURPOSE OF THE DEVELOPMENT TOOL AND I2C EVALUATION BOARD ...........................................................................26
WIN-I2CNT SCREEN EXAMPLES.....................................................................................................................................28
HOW TO ORDER THE I2C 2002-1A EVALUATION KIT .....................................................................................................31
COMPARISON OF I2C WITH SMBUS ........................................................................................................................31
I2C/SMBUS COMPLIANCY ...............................................................................................................................................31
DIFFERENCES SMBUS 1.0 AND SMBUS 2.0 ....................................................................................................................32
INTELLIGENT PLATFORM MANAGEMENT INTERFACE (IPMI) ....................................................................32
INTEL SERVER MANAGEMENT.........................................................................................................................................33
PICMG ...........................................................................................................................................................................33
VMEBUS .........................................................................................................................................................................34
I2C DEVICE OVERVIEW ..............................................................................................................................................35
TV RECEPTION................................................................................................................................................................36
RADIO RECEPTION ..........................................................................................................................................................36
2
AN10216-01 I2C Manual
AUDIO PROCESSING ........................................................................................................................................................37
DUAL TONE MULTI-FREQUENCY (DTMF)......................................................................................................................37
LCD DISPLAY DRIVER ....................................................................................................................................................37
LIGHT SENSOR ................................................................................................................................................................38
REAL TIME CLOCK/CALENDAR .......................................................................................................................................38
GENERAL PURPOSE I/O EXPANDERS ...............................................................................................................................38
LED DIMMERS AND BLINKERS .......................................................................................................................................40
DIP SWITCH ....................................................................................................................................................................42
MULTIPLEXERS AND SWITCHES.......................................................................................................................................43
VOLTAGE LEVEL TRANSLATORS .....................................................................................................................................45
BUS REPEATERS AND HUBS ............................................................................................................................................45
HOT SWAP BUS BUFFERS ................................................................................................................................................45
BUS EXTENDERS .............................................................................................................................................................46
ELECTRO-OPTICAL ISOLATION ........................................................................................................................................47
RISE TIME ACCELERATORS .............................................................................................................................................47
PARALLEL BUS TO I2C BUS CONTROLLER ......................................................................................................................48
DIGITAL POTENTIOMETERS .............................................................................................................................................48
ANALOG TO DIGITAL CONVERTERS ................................................................................................................................48
SERIAL RAM/EEPROM .................................................................................................................................................49
HARDWARE MONITORS/TEMP & VOLTAGE SENSORS .....................................................................................................49
MICROCONTROLLERS ......................................................................................................................................................49
I2C PATENT AND LEGAL INFORMATION ..............................................................................................................50
APPLICATION NOTES..................................................................................................................................................50
3
AN10216-01 I2C Manual
OVERVIEW
Description
Philips Semiconductors developed the I2C bus over 20 years ago and has an extensive collection of specific use and
general purpose devices. This application note was developed from the 3 hour long I2C Overview TecForum presentation
at DesignCon 2003 in San Jose, CA on 27 January 2003 and provides a broad overview of how the I2C bus compares to
other serial buses, how the I2C bus works, ways to overcome previous limitations, new uses of I2C such as in the
Intelligent Platform Management Interface, overview of the various different categories of I2C devices and patent/royalty
information. Full size Slides are posted as a PDF file on the Philips Logic I2C collateral web site as DesignCon 2003
TecForum I2C Bus Overview PDF file. Place holder and title slides have been removed from this application note and
some slides with all text have been incorporated into the application note speaker notes.
three shared signal lines, for bit timing, data, and R/W.
Serial Bus Overview The selection of communicating partners is made with
one separate wire for each chip. As the number of chips
Co
m
m
grows, so do the selection wires. The next stage is to
un use multiplexing of the selection wires and call them an
ic
at
io
n er address bus.
s sum
Con
If there are 8 address wires we can select any one of
otiv
e IEEE1394 256 devices by using a ‘one of 256’ decoder IC. In a
tom
Au
SERIAL parallel bus system there could be 8 or 16 (or more)
BUSES data wires. Taken to the next step, we can share the
function of the wires between addresses and data but it
UART starts to take quite a bit of hardware and worst is, we
In
du
s
still have lots of wires. We can take a different
tri
SPI a l approach and try to eliminate all except the data wiring
BUS itself. Then we need to multiplex the data, the selection
DesignCon 2003 TecForum I2C Bus Overview 5 (address), and the direction info - read/write. We need
to develop relatively complex rules for that, but we save
Slide 5 on those wires. This presentation covers buses that use
only one or two data lines so that they are still attractive
for sending data over reasonable distances - at least a
General concept for Serial communications few meters, but perhaps even km.
SCL
SDA
Typical Signaling Characteristics
Parallel to Serial
select 3
Shift Register
select 2
select 1
READ
or enable Shift Reg# enable Shift Reg# enable Shift Reg#
WRITE? // to Ser. // to Ser. // to Ser.
R/W R/W R/W
“MASTER” SLAVE 1 SLAVE 2 SLAVE 3
DATA
LVTTL
• A point to point communication does not require a Select control signal
RS422/485 I2C
• An asynchronous communication does not have a Clock signal I2C SMBus
• Data, Select and R/W signals can share the same line, depending on the protocol I2C
PECL 1394
• Notice that Slave 1 cannot communicate with Slave 2 or 3 (except via the ‘master’) LVPECL LVDS GTL+
Only the ‘master’ can start communicating. Slaves can ‘only speak when spoken to’
DesignCon 2003 TecForum I2C Bus Overview 6
CML
4
AN10216-01 I2C Manual
also because it may be used within the PC software as a
general data path that USB drivers can use.
Transmission Standards
Terminology for USB: The use of older terms such as
2500 the spec version 1.1 and 2.0 is now discouraged. There
is just “USB” (meaning the original 12 Mbits/sec and
Data Transfer Rate (Mbps)
CML
655
400 1.5 Mbits/sec speeds of USB version 1.1) and Hi-Speed
GTLP
BTL
ETL 35
1394.a LVD
ECL S =RS-6
/PEC 4
USB meaning the faster 480 Mbits/sec option included
L/LV 4
10
PEC
L in spec version 2.0. Parts conforming to or capable of
General RS-422 the 480 Mbits/sec are certified as Hi-Speed USB and
Purpose 1
Logic RS-485
will then feature the logo with the red stripe “Hi-Speed”
0.1
I2C
fitted above the standard USB logo. The reason to avoid
RS-232 RS-423
use of the new spec version 2.0 as a generic name is
0.5 0 10 100 1000 that this version includes all the older versions and
Backplane Length (meters) Cable Length (meters)
speeds as well as the new Hi-Speed specs. So USB 2.0
DesignCon 2003 TecForum I2C Bus Overview 8
compliance does NOT imply Hi-Speed (480 Mbits/sec).
ICs can be compliant with USB 2.0 specifications yet
Slide 8 only be capable of the older ‘full speed’ or 12
Mbits/sec.
The various data transmission rates vs length or cable
or backplane length of the different transmission
standards are shown in Slide 8.
Bus characteristics compared
Data rat e Len gth No d es Node number
Bu s
(bits / sec) ( meter s) Length limiting f actor Typ.number limiting f actor
SPI 110 kHz (original speed) USB (low - speed, 1.1) 1.5M 3 cable specs 2 bus specs
CAN (fault tolerant) 125 kHz USB ( full - speed, 1.1) 1.5/12M
25 5 cables linking 6 nodes 127 bus and hub specs
I2C 400 kHz Hi- Spe ed USB (2.0) 480M ( 5m cable node to node)
IEEE-1394 100 to 400M+ 72 16 hops, 4.5M each 63 6-bit address
CAN (high speed) 1 MHz
I2C ‘High Speed mode’ 3.4 MHz
USB (1.1) 1.5 MHz or 12 MHz
SCSI (parallel bus) 40 MHz
Fast SCSI 8-80 MHz
Ultra SCSI-3 18-160 MHz
Firewire / IEEE1394 400 MHz DesignCon 2003 TecForum I2C Bus Overview 10
Slide 10
DesignCon 2003 TecForum I2C Bus Overview 9
5
AN10216-01 I2C Manual
operation well above 100 kHz with the P82B96. The all the bits and rebuilds the (parallel) byte and puts it in
theoretical round-trip delay on 100 m of cable is only a buffer.
approx 1 µs and the maximum allowed delay, assuming
zero delays in ICs, is about 3 µs at 100 kHz. The Along with converting between serial and parallel, the
figures for CAN are not quite as conservative; they are UART does some other things as a byproduct (side
the ‘often quoted values’. The round trip delay in 10 effect) of its primary task. The voltage used to represent
km cable is about 0.1 ms while 5 kbps implies 0.2 ms bits is also converted (changed). Extra bits (called start
nominal bit time, and a need to sample during the and stop bits) are added to each byte before it is
second half of the bit time. That is under the user’s transmitted. Also, while the flow rate (in bytes/s) on the
control, but needs attention. parallel bus speed inside the computer is very high, the
flow rate out the UART on the serial port side of it is
USB 2 and IEEE-1394 are still ‘emerging standards’. much lower. The UART has a fixed set of rates
Figures quoted may not be practical; they are just based (speeds) that it can use at its serial port interface.
on the specification restrictions.
UART - Applications
UART Overview
Server
Public
LAN / Private
application
Server Client
Client
Telephone / Internet
Processor Digital
Processor
What is UART? Network
Serial Interface
Parallel
Interface
Processor
Processor
tt t tt tt
(Universal Asynchronous Receiver Transmitter) Datacom
Datacom r rModem Analog or Digital Modem
Modemrr
Datacom
rr Datacom
controller r Modem controller
controller x
x x xx xx controller
• Communication standard implemented in the 60’s. WAN application Serial Interface
• Simple, universal, well understood and well supported. Appliance Terminals
• Slow speed communication standard: up to 1 Mbits/s • Entertainment
• Asynchronous means that the data clock is not included in • Home Security
the data: Sender and Receiver must agree on timing Cash
parameters in advance. register • Robotics
Display
• “Start” and “Stop” bits indicates the data to be sent Address • Automotive
Micro Memory Interface to
Micro Data
• Parity information can also be sent contr.
contr.
UART
Memory
Server • Cellular
DUART
DUART
SC28L92
SC28L92 • Medical
Bar code
0 1 2 3 4 5 6 7 Printer
reader
2
DesignCon 2003 TecForum I C Bus Overview 12
6
AN10216-01 I2C Manual
synchronized by the serial clock (SCLK). One bit of
SPI - How are the connected devices recognized? data is transferred for each clock cycle. Four clock
SCLK SCLK SLAVE 1 modes are defined for the SPI bus by the value of the
MOSI MOSI
MISO MISO clock polarity and the clock phase bits. The clock
SS 1
SS 2
SS
polarity determines the level of the clock idle state and
SS 3 SCLK
MOSI
SLAVE 2 the clock phase determines which clock edge places
MASTER
MISO
SS
new data on the bus. Any hardware device capable of
SLAVE 3
operation in more than one mode will have some
SCLK
MOSI method of selecting the value of these bits.
MISO
SS
• Simple transfer scheme, 8 or 16 bits CAN Overview
• Allows many devices to use SPI through the addition of a shift register
• Full duplex communications
What is CAN ? (Controller Area Network)
• Number of wires proportional to the number of devices in the bus
DesignCon 2003 TecForum I2C Bus Overview 14 • Proposed by Bosch with automotive applications in mind
(and promoted by CIA - of Germany - for industrial
applications)
Slide 14 • Relatively complex coding of the messages
• Relatively accurate and (usually) fixed timing
The SPI is essentially a “three-wire plus slave selects” • All modules participate in every communication
serial bus for eight or sixteen bit data transfer • Content-oriented (message) addressing scheme
applications. The three wires carry information between
devices connected to the bus. Each device on the bus
acts simultaneously as a transmitter and receiver. Two
of the three lines transfer data (one line for each
Filter Frame Filter
direction) and the third is a serial clock. Some devices
may be only transmitters while others only receivers. DesignCon 2003 TecForum I2C Bus Overview 15
7
AN10216-01 I2C Manual
Slide 16 Slide 17
Like I2C, the CAN bus wires are pulled by resistors to I2C products from many manufacturers are all
their resting state called a ‘recessive’ state. When a compatible but CAN hardware will be selected and
transceiver drives the bus it forces a voltage called the dedicated for each particular system design. Some CAN
‘dominant’ state. The identifier indicates the meaning transceivers will be compatible with others, but that is
of the data, not the intended recipient. So all nodes more likely to be the exception than the rule. CAN
receive and ‘filter’ this identifier and can decide designs are usually individual systems that are not
whether to act on the data or not. So the bus is using intended to be modified. Philips parts greatly enhance
‘multicast’ - many modules can act on the message, and the feature of reliability by their ability to use part-
all modules are checking the message for transmission broken bus wiring and disconnect themselves if they are
errors. Arbitration is ‘bit wise’ like I2C - the module recording too many bus errors.
forcing a ‘1’ beats a module trying for a ‘0’ and the
loser withdraws to try again later. There are several aspects to reliability - availability of
the bus when important data needs to be sent, the
- DLC: data length code possibility of bits in a message being corrupted by noise
- CRC: cyclic redundancy check (remainder of a etc., and the consequences of electrical/mechanical
division calculation). All devices that pass the CRC failure modes in the wiring. All these aspects are treated
will acknowledge or will generate an error flag seriously by the CAN specifications and the suppliers
after the data frame finishes. of the interface ICs - for example Philips believes
- ACK: acknowledge. conventional high voltage IC processes are not good
- Error frame: (at least) 6 consecutive dominant bits enough and uses Silicon-on-insulator technology to
then 7 recessive bits. increase ruggedness and avoid the alternative of using
common-mode chokes for protection. To give an
A message ‘filter’ can be programmed to test the 11-bit example of immunity, a transceiver on 5 V must be able
identifier and one or two bytes of the data (In general to cope with jump-start and load-dump voltages on its
up to 32 bits) to decide whether to accept the message supply or bus wires. That is 40 V on the supply and +/-
and issue an interrupt. It could also look at all of the 40 V on the bus lines, plus transients of –150 V/+100 V
29-bit identifier. capacitively coupled from a pulse generator in a test
circuit!
8
AN10216-01 I2C Manual
USB Overview
USB Bus Advantages
What is USB ? (Universal Serial Bus)
• Hot pluggable, no need to open cabinets
• Originally a standard for connecting PCs to peripherals • Automatic configuration
• Defined by Intel, Microsoft, … • Up to 127 devices can be connected together
• Intended to replace the large number of legacy ports in the PC • Push for USB to become THE standard on PCs
• Single master (= Host) system with up to 127 peripherals – standard for iMac, supported by Windows, now on > 99%of PCs
• Simple plug and play; no need to open the PC • Interfaces (bridges) to other communication channels
exist
• Standardized plugs, ports, cables – USB to serial port (serial port vanishing from laptops)
• Has over 99% penetration on all new PCs – USB to IrDA or to Ethernet
• Adapting to new requirements for flexibility of Host function • Extreme volumes force down IC and hardware prices
– New Hardware/Software allows dynamic exchanging of Host/Slave • Protocol is evolving fast
roles
– PC is no longer the only system Host. Can be a camera or a printer.
DesignCon 2003 TecForum I2C Bus Overview 20
Slide 20
Slide 18
USB aims at mass-market products and design-ins may
USB is the most complex of the buses presented here. be less convenient for small users. The serial port is
While its hardware and transceivers are relatively vanishing from the laptop and gone from iMac. There
simple, its software is complex and is able to efficiently are hardware bridges available from USB to other
service many different applications with very different communication channels but there can be higher power
data rates and requirements. It has a 12 Mbps rate (with consumption to go this way. Philips is innovating its
200 Mbps planned) over a twisted pair with a 4-pin USB products to minimize power and offer maximum
connector (2 wires are power supply). It also is limited flexibility in system design.
to short distances of at most 5 meters (depends on
configuration). Linux supports the bus, although not all
devices that can plug into the bus are supported. It is Versions of USB specification
synchronous and transmits in special packets like a
• USB 1.1
network. Just like a network, it can have several devices – Established, large PC peripheral markets
– Well controlled hardware, special 4-pin plugs/sockets
attached to it. Each device on it gets a time-slice of – 12MBits/sec (normal) or 1.5Mbits/sec (low speed) data rate
exclusive use for a short time. A device can also be • USB 2.0
guaranteed the use of the bus at fixed intervals. One – Challenging IEEE1394/Firewire for video possibilities
– 480 MHz clock for Hi-Speed means it’s real “UHF” transmission
device can monopolize it if no other device wants to use – Hi-Speed option needs more complex chip hardware and software
– Hi-Speed component prices about x 2 compared to full speed
it.
9
AN10216-01 I2C Manual
and Hi-Speed the development of ‘stand-alone’ Host specified to well over 1A at 8-30 volts (approx) -
ICs such as ISP1161 and ISP1561 allowed the Host leading to some unkind references to a ‘fire’ wire!
function to be embedded in products such as Digital
Still Cameras or printers so that more direct transfer of 1394 software or message format consists of timeslots
data was possible without using the path Camera → PC within which the data is sent in blocks or ‘channels’.
→ Printer under control of the PC as the host. That two For real-time data transfer it is possible to guarantee the
step transfer involves connecting the camera to the PC availability of one or more channels to guarantee a
(one USB cable) and also the PC to the printer (second certain data rate. This is important for video because
USB cable). The goal is to do without the PC. it’s no good sending a packet of corrected data after a
blank has appeared on the screen!
The next step involved the shrinking of the USB
connector hardware, to make it more compatible with Microsoft says, “IEEE 1394 defines a single
small products like digital cameras, and making interconnection bus that serves many purposes and user
provision (extra pin) for dynamic exchanging of Host scenarios. In addition to its adoption by the consumer
and slave device functions without removing the USB electronics industry, PC vendors—including Compaq,
cable for reversing the master/slave connectors. The Dell, IBM, Fujitsu, Toshiba, Sony, NEC, and
new hardware and USB specification version is called Gateway—are now shipping Windows-based PCs with
“On The Go” (OTG). The OTG specification no longer 1394 buses.
requires the Host to provide the 1/2 A power supply to
peripherals and indeed allows arbitration to determine The IEEE 1394 bus complements the Universal Serial
whether Host or peripheral (or neither) will provide the Bus (USB) and is particularly optimized for connecting
system power. digital media devices and high-speed storage devices to
a PC. It is a peer-to-peer bus. Devices have more built-
1394 Overview in intelligence than USB devices, and they run
independently of the processor, resulting in better
performance.
What is IEEE1394 ?
• A bus standard devised to handle the high data throughput The 100-, 200-, and 400-Mbps transfer rates currently
requirements of MPEG-2 and DVD specified in the IEEE 1394a standard and the proposed
– Video requires constant transfer rates with guaranteed bandwidth enhancements in 1394b are well suited to meeting the
– Data rates 100, 200, 400 Mbits/sec and looking to 3.2 Gb/s
• Also known as “Firewire” bus (registered trademark of Apple)
throughput requirements of multiple streaming
• Automatically re-configures itself as each device is added input/output devices connected to a single PC. The
– True plug & play licensing fee for use of patented IEEE 1394 technology
– Hot-plugging of devices allowed has been established at US $0.25 per system.
• Up to 63 devices, 4.5 m cable ‘hops’, with max. 16 hops
• Bandwidth guaranteed
With connectivity for storage, scanners, printers, and
other types of consumer A/V devices, IEEE 1394 gives
users all the benefits of a great legacy-free connector—
DesignCon 2003 TecForum I2C Bus Overview 22 a true Plug and Play experience and hassle-free PC
connectivity.”
Slide 22
1394 Topology
1394 may claim to be more proven or established than
USB but both are ‘emerging’ specifications that are
trying to out-do each other! Philips strongly supports
BOTH. 1394 was chosen by Philips as the bus to link
set-top boxes, DVD, and digital TVs. 1394 has an ’a’
version taking it to 400 Mb/sec and more recently a ‘b’
version for higher speed and to allow longer cable runs, • Physical layer
– Analog interface to the cable
perhaps 100 meter hops! – Simple repeater
– Performs bus arbitration
10
AN10216-01 I2C Manual
I2C Overview • Each device connected to the bus is software
addressable by a unique address and simple
What is I2C ? (Inter-IC) master/slave relationships exist at all times;
masters can operate as master-transmitters or as
• Originally, bus defined by Philips providing a simple way to master-receivers.
talk between IC’s by using a minimum number of pins • It’s a true multi-master bus including collision
• A set of specifications to build a simple universal bus
detection and arbitration to prevent data corruption
guaranteeing compatibility of parts (ICs) from different
manufacturers: if two or more masters simultaneously initiate data
– Simple Hardware standards transfer.
– Simple Software protocol standard • Serial, 8-bit oriented, bi-directional data transfers
• No specific wiring or connectors - most often it’s just PCB can be made at up to 100 kbit/s in the Standard-
tracks mode, up to 400 kbit/s in the Fast-mode, or up to
• Has become a recognised standard throughout our industry 3.4 Mbit/s in the High-speed mode.
and is used now by ALL major IC manufacturers • On-chip filtering (50 ns) rejects spikes on the bus
data line to preserve data integrity.
•
DesignCon 2003 TecForum I2C Bus Overview
The number of ICs that can be connected to the
24
But while its application to bus lengths within the DesignCon 2003 TecForum I2C Bus Overview 25
11
AN10216-01 I2C Manual
6) Ask the other IC to ACKNOWLEDGE (using one But several Masters could control one Slave, at
bit) that it recognized its address and is ready to different times. Any ‘smart’ communications must be
communicate. via the transferred DATA, perhaps used as address info.
7) After the other IC acknowledges all is OK, data The I2C bus protocol does not allow for very complex
can be transferred. systems. It’s a ‘keep it simple’ bus. But of course
8) The first IC sends or receives as many 8-bit words system designers are free to innovate to provide the
of data as it wants. After every 8-bit data word the complex systems - based on the simple bus.
sending IC expects the receiving IC to
acknowledge the transfer is going OK. Serial Bus Comparison Summary
9) When all the data is finished the first chip must
free up the bus and it does that by a special Pros and Cons of the different buses
message called 'STOP'. It is just one bit of CAN USB SPI
UART I2 C
information transferred by a special 'wiggling' of
• Well Known • Secure • Fast • Fast • Simple
the SDA/SCL wires of the bus. • Cost effective • Fast • Plug&Play HW • Universally • Well known
accepted
• Simple • Simple • Universally
The bus rules say that when data or addresses are being • Low cost
• Low cost accepted
• Plug&Play
• Large Portfolio
sent, the DATA wire is only allowed to be changed in • Large portfolio
voltage (so, '1', '0') when the voltage on the clock line is • Cost effective
LOW. The 'start' and 'stop' special messages BREAK • Limited • Complex • Powerful master • No Plug&Play
required
• Limited speed
functionality HW
that rule, and that is how they are recognized as special. • Point to Point
• Automotive
oriented • No Plug&Play • No “fixed”
SW - Specific standard
• Limited
drivers required
portfolio
• Expensive
12
AN10216-01 I2C Manual
I2C Theory Of Operation • Compatible with a number of processors with
integrated I2C ports (micro 8,16,32 bits) in 8048,
I2C Introduction 80C51 or 6800 and 68xxx architectures
• I2 C bus = Inter-IC bus • Easily emulated in software by any microcontroller
• Bus developed by Philips in the 80’s • Available from an important number of component
• Simple bi-directional 2-wire bus: manufacturers
– serial data (SDA)
– serial clock (SCL)
• Has become a worldwide industry standard and used by all
major IC manufacturers
I2C Hardware architecture
• Multi-master capable bus with arbitration feature
• Master-Slave communication; Two-device only communication Pull-up resistors
Typical value 2 kΩ to 10 kΩ
• Each IC on the bus is identified by its own address code
• The slave can be a:
– receiver-only device
– transmitter with the capability to both receive and send data
13
AN10216-01 I2C Manual
SCL
SDA
A0
1010 0 1 1 A1
EEPROM
A2
1010A2A1A0R/W
New devices or
functions can be
Fixed Hardware easily ‘clipped on to
• Exceptions are the START and STOP conditions Selectable an existing bus!
• Each device is addressed individually by software
• Unique address per device: fully fixed or with a programmable part
through hardware pin(s).
S P
• Programmable pins mean that several same devices can share the
same bus
• Address allocation coordinated by the I2C-bus committee
• 112 different types of devices max with the 7-bit format (others reserved)
DesignCon 2003 TecForum I2C Bus Overview 32 DesignCon 2003 TecForum I2C Bus Overview 33
Slide 32 Slide 33
14
AN10216-01 I2C Manual
‘loser’ device withdraws and waits until the bus is freed master releases SDA line to accomplish the
again. Acknowledge phase. If the other device is connected to
the bus, and has decoded and recognized its ‘address’, it
There is no minimum clock speed; in fact any device will acknowledge by pulling the SDA line low. The
that has problems to ‘keep up the pace’ is allowed to responding chip is called the bus ‘slave’.
‘complain’ by holding the clock line low. Because the
device generating the clock is also monitoring the
voltage on the SCL bus, it immediately ‘knows’ there is I2C Read and Write Operations (1)
a problem and has to wait until the device releases the • Write to a Slave device
SCL line. < n data bytes >
Master
SCL Slave
S slaveaddress
S slave addressW WA Adata data
A A data
data A P transmitter receiver
A P
SDA
For full details of the bus capabilities refer to Philips “0” = Write Each byte is acknowledged by the slave device
Semiconductors Specification document ‘The I2C bus The master is a “MASTER - TRANSMITTER”:
–it transmits both Clock and Data during the all communication
specification’ or ‘The I2C bus from theory to practice’ • Read from a Slave device
book by Paret and Fenger published by John Wiley & < n data bytes > SCL
receiver
Sons. transmitter
S slave address R A data A data A P
SDA
“1” = Read Each byte is acknowledged by the master device (except the last
one, just before the STOP condition)
The I2C specification and other useful application The master is a “MASTER TRANSMITTER then MASTER - RECEIVER”:
information can be found on Philips Semiconductors – it transmits Clock all the time
– it sends slave address data and then becomes a receiver
web site at
DesignCon 2003 TecForum I2C Bus Overview
http://www.semiconductors.philips.com/i2c/ 35
Slide 35
I2C Address, 7-bit and 10-bit formats
• The 1st byte after START determines the Slave to be addressed Terminology for Bus Transfer
• Some exceptions to the rule:
• F (FREE) - the bus is free; the data line SDA and
– “General Call” address: all devices are addressed : 0000 000 + R/W = 0
– 10-bit slave addressing : 1111 0XX + R/W = X
the SCL clock are both in the high state.
•7-bit addressing
• S (START) or SR (Repeated START) - data
transfer begins with a start condition (not a start
S X X X X X X X R/W A DATA
bit). The level of the SDA data line changes from
The 7 bits
Only one device will acknowledge high to low, while the SCL clock line remains high.
• 10-bit addressing When this occurs, the bus is ‘busy’.
S 1 1 1 1 0 X X R/W A1 X X X X X X X X A2 DATA • C (CHANGE) - while the SCL clock line is low,
XX = the 2 MSBs The 8 remaining the data bit to be transferred can be applied to the
More than one device can bits Only one device will SDA data line by a transmitter. During this time,
acknowledge acknowledge
DesignCon 2003 TecForum I2C Bus Overview 34
SDA may change its state, as along as the SCL line
remains low.
• D (DATA) - a high or low bit of information on the
Slide 34
SDA data line is valid during the high level of the
SCL clock line. This level must be maintained
Slide 34 shows the I2C address scheme. Any I2C device
stable during the entire time that the clock remains
can be attached to the common I2C bus and they talk
high to avoid misinterpretation as a Start or Stop
with each other, passing information back and forth.
condition.
Each device has a unique 7-bit or 10-bit I2C address.
For 7-bit devices, typically the first four bits are fixed, • P (STOP) - data transfer is terminated by a stop
the next three bits are set by hardware address pins (A0, condition, (not a stop bit). This occurs when the
A1, and A2) that allow the user to modify the I2C level on the SDA data line passes from the low
address allowing up to eight of the same devices to state to the high state, while the SCL clock line
operate on the I2C bus. These pins are held high to VCC, remains high. When the data transfer has been
sometimes through a resistor, or held low to GND. terminated, the bus is free once again.
15
AN10216-01 I2C Manual
I2C Read and Write Operations (2) Slide 38 shows how multiple masters can synchronize
• Combined Write and Read their clocks, for example during arbitration. When bus
< n data bytes > < m data bytes > capacitance affects the bus rise or fall times the master
S slave
S
A P
slaveaddress
addressW WA Adata data
A A data
data A SrSr slave address R A data A data A P
will also adjust its timing in a similar way.
“0” = Write Each byte is “1” = Read Each byte is
acknowledged acknowledged
by the slave device by the master device
(except the last one, just
before the STOP
I2C Protocol - Arbitration
• Combined Read and Write condition)
< n data bytes > < m data bytes >
• Two or more masters may generate a START condition at the same time
S slave address R A data A data A S
Sr slave
P addressW WA AdatadataA
slave address A data
data A P
• Arbitration is done on SDA while SCL is HIGH - Slaves are not involved
A P
Slide 36
Slide 37 shows how the Acknowledge phase is done What do I need to drive the I2C bus?
and how slave devices can stretch the clock signal.
Most Philips slave devices do not control the clock line. Slave 1 Slave 2 Slave 3 Slave 4
Master
I2C BUS
I2C Protocol - Clock Synchronization There are 3 basic ways to drive the I2C bus:
2 3
Slide 40
• LOW period determined by the longest clock LOW period
• HIGH period determined by shortest clock HIGH period
Slide 40 shows there are multiple ways to control I2C
DesignCon 2003 TecForum I2C Bus Overview 38
slaves.
Slide 38
16
AN10216-01 I2C Manual
3 - Keeping SDA High during the ACK means that the “Master-Receiver”
does not acknowledge the previous byte receive
Slide 41 4 - The “Slave-Transmitter” then goes in an idle state
5 - The master then sends a STOP command initializing completely the
bus
Slide 41 shows the typical resistor values needed for DesignCon 2003 TecForum I2C Bus Overview 42
I2C Designer Benefits Slide 42 shows how a hung bus could be recovered.
• Functional blocks on the block diagram correspond The bus can become hung for several reasons, e.g.….
with the actual ICs; designs proceed rapidly from 1. Incorrect power-up and/or reset procedure for
block diagram to final schematic. ICs
• No need to design bus interfaces because the I2C 2. Power to a chip is interrupted – brown-outs etc
bus interface is already integrated on-chip. 3. Noise on the wiring causes false clock or data
• Integrated addressing and data-transfer protocol signals
allow systems to be completely software-defined.
• The same IC types can often be used in many
different applications. I2C Protocol Summary
• Design-time reduces as designers quickly become START
STOP
HIGH to LOW transition on SDA while SCL is HIGH
LOW to HIGH transition on SDA while SCL is HIGH
familiar with the frequently used functional blocks DATA 8-bit word, MSB first (Address, Control, Data)
- must be stable when SCL is HIGH
represented by I2C bus compatible ICs. - can change only when SCL is LOW
- number of bytes transmitted is unrestricted
• ICs can be added to or removed from a system ACKNOWLEDGE - done on each 9th clock pulse during the HIGH period
- the transmitter releases the bus - SDA HIGH
without affecting any other circuits on the bus. - the receiver pulls DOWN the bus line - SDA LOW
• Fault diagnosis and debugging are simple; CLOCK - Generated by the master(s)
- Maxim um speed specified but NO minimum speed
malfunctions can be immediately traced. - A receiver can hold SCL LOW when performing
another function (transmitter in a Wait state)
• Assembling a library of reusable software modules ARBITRATION
- A master can slow down the clock for slow devices
- Master can start a transfer only if the bus is free
can reduce software development time. - Several masters can start a transfer at the same time
- Arbitration is done on SDA line
- Master that lost the arbitration must stop sending data
17
AN10216-01 I2C Manual
• I2C protocol limitation: when a device does not have its I2C address
programmable (fixed), only one same device can be plugged in the same MASTER
bus
Same I2C devices with same address
18
AN10216-01 I2C Manual
• I2C bus level shifting (e.g., each individual Multiplexers allow dynamic splitting of the overloaded
SCx/SDx channel can be operated at 1.8 V, 2.5 V, I2C bus into several sub-branches with a total capacitive
3.3 V or 5.0 V if the device is powered at 2.5 V). load smaller than the specified 400 pF. Note that this
method does not allow the master to access all the buses
Interrupt logic inputs for each channel and a combined at the same time. Only part of the bus will be accessible
output are included on every multiplexer and provide a at a time.
flag to the master for system monitoring. These devices
do not isolate the capacitive loading on either side of Multiplexers allow bus splitting but do not have a
the device so the designer must take into account all buffering capability. Buffers and repeaters allow
trace and device capacitance on both sides of the device increasing the total capacitive load beyond the 400 pF
and on any active channels. Pull up resistors must be without splitting the bus in several branches. If a
used on all channels PCA9515 is used, the bus can be loaded up to 800 pF
with 400 pF on each side of the device.
Capacitive Loading > 400 pF (isolation)
Slide 49 Slide 51
The I2C specification limits the maximum capacitive In this application, 4 identical cards are used. Identical
load in the bus to 400 pF. In applications where a means that the same devices are used, and that the I2C
higher capacitive load is required, 2 types of devices devices on each card have the same address. Each card
can be used: monitors and controls some specific signal and those
• I2C multiplexers and switches signals are controlled/monitored through the I2C bus by
• I2C buffers and repeaters using a PCA9554 type device.
19
AN10216-01 I2C Manual
high level voltage value, determined by the voltage
I2C Multiplexers: Multi-card Application applied to the pull up resistors. In applications where
- Cards are identical
several voltage levels are required (e.g. accommodate
- One card is selected / controlled
Card 0
Card 1
legacy architecture at 5.0 V with newer devices
at a time
- PCA9544 collects Interrupt
Card 2 working at 3.3 V only), I2C switches allow creating a
Card 3
0 Reset
bus with different high level voltage values at a
I2C bus 0
1 Reset
Alarm 1
minimum cost.
I2C bus 1
PCA
I2C bus 2 Alarm 1
9544
MASTER
I2C bus 3
1
PCA 0
Int
Int
In this example, we have an existing 5.0 V I2C bus and
INT INT0 95540 Reset we want to add some new features with devices “non
INT1
Sub
System 5.0 V tolerant”. An I2C bus can be used. The master
INT2
INT3 INT
1 Int
controlling the existing and new devices will be located
in the upstream channel and the 2 downstream channels
Interrupt signals are
collected into one signal will be used with pull up resistors at 5.0 V in one and to
DesignCon 2003 TecForum I2C Bus Overview 52
3.3 V in the other one. Software changes will include
the drivers for the new 3.3 V devices and a simple 2-
Slide 52 byte command allows to program the I2C switch with
the 2 downstream channels active all the time. The
When one card in the application triggers an alarm master then sees an I2C bus with new devices and does
condition, the PCA9554 collects it through one of its not have to take care of the high level voltage required
inputs and generates an Interrupt (at the card level). to make them work correctly. It does not have to care
PCA9544 collects the Interrupts (from each card) and either about the location of the device it needs to talk to
sends a “General Interrupt” to the master. (downstream channel 0 or channel 1) since both are
1. Master then interrogates the PCA9544 Interrupt active at the same time.
status register in order to determine which card is
in cause
2. Master then connects the corresponding sub I2C I2C Switches: Voltage Level Shifting
channel in order to interrogate the PCA9554 by I2C device I2C device I2C device I2C device I2C device
1 2 3 4 5
reading its Input register.
3. Once 1) and 2) are done, Master knows which Devices supplied by 5V Devices supplied by 3.3V
and not 5.0 V tolerant
• Products
corresponding alarm by accessing the corresponding I2C device I2C device I2C device
1 2 3
PCA9542/43
PCA9546
X
output register) 5
8
GTL2010
PCA9548
5V bus
I2C I2C device I2C device
MASTER SWITCH
11 GTL2000
4 5
Voltage Level Translation 3.3V bus
• I2C protocol: Due to the open drain structure of the bus, voltage level in the
bus is fixed by the voltage connected to the pull-up resistor. If different
voltage levels are required (e.g., master core at 1.8 V, legacy I2C bus at 5 V
Slide 54
and new devices at 3.3 V), voltage level translators need to be used
The SCL/SDA upstream channel fans out to multiple
Î An I2C switch can be used to accommodate those
SCx/SDx channels that are selected by the
different voltage levels.
programmable control register. The Switches can select
• It allows to split dynamically the main I2C in several sub-branches and allow individual SCx/SDx channels one at a time, all at once
different supply voltages to be connected to the pull up resistors
• PCA devices are programmable through I2C bus so no additional pin is
or in any combination through I2C commands and very
required to control which channel is active primary designed for sub-branch isolation and level
• More than one channel can be active at the same time so the master does shifting but also work fine for address conflict
not have to remember which branch it has to address (broadcast)
• More than one switch can be plugged in the same I2C bus resolution. Just make sure you do not select two
DesignCon 2003 TecForum I2C Bus Overview 53 channels at the same time.
20
AN10216-01 I2C Manual
hardware reset pin has been added to all the switches. It
provides a means of resetting the bus should it hang up, Isolate I2C hanging segment(s)
without rebooting the entire system and is very useful Device 1
in server applications where it is impractical to reset the
Device 2
entire system when the I2C bus hangs up. The switches MASTER PCA
reset to no channels selected. 9548 Device 3
Device 4
Interrupt logic inputs and output are available on the
PCA9543 and PCA9545 and provide a flag to the Device 5
master for system monitoring. The PCA9546 is a lower RESET Device 6
cost version of the PCA9545 without Interrupt Logic.
The PCA9548 provides eight channels and are more Device 7
convenient to use then dual 4 channel devices since the Device 8
device address does not have to shift.
DesignCon 2003 TecForum I2C Bus Overview 56
How to increase reliability of an I2C bus? Slave devices will be located on each downstream
(Slave devices) channel of the PCA9548 (8-channel switch with Reset)
• I2C protocol: If one device does not work properly and hangs the bus, then (CH1 to CH8). At power up, all the downstream
no device can be addressed anymore until the rogue device is separated from channels are disabled. The master (located in the
the bus or reset.
upstream channel) sends a 2 byte command enabling all
Î An I2C switch can be used to split the I2C bus in several the downstream channels. The I2C bus is then a normal
branches that can be isolated if the bus hangs up. bus with a master and 8 slave devices. Let’s assume
• Switches allow the main I2C to be split dynamically in several sub-branches
that DEV4 (in CH4) fails. The bus then hangs and
that can be: cannot be normally controlled by the master anymore.
– active all the time
– deactivated if one device of a particular branch hangs the bus
• When a malfunctioning sub-branch has been isolated, the other sub After detection of this condition, the master must go to
branches are still available a maintenance routine where:
• It is programmable through I2C so no additional pin is required to control it
• More than one switch can be plugged in the same I2C bus
• It resets the PCA9548, thus disabling all the
DesignCon 2003 TecForum I2C Bus Overview 55 downstream channels.
• It enables one by one all the downstream channels
Slide 55 (CH1 to CH8) until the bus hangs again (CH4
active).
Due to the open drain architecture of the I2C bus, if a The master then knows that the device connected to
device fails in the bus and keeps the clock or data line CH4 is responsible of the failure
at a high or low level, the bus is stuck in this • It resets again the PCA9548 to take control of the
configuration and no device can be controlled until the I2C bus
failed device is isolated from the I2C bus. Some • It programs all the functional channels active (CH1
architectures require a bus to still be operational even to 3, CH5 to 8) and disables CH4
though one or more devices failed and can no longer
operate normally. Note that this algorithm can also be applied if more
than 1 channel hang the bus at the same time.
An I2C switch with a Reset capability allows to:
• Split dynamically the I2C bus in several sub-
branches (with one or several devices on each)
• Disconnect all the devices in case the bus hangs
• Reprogram the bus and isolate one or more branch
that is not working properly.
21
AN10216-01 I2C Manual
P82
• Main Master control the I2 C bus
SEGMENT 3
B96
• When it fails, backup master asks to take control of the bus
• Previous master is then isolated by the multiplexer
• A bus buffer isolates the branch (capacitive isolation)
• Downstream bus is initialized (all devices waiting for START condition)
• Its power supply is controlled by a bus sensor
• Switch to the new master is done
• SDA and SCL are sensed and the sensor generates a timeout when the
bus stays low • Products
Device # of upstream channels
• Bus buffer is Hi-Z when power supply is off. PCA9541 2
DesignCon 2003 TecForum I2C Bus Overview 57 DesignCon 2003 TecForum I2C Bus Overview 59
Slide 57 Slide 59
Slide 57 shows one discrete solution with option to set The 2:1 master selector allows switching between one
timing, by discrete capacitors, to isolate a bus segment. master and its backup (and vice versa if the main master
comes back on line). Before switching from one
Increasing I2C Bus Reliability (Master Devices) upstream channel to the other one, the device makes
sure that the previous device is not on the bus anymore
How to increase reliability of an I2C bus? (fully isolated)
(Master devices)
• I2C protocol: If the master does not work properly , reliability of the systems
The switching is done after making sure that the
will decrease since monitoring or control of critical parameters are not downstream bus is in a “clean” configuration. All the
possible anymore (voltage, temperature, cooling system) downstream devices have been initialized again
Î An I2C demultiplexer can be used to switch from one
(essential when the previous master failed in the middle
failing master to its backup. of a transaction and thus the bus is not well initialized)
and the bus is in an idle configuration. This is done by
• It allows to have 2 independent masters to control the bus without any fault
or system corruption
converting the 2:1 master selector into a temporary
– failed master completely isolated from the bus master (just after isolating the failing master) allowing
– I2C bus is initialized by the demultiplexer before switching from one it to send the necessary I2C sequence (9 clock pulses on
master to the other one
• It is programmable through I2C so no additional pin is required to control it SCL while SDA is maintained high then a STOP
• More than one demultiplexer can be plugged in the same I2C bus command). While the sequence is done, the
DesignCon 2003 TecForum I2C Bus Overview 58 downstream I2C bus is well initialized and the switch to
the new master can be performed automatically by the
Slide 58 PCA9541.
If the I2C master fails or does not work properly, Capacitive Loading > 400 pF (Buffer)
reliability of applications will decrease since
monitoring and control of essential parameters cannot How to go beyond I2C max cap load?
be controlled anymore (e.g. temperature monitoring, • I2C protocol limitation: the maximum capacitive load in a bus is 400 pF. If the
voltage monitoring, cooling control). It is then often load is higher AC parameters will be violated.
essential to have a backup I2C master to replace a mal
Î An I2C bus repeater or an I2C hub can be used to get rid
functioning main I2C master. The I2C 2:1 master of this limitation
selector is then an essential device allowing switching
between 2 masters. • It allows to double the I2C max capacitive load (repeater) or to make it 5
times higher (hub = 5 repeaters)
• Multi-master capable, voltage level translation
It can be used in: • All channels can be active at the same time
• Limitation: Repeater/hub cannot be used in series
• A point to point application - master and backup
master control one card • Products:
• A multi point application - master and backup Device
PCA9515
# of repea te rs
1
# of ENABLE pins
1
master control several cards. PC9516 5 4
DesignCon 2003 TecForum I2C Bus Overview 60
Slide 60
22
AN10216-01 I2C Manual
I2C bus repeaters and hubs allow increasing the Using the PCA9516 in this application, the sub masters
maximum capacitive load on the bus without degrading can only talk with sub masters on the same hub or the
the AC performances (rising and falling times) of the main master since a low signal can not be sent through
data and clock signals. They are multi-master capable. two hubs. Sub masters will not be able to arbitrate for
bus control if located on different hubs. That is not
ideal and limits the designers’ ability to expand their
I2C Bus repeater (PCA9515) and Hub (PCA9516) I2C bus. The PCA9515 and the PCA9516 can only be
used one device (either the PCA9515 or PCA9516) per
system since low levels will not be transmitted through
PCA the second device.
Master 9515 Hub
Hub 11
should be used.
Slide 63
How to scale the I2C bus by adding The PCA9518, like the PCA9515/16, is transparent to
400 pF segments? bus arbitration and contention protocols in a multi-
• Some applications require architecture enhancements where one or several
isolated I2C hubs need to be added with the capability of hub to hub
master environment and any master can talk to any
communication other master on any segment. The enable pins can be
used to isolate four of the five segments per device.
Î An expandable I2C hub can be used to easily upgrade
Place a pull up resistor on the un-isolatable segment
this type of application
and leave it unused if there is a requirement to enable or
• It allows to expand the numbers of hubs without any limit disable the segment.
• Multi-master capable, voltage level translation
• All channels can be active at the same time (4 channels per expandable hub
can be individually disabled) Using the PCA9518 in this 15 hub application, any sub
master can talk to any other sub master on any of the
• Products:
Device # of repeate rs # of ENABLE pins cards and the main master can talk with any sub master
PCA9518 5 4 with only one repeater delay.
DesignCon 2003 TecForum I2C Bus Overview 62
Slide 62
23
AN10216-01 I2C Manual
• Repeaters work with the same logic level on each side except the PCA9512
which works with 3.3 V and 5 V logic voltage levels at the same time
PCA9515 - Application Example
• Products:
3.3 V 5.0 V Device # of repeaters # of ENABLE pins
400 kHz slave 100 kHz slave PCA9511 1 1
devices devices PCA9512 1 0
SCL0 SCL1
PCA9513 1 1
PCA9514 1 1
SDA0 SDA1
DesignCon 2003 TecForum I2C Bus Overview 66
ENABLE
MASTER 1 MASTER 2
400 kHz 100 kHz
OPTIONAL
Slide 66
• Master 1 works at 400 kHz and can access 100 & 400 kHz slaves at their
maximum speed (100 kHz only for 100 kHz devices)
The I2C bus was never designed to be used in live
• Master 2 works at only 100 kHz
insertion applications, but newer applications in for
• PCA9515 is disabled (ENABLE = 0) when Master 1 sends commands at
400 kHz telecom cards that require 24/7 operation require the
DesignCon 2003 TecForum I2C Bus Overview 65 ability to be removed and inserted into an active system
for maintenance and control applications.
Slide 65
24
AN10216-01 I2C Manual
Parallel to I2C Bus Controller
I2C Hot Swap Bus Buffer
PLUG
How to use a micro-controller without I2C bus or
SCL0 SCL1 how to develop a dual master application with a
single micro-controller?
SDA0 SDA1
READY • Some micro-controllers integrates an I2C port, others don’t
Slide 67
Slide 69
The PCA9511/12/13/14 are designed for these types of
live insertion applications. There are many applications where there is a need to
convert 8 bits of parallel data into an I2C bus port. The
Long I2C Bus Lengths PCF8584 and PCA9564 allow building a single I2C
master system using the parallel port of a 8051 type
How to send I2C commands through long cables? microcontroller that does not have an I2C interface. It
• I2C limitation: due to the bus 400 pF maximum capacitive load limit, sending
commands over wire (80 pF/m) long distances is hard to achieve
also allows building a double master system with using
the built-in I2C interface and the parallel port of the
Î An I2C bus extender can be used
same micro-controller.
• It has high drive outputs
• Possible distances range from 50 meters at 85 kHz to 1km at 31 kHz over
twisted-pair phone cables. Up to 400 kHz over short distances.
• Others applications:
Parallel Bus to I2C Bus Controller
– Multi-point applications: link applications, factory applications • Master without I2C interface
– I2C opto-electrical isolation
– Infra-red or radio links
Master PCA SDA
9564 SCL
• Products:
Device
P82B715 • Multi-Master capability or 2 isolated I2C bus with the same device
P82B96
DesignCon 2003 TecForum I2C Bus Overview 68 PCA SDA1
Master 9564 SCL1
SDA2
Slide 68 SCL2
• Products
Voltage range Max I2C freq Clock source Parallel interface
The P82B715 and P82B96 are designed for long PCF8584 4.5 - 5.5V 90 kHz External Slow
distance transmission of the I2C bus. PCA9564 2.3 - 3.6V w/5V tolerance 360 kHz Internal Fast
Slide 70
25
AN10216-01 I2C Manual
controls all the I2C bus specific sequences, protocol, WIN-I2CNTDLL: 32-bit Win-I2CNT kit including
arbitration and timing. The internal oscillator in the DLL driver and docs - Developer Kit for 32-bit
PCA9564 is regulated to within +/- 10%. embedded I2C applications
PCA9564 PCF8584 Comments WIN-I2CNT: 32-bit I2C Software/Adapter kit for Win
1. Voltage range 2.3-3.6V 4.5-5.5V PCA9564 is 5V tolerant
2. Max I2C freq. 360 kHz 90 kHz Faster I2C
95/98/ME/2000, NT 4.x - Enhanced kit for I2C control.
3. Clock source Internal External Less expensive and more Free updates from the Website
flexible
4. Parallel interface Fast Slow Compatible with faster WIN-I2C: General Purpose legacy 16-bit I2C
processors
Software/Adapter kit - Basic Legacy Kit for I2C control
with PCs running Windows 3.1x
In addition, the PCA9564 has been made very similar to
the Philips standard 80C51 microcontroller I2C I2CPORT: General Purpose I2C LPT Printer Port
hardware so existing code can be utilized with a few Adapter v1.0 - Generic I2C adapter (Not compatible
modifications. with Win-I2C/Win-I2CNT Software)
Development Tools and Evaluation Board Evaluation Board 2002-1 Kit Overview
Overview
I2C Cable
I2C 2002-1
Evaluation Kit
2 CD - ROM
Purpose of the Development Tool and I C PC -Win95/98/2000/NT/XP
Slide 74
Slide 73 To the PC
parallel
port
To the I2C
The I2C 2002-1A I2C evaluation board can be Evaluation Board
I2C bus signals
purchased from http://www.demoboard.com for $199. Jumper JP2
I2C Voltage Selection (Bus
voltage)
Demo boards include at demoboard.com include: Open = 3.3 V bus
Closed = 5.0 V bus
26
AN10216-01 I2C Manual
The I2CPORT v2 adapter card plugs into the parallel
port and provides the interface between the Personal
Computer and the I2C bus operating up to 150 kHz.
27
AN10216-01 I2C Manual
DesignCon 2003 TecForum I2C Bus Overview 76 DesignCon 2003 TecForum I2C Bus Overview 78
Slide 76 Slide 78
There are many new I2C devices on the evaluation Slide 78 shows the 8 bit GPIO and 2 kbit EEPROM
board including GPIO, LED Blinkers, Switches, DIP selection for the PCA9501.
Switches and Bus Buffers.
LED drivers
states
Register values
Device
address
Auto Write
Feature
Read / Write
Operation
Frequencies
and duty cycles
programming
Slide 80
28
AN10216-01 I2C Manual
Slide 80 shows the selections for the PCA9551 8 bit Device Æ Non-Volatile Registers Æ PCA9561
LED Blinker. The PCA9551 has two PWMs and
controls for each bit (ON, OFF, BLINK1 and
BLINK2). Device
Address
EEPROMs
Read / Write
Device Æ I/O Expanders Æ PCA9554 Operation
Polarity
Register
Register
Read / Write
Slide 83
Programming
Operation
(specific
register) Slide 83 shows the PCA9561 6 bit DIP Switch along
with the 4 bit PCA8550 and 6 bit PCA9559/60.
DesignCon 2003 TecForum I2C Bus Overview 81
Device
Device Æ I/O Expanders Æ PCA9555 modes
Device
Address
Register
Slide 84
Output
Programming Registers
Configuration
Slide 84 allows control of the LM75A and monitoring
Registers
of the temperature on the graph.
Read / Write
Operation
(specific Register)
PCA9515
Slide 82 • Bus repeater - No software to control it
• Buffered I2C connector available
Slide 82 shows the 16 bit true output GPIO. • Enable Control pin accessible
P82B96
• Bus buffer - No software to control it
• I2C can come from the Port Adapter + USB Adapter through the USB
cable
• I2C can be sent through RJ11 and USB cables to others boards
• 5.0 V and 9.0 V power supplies
DesignCon 2003 TecForum I2C Bus Overview 85
Slide 85
29
AN10216-01 I2C Manual
PCA9515 allows connection using short wiring to • First START and STOP instructions can not be removed
another 400 pF bus having 3.3-5 V standard I2C chips. • I2C Re-Start Command Æ “S” key
• I2C Write Command Æ “W” key
P82B96 allows options to demonstrate: • I2C Read Command Æ “R” key
1. Linking to a second evaluation board using a • Add an Instruction Æ “Insert” key
USB cable to provide the power and I2C data • Remove an Instruction Æ “Delete” key
link to it. • Data: 0 to 9 + A to F keys
2. Linking two evaluation boards using a very
DesignCon 2003 TecForum I2C Bus Overview
long telephony cable, say 10 m/33 ft or even 87
more.
3. Linking the evaluation board via a USB cable Slide 87
to the I2CPORT v2 adapter card. It allows a
more convenient separation up to 5 m. Just Slide 87 shows how easy it is to program the universal
include the USB adapter card. programming screen.
4. Expanding to another fully standard I2C bus
operating at any desired voltage from 2 V to
15 V. Some others interesting Features
See AN10146-01 for full details.
• I2C clock frequency can be modified (Options Menu).
• Acknowledge can be ignored for stand alone experiment
(Options Menu).
Universal Receiver / Transmitter Screen
• Universal Transmitter/Receiver program can be saved in a file.
• Device specific screens are different depending on the selected device.
All the options are usually covered in those screens.
Good tool to learn how the devices work and test all the features.
Commands
Programming • Possibility to build some small applications by connecting the devices
together through the headers.
I2C
sequencing DesignCon 2003 TecForum I2C Bus Overview 88
parameters
Slide 88
Sequencer
Send
selected
Sequence
programming
Programmable delay
between the messages There are many interesting features in the Win-I2CNT
message
DesignCon 2003 TecForum I2C Bus Overview 86 system that can help experiment with the new I2C
devices.
Slide 86
30
AN10216-01 I2C Manual
How to Order the I2C 2002-1A Evaluation Kit http://300pinmsa.org/document/MSA_10G_40G_TRX_
I2C_Public_Document_02_19APR02.pdf
So the idea is to look to any general systems that use
How To Obtain the New Evaluation Kit dynamic address allocation (even including ones that do
not use I2C hardware) to find the software design ideas
• The I2C 2002-1A Evaluation Board Kit consists of the:
– I2C 2002-1A Evaluation Board
for building these systems.
– I2CPort v2 Adapter Card for the PC parallel port
– 4-wire connector cable
– USB Adapter Card (no USB cable included)
– 9 V power supply
– CD-ROM with operating instructions and Win-I2CNT software on I2C Bus Vs SMBus - Electrical Differences
that provides easy to use PC graphical interface specific to the I2C
devices on the evaluation board but also with general purpose
mode for all other I2C devices.
Slide 89
Comparison of I2C with SMBus Low Power version of the SMBus Specification only
"Address Resolution Protocol" that can make dynamic – Maximum clock frequency = 100 kHz
– Clock timeout = 35 ms
address allocations.
• Operating modes
"Dynamic reconfiguration: The hardware and software – slaves must acknowledge their address all the time
allow bus devices to be "hot-plugged" and used (mechanism to detect a removable device’s presence)
immediately, without restarting the system. The devices
are recognized automatically and assigned unique
addresses. This advantage results in a plug-and-play DesignCon 2003 TecForum I2C Bus Overview 94
31
AN10216-01 I2C Manual
bus (0 to 100 kHz, 0 to 400 kHz, 0 to 3.4 MHz). This
means that an I2C bus running at a frequency lower than Philips SMBus “high power” devices are also
10 kHz will not be SMBus compliant since the electrically compatible with I2C specifications but
specification does not allow it. SMBus devices from others may not always be
compatible with I2C. Philips I2C devices are electrically
Logic levels are slightly different also: TTL for SMBus: compatible with low power SMBus specifications but
low = 0.8V and high = 2.1V, 30%/70% VDD CMOS will not normally conform to all its software features
level for I2C. This is not a big deal if VDD > 3.0 V. If the like time-out.
I2C device is below 3.0 V then there is a problem since
the logic hi/lo levels may not be recognized. Example for a typical I2C slave device, the PCA9552. It
will be SMBus compliant if:
Timeout feature: SMBus has a timeout feature, resetting - 10 kHz < Fclock < 100 kHz
the devices if a communication takes too long (thus - It the device works in a 3.3V or higher
explaining the min clock frequency at 10 kHz). I2C can environment
be a "DC" bus meaning that a slave device stretches the
master clock when performing some routine while the Note: the PCA9552 will not be able to reset itself if the
master is accessing it. This will notify to the master: bus communication time is higher than the timeout
"I'm busy right now but I do not want to loose the value. That is pretty much the case for all Philips
communication with you, so hold on a little bit and I devices. Often the time-out feature can be added for a
will let you continue when I'm done" ... and a "little bit" few cents in discrete hardware. See Slide 57.
can be an eternity, (at least lower than 10 kHz).
SMBus protocol just assumes that if something takes Intelligent Platform Management Interface
too long, then it means that there is a problem in the bus (IPMI)
and that everybody must reset in order to clear this
mode. Slave devices are not then allowed to hold the Intel initiative in conjunction with hp, NEC and Dell
clock low too long. and consists of three specifications:
• IPMI for software extensions
Differences SMBus 1.0 and SMBus 2.0 • Intelligent Platform Management Bus (IPMB) for
Here is the statement from the SMBus 2.0 document: intra-chassis (in side the box) extensions
This specification defines two classes of electrical • Inter Chassis Management Bus (ICMB) for inter-
characteristics, low power and high power. The first chassis (outside of the box) extensions
class, originally defined in the SMBus 1.0 and 1.1
specifications, was designed primarily with Smart Needed since as the complexity of systems increase,
Batteries in mind, but could be used with other low- MTBF decreases. IPMI defines a standardized,
power devices. abstracted, message-based interface to intelligent
platform management hardware are defines
This 2.0 version of the specification introduces an standardized records for describing platform
alternative higher power set of electrical characteristics. management devices and their characteristics. IPMI
This class is appropriate for use when higher drive provides a self monitoring capability increasing
capability is required, for example with SMBus devices reliability of the systems
on PCI add-in cards and for connecting such cards
across the PCI connector between each other and to IPMI
SMBus devices on the system board. Provides a self monitoring capability increasing
reliability of the systems
Devices may be powered by the bus VDD or by another Monitor server physical health characteristics:
power source, VBus, (as with, for example, Smart • Temperatures
Batteries) and will inter-operate as long as they adhere • Voltages
to the SMBus electrical specifications for their class. • Fans
• Chassis intrusion
Philips devices have a higher power set of electrical
characteristics than SMBus1.0.
General system management:
• Automatic alerting
Main parameter is the current sink capability with Vol
• Automatic system shutdown and re-start
= 0.4V.
- SMBus low power = 350 uA • Remote re-start
- SMBus high power = 4 mA • Power control
- I2C = 3 mA
32
AN10216-01 I2C Manual
More information:
www.intel.com/design/servers/ipmi/ipmi.htm Overall IPMI Architecture
ICMB
33
AN10216-01 I2C Manual
Use of IPMI within PICMG Slide 106 shows one of the two redundant buses that
would interface through the PCA9511 or
Known as Specification Based on Comments
AdvancedTCA PICMG 3.x IPMI 1.5 Dual redundant hot swap IPMB mandatory
VME
• PICMG 2.0: CompactPCI Core
• Motorola, Mostek and Signetics
• PICMG 2.9: System Management cooperated to define the standard
• PICMG 3.0: AdvancedTCA Core • Mechanical standard based on the
• 3.1 Ethernet Star (1000BX and XAUI) – FC-PH links mixed with 1000BX Eurocard format.
• 3.2 InfiniBand® Star & Mesh • Large body of mechanical
• 3.3 StarFabric hardware readily available
• 3.4 PCI Express • Pin and socket connector scheme
is more resilient to mechanical wear
than older printed circuit board
DesignCon 2003 TecForum I2C Bus Overview 104
edge connectors.
• Hundreds of component
manufacturers support applications
Slide 104 such as industrial controls, military,
telecommunications, office automation
and instrumentation systems.
IPMI with additional extension is used as the basis for www.vita.com
PICMG 2.9 and PICMG 3.x. DesignCon 2003 TecForum I2C Bus Overview 107
Slide 107
Managed ATCA Board Example
VMEbus
VMEbus is a computer architecture. The term 'VME'
stands for VERSAmodule Eurocard and was first
coined in 1980 by the group of manufacturers who
defined it. This group was composed of people from
Motorola, Mostek and Signetics corporations who were
PCA9511 PCA9511
• Dual, redundant -48VDC power distribution to each
card w. high current, bladed power connector
cooperating to define the standard. The term 'bus' is a
• High frequency differential data connectors generic term describing a computer data path, hence the
• Robust keying block
• Two alignment pins name VMEbus. Actually, the origin of the term 'VME'
• Robust, redundant system management
• 8U x 280mm card size
has never been formally defined. Other widely used
• 1.2” (6HP) pitch definitions are VERSAbus-E, VERSAmodule Europe
• Flexible rear I/O connector area
PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511 PCA9511
34
AN10216-01 I2C Manual
I2C Device Overview
In addition, a mechanical standard based on the
Eurocard format was chosen. Eurocard is a term that
loosely describes a family of products based around the I2C Device Categories
DIN 41612 and IEC 603-2 connector standards, the
IEEE 1101 PC board standards and the DIN 41494 and • TV Reception • General Purpose I/O
IEC 297-3 rack standards. When VMEbus was first • Radio Reception • LED display control
developed, the Eurocard format had been well • Audio Processing • Bus Extension/Control
established in Europe for several years. A large body of • Infrared Control • A/D and D/A Converters
mechanical hardware such as card cages, connectors
• DTMF • EEPROM/RAM
and sub-racks were readily available. The pin and
socket connector scheme is more resilient to • LCD display control • Hardware Monitors
mechanical wear than older printed circuit board edge • Clocks/timers • Microcontroller
connectors.
The marriage of the VERSAbus electrical specification DesignCon 2003 TecForum I2C Bus Overview 110
35
AN10216-01 I2C Manual
• EEPROM: Electrically Erasable Programmable I2C devices are designed in the process that allows best
Read Only Memory, retains digital information electrical and ESD performance and are manufactured
even when powered down in Philips or third party fabs through out the world.
• Hardware Monitors: monitoring of the temperature Philips has taken the initiative to offer the same process
and voltage of systems in multiple internal fabs to provide redundancy and
• Microprocessors: Provides the brains behind the continuation of supply in any market condition.
I2C bus operation.
TV Reception
DesignCon 2003 TecForum I2C Bus Overview 111 DesignCon 2003 TecForum I2C Bus Overview 112
The frequency range of most of the newer I2C devices The I2C bus is used as a means to easily move control
is up to 400 kHz and we are moving to 3.4 MHz for or status information on and off the devices. The
future devices where typical uses would be in consumer SA56xx is given as an example of this type of device.
electronics where a DSP is the master and the designer
wants to rapidly send out the I2C information and then Radio Reception
move on to other processing needs.
Radio Reception
The operating range of most of the newer CMOS
devices is 2.3 to 5 V to allow operation at the 2.5, 3.3
and 5V nodes. Some processes restrict the voltage The TEA6845H is a
range to the 3.3 V node. Most customers have moved single IC with car
radio tuner for AM
from 5 V and are now at 3.3 V but several are moving and FM intended
for microcontroller
rapidly to 2.5 V and even 1.8 V in the near future. We tuning with the I²C-
bus. It provides the
are working on next generation general purpose devices following functions:
to support 1.8 V operation and currently have some
LCD display drivers that operate down to 1 V.
• AM double conversion receiver for LW, MW and SW (31 m, 41 m and 49 m
bands) with IF1 = 10.7 MHz and IF2 = 450 kHz
The operating temperature range is typically specified • FM single conversion receiver with integrated image rejection for IF = 10.7 MHz
at the industrial temperature range but again depending capable of selecting US FM, US weather, Europe FM, East Europe FM and Japan
FM bands.
on process or application, the range may be specified DesignCon 2003 TecForum I2C Bus Overview 113
36
AN10216-01 I2C Manual
chip and re-sent to the receiver chip, where it is stored chip voltage reference the PCD3311C and PCD3312C
in R.A.M., each time power is applied to the receiver. provide constant output amplitudes that are independent
of the operating supply voltage and ambient
Audio Processing temperature. An on-chip filtering system assures a very
low total harmonic distortion in accordance with CEPT
Audio Processing recommendations. In addition to the standard DTMF
The SAA7740H is a function-
specific digital signal processor.
frequencies the devices can also provide:
The device is capable of
performing processing for
• Twelve standard frequencies used in simplex
listening-environments such as modem applications for data rates from 300 to
equalization, hall-effects,
reverberation, surround-sound 1200 bits per second
and digital volume/balance
control. The SAA7740H can
• Two octaves of musical scales in steps of
also be reconfigured (in a dual semitones.
and quad filter mode) so that it
can be used as a digital filter
with programmable
characteristics. LCD Display Driver
The SAA7740H realizes most functions directly in hardware. The flexibility exists in
the possibility to download function parameters, correction coefficients and various
configurations from a host microcontroller. The parameters can be passed in real I2C LCD Display Driver
time and all functions can be switched on simultaneously. The SAA7740H accepts LCD Display Control
2 digital stereo signals in the I2S-bus format at audio sampling frequency (fast )
Display size:
and provides 2 digital stereo outputs. 2 line by 12 characters +
120 icons
DesignCon 2003 TecForum I2C Bus Overview 114
DDRAM SDA
Control
logic
CGRAM SCL
Sequencer
Row driver
Bias voltage Voltage
Supply
The I2C bus is used to control the audio and sound
generator multi-
plier
Column driver
balance.
The LCD Display driver is a complex device and is an
Dual Tone Multi-Frequency (DTMF) example of how "complete" a system an I2C chip can be –
it generates the LCD voltages, adjusts the contrast,
temperature compensates, stores the messages, has
DTMF/Modem/Musical Tone Generators CGROM and RAM etc etc.
DesignCon 2003 TecForum I2C Bus Overview 116
Slide 116
SDA
principally for use in telephone sets to provide the dual- Supply Bias voltage
generator
Both the devices can interface to I2C bus compatible Slide 117
microcontrollers for serial input. The PCD3311C can
also interface directly to all standard microcontrollers, The LCD segment driver is a less complex LCD driver
accepting a binary coded parallel input. With their on- (e.g., just a segment driver). Philips focus is for large
37
AN10216-01 I2C Manual
volume consumer display apps, which is right now recently developed and is technically the most
B&W and color STN LCD displays and in near future it advanced. The RTCs have one interrupt output and do
will be TFT and OLED (organic LED displays). The not track the exact year. This must be done in software
OLED drivers will most probably not be useable with by the customer. They do use a 4-year calendar base
conventional LEDs. and can count 255 years. PCF8583 has the added
advantage of 240 bytes of RAM integrated with the
VGA is beyond our current roadmap that stretches only RTC. This could be important if such small RAM is
up to about 1/4 VGA. This is simply because of the required then we replace two chips with one.
requirements that we see in the mobile telecomm
market, our main focus. We find already that I2C does General Purpose I/O Expanders
not give us enough transmission rate for display data so
serial bus is mainly intended for control and text I2C General Purpose I/O Expanders
overlay signals in such displays. General Purpose I/O
alternative analog
Supply input configurations
Interrupt
POR
≠
Light Sensor
Latches
SCL
Sub
address
decoder
Slide 118 shows a new innovation in light detectors that Quasi Output I2C I/O Expanders - Registers
uses the I2C bus to transfer information to and from the
sensor. • To program the outputs
Multiple writes are
OUTPUT possible during the
S Address W A A P
DATA
same communication
Real Time Clock/Calendar
• To read input values
Multiple reads are
INPUT possible during the
I2C Real Time Clock/Calendar S Address R A
DATA
A P
same communication
38
AN10216-01 I2C Manual
interrupt output to be included in addition to the WP.
The extra three pins are then used to offer a total of six True Output I2C I/O Expanders - Example
address pins allowing up to 64 of these devices to share Input Polarity Config Output
Reg# Reg# Reg# Reg#
the same I2C bus. The PTN devices are design for
1 0 1 X 1
telecom maintenance and control applications.
1 0 0 1 1
and sink current sources and does not rely upon a pull – Save GPIO’s in the microcontroller
up resistor to provide the source current. The four sets – Only 2 wires needed, independently of the numbers of signals
– Signal(s) can be far from the masters
of registers within the true outputs devices are
– Fast enough to control keyboards
programmable and provide for: Configuration (Input or
– Simplify the PCB layout
Output) control, Input (value), Output (value) or – Devices exist in the market and are massively used
Polarity (active high or low).
DesignCon 2003 TecForum I2C Bus Overview
The PCA9554/54A/55 devices have an interrupt output 125
39
AN10216-01 I2C Manual
tied up by sending repeated transmissions to blink
Signal monitoring and/or Control LEDs as is currently done when a GPIO is used. The
• Proposed devices PCA9530/31/32/33 and the PCA9550/51/52/53 provide
# o f O u tp u ts
In te rru p t a n d P O R a n d 2K In te rru p t, P O R the same amount of electrical sink capability as the
POR EEP RO M a n d 2K EEP RO M
Q u a si O u tp u t (20-25 m a sin k a n d 100 u A so u rce )
PCA9554/55/57 but have a built in oscillator and two
8 P CF 8574/74A P CA9500/58 P CA9501 I2C programmable blink rates.
16 P CF 8575/75C - -
SDA I2C-bus
interface
output can sink 25 mA of current with total package
Oscillator
SCL
Slide 127
40
AN10216-01 I2C Manual
I2C LED Blinkers and Dimmers I2C GPIO’s can be used to control LEDs in order to
Frequency
0 (00H)
40 Hz
255 (FFH)
6.4 s visual status, like for example blink slowly when in
0 Input
0 0 0 0 0
Register(s)
Duty Cycle 100 % 0.4 %
normal condition, blink faster in an alarm mode. The
0 (00H) 255 (FFH)
Frequency 160 Hz 1.6 s main disadvantages of this method are the following:
0 0 PWM0
0 0 0 0
• ON/OFF commands need to be sent all the time by
Duty Cycle 0% 99.6 %
PWM0 256 - PWM 0 Blinkers
0 0 0 0 0 0
256 256 Dimmers PSC0 the master
ON OFF ON OFF
• I2C bus can be tied by sending the ON/OFF
0 0 PWM1
0 0 0 0
PSC0 + 1 PSC0 + 1 commands when a lot of LEDs needs to be
160 40 0 0 0 0 0
PSC1 0
controlled
PWM1
256
256 - PWM1
256
• At least one timer in the master needs to be
ON OFF ON OFF ON
0 0 0Selector
LED 0 0 0 dedicated for this purpose
PSC1 + 1
160
PSC1 + 1
40
ON =
OFF =
LED ON
LED OFF
ON,
ON, OFF, BR1, BR2 • Blinking is lost if the I2C bus hangs or if the master
DesignCon 2003 TecForum I2C Bus Overview 128
fails
Slide 128
Using I2C for visual status
Slide 128 shows the register configuration of the LED • Products:
LEDSEL2 A LEDSEL3 A P
Slide 131
LEDSEL0 pointer = 05H for 2, 4 and 8-bit devices
LEDSEL0 pointer = 06H for the 16-bit devices
Only the 16-bit devices have 4 LED selector registers (8-bit devices have I2C LED blinkers provide an elegant autonomous
2 registers, 2 and 4-bit devices have only one)
DesignCon 2003 TecForum I2C Bus Overview 129
solution:
• They have an built-in accurate oscillator requiring
no external components
Slide 129
• They can be programmed in one I2C access (2
Slide 129 shows the programming sequence for the selectable fully programmable blinking rates)
LED Dimmers and Blinkers. • Output state (Blinking rate 1, Blinking rate 2,
Permanently ON, Permanently OFF) is
programmed in one I2C access anytime.
Using I2C for visual status Blinking is not lost, once the device is programmed, in
• Use LEDs to give visual interpretation of a specific action: case the bus hangs or the master fails.
– alarm status (using different blinking rates)
– battery charging status
• 1st approach: I2C GPIO’s See Application Note AN264 for more information on
– Advantage: the LED Dimmers/Blinkers.
– Simple programming
– Easy to implement
– Inconvenient:
– Need to continually send ON/OFF commands through I2C
– 1 microcontroller’s timer required to perform the task
– I2C bus can be tied up by commands if many LEDs to be controlled
– Blinking is lost if the I2C bus hangs
• 2nd approach: I2C LED Blinkers
– Advantage:
– One time programmable (frequency, duty cycle)
– Internal oscillator
– Easy to implement
– Device does not need I2C bus once programmed and turned on
DesignCon 2003 TecForum I2C Bus Overview 130
Slide 130
41
AN10216-01 I2C Manual
DIP Switch
I2C Dip Switches Mux
Select
I2C DIP Switches I2C
Bus I2C INTERFACE /
MUX Select Pin
Mode Selection
Non MUX Output Pin Write EEPROM Control
I2C Bus
Protect
Hardware Output
EEPROM
Pins
0 0EEPROM
0 0 00 0
Mux
0 0EEPROM
0 0 10 0
0 0EEPROM
0 0 20 0 MUX
Hardware Input
Pins 0 0EEPROM
0 0 30 0
• Non-volatile EEPROM retains values when the device is powered down
• Used for Speed Step™ notebook processor voltage changes when on 0HARDWARE
0 0 0 Value
0 0
AC/battery power or when in deep sleep mode
• Also used as replacement for jumpers or DIP switches since there is no
PCA9561
requirement to open the equipment cabinet to modify the jumpers/DIP 6 Bits
DesignCon 2003 TecForum I2C Bus Overview 133
switch settings
DesignCon 2003 TecForum I2C Bus Overview 132
Slide 133
Slide 132
The PCA9561 shown in Slide 133 is unique in that it
These devices were designed for use with Intel® has 6 hardware input pins and four internal 6-bit
processors to implement the Speed Step™ technology EEPROM registers. Output selection is possible
for notebook computers (selects different processor between any one of these five 6-bit values at any time
voltages when connected to AC power, the battery or in via the I²C bus. The EEPROMs have a 10 year memory
a deep sleep/deeper sleep mode), Dual BIOS selection retention and are rated for 3000 write cycles in the data
(select different operating systems during start-up). sheet but have been tested to 50,000 cycles with no
failures.
Designers have however found other uses for these
devices such as; VGA/Tuner cards (select the The hardware pins may not be used at all or may be
appropriate transmission standard), in inkjet printers used for a default manufacturing address. At
and are being used as replacement for jumpers or dip manufacturing, the I2C address of the targeted device
switches since the I²C controlled integrated EEPROM may be the one given by the default EEPROM values
and Multiplexer eliminates the need to open equipment (all Zero’s). If the customer wants to change the I2C
to modify the settings by hand, making it easier to address, he has to Address the Multiplexed/Latched
change settings and less likely to damage the EEPROM device (PCA8550, PCA9559, PCA9560 or
equipment. PCA9561) and program the EEPROM to the new value
they want.
I²C commands and/or hardware pins are used to select
between the default values or the setting programmed If they use the PCA9560 or PCA9561, 2 or 4 different
from the I2C bus and stored in the onboard I2C values can be already pre-programmed. Put the right
EEPROM register. These onboard values can be logic level(s) on the Mux_select pin(s) if necessary (to
changed at any time via the I²C bus. The non-volatile select the EEPROM values at the Mux input and
I²C EEPROM register values stay resident even when propagate them to the outputs (connected to the
the device is powered down. The devices power up with Address pins of the targeted I2C device). Address the
either the hardware pin inputs or the EEPROM0 targeted I2C device (programmed with the new I2C
register retained value on the hardware output pins address). Nice thing about using Multiplexed/Latched
depending on the position (H or L) of the Mux select EEPROM is that the configuration is not lost each time
pins. supply is powered down.
42
AN10216-01 I2C Manual
I2C Switches
Slide 134
Side 134 shows the typical program sequence for the I2C Bus 0
I2C Bus OFF
PCA9561. See Application Note AN250 for more I2C Bus 1
OFF
information on the DIP Switches. Reset I2 C Interrupt 0
Interrupt Out Controller Interrupt 1
Multiplexers and Switches
• Switches allow the master to communicate to one channel or multiple
I2C Multiplexers downstream channels at a time
• Switches don’t isolate the bus capacitance
• Other Applications include: sub-branch isolation and I2C/SMBus level
I2C Bus I2 C Bus 0
OFF shifting (1.8, 2.5, 3.3 or 5.0 V)
I2C Bus 1 DesignCon 2003 TecForum I2C Bus Overview 136
I2 C Interrupt 0
Interrupt Out
Controller Interrupt 1
Slide 136
FEATURES KEY POINTS
-Fan out main I2C/SMBus to multiple channels -Many specialized devices have only one I2C
-Select off or individual downstream channel address and sometimes many are needed in the The Switches allow multiplexing but also allow
-I2C/SMBus commands used to select
channel
same system.
-Multiplexers allow the master to communicate to multiple downstream channels to be active at the same
-Power On Reset (POR) opens all channels
-Interrupt logic provides flag to master for
one downstream channel at a time but don’t
isolate the bus capacitance
time that allows voltage level translation or load sharing
system monitoring. -Other Applications include sub-branch isolation.
applications. The I2C SCL/SDA upstream channel to
fan out to multiple SCx/SDx channels that are selected
DesignCon 2003 TecForum I2C Bus Overview 135
by the programmable control register. The Switches
can select individual SCx/SDx channels one at a time,
Slide 135 all at once or in any combination through I2C
commands and very primary designed for sub-branch
The multiplexer allows multiplexing multiple I2C isolation and level shifting but also work fine for
devices with the same I2C address. The I2C SCL/SDA address conflict resolution (Just make sure you do not
upstream channel to fan out to multiple SCx/SDx select two channels at the same time). Applications are
channels that are selected by the programmable control the same as for the multiplexers but since multiple
register. The I²C command is sent via the main I²C bus channels can be selected at the same time the switches
and is used to select or deselect the downstream are really great for I2C bus level shifting (e.g.,
channels. The Multiplexers can select none or only one individual SCx/SDx channels at 1.8 V, 2.5 V, 3.3 V or
SCx/SDx channels at a time since they were designed 5.0 V if the device is powered at 2.5 V).
primarily for address conflict resolution such as when
multiple devices with the same I2C address need to be A hardware reset pin has been added to all the switches.
attached to the same I2C bus and you can only talk to It provides a means of resetting the bus should it hang
one of the devices at a time. up, without rebooting the entire system and is very
useful in server applications where it is impractical to
These devices are used in video projectors and server reset the entire system when the I2C bus hangs up. The
applications. Other applications include: switches reset to no channels selected.
Address conflict resolution (e.g., SPD EEPROMs on
DIMMs).
43
AN10216-01 I2C Manual
Interrupt logic inputs and output are available on the The PCA9541/01 defaults to channel 0 on start up/reset.
PCA9543 and PCA9545 and provide a flag to the The device was designed for a company that wanted the
master for system monitoring. The PCA9546 is a lower device to connect master 0 to shared resources at start
cost version of the PCA9545 without Interrupt Logic. up so they wouldn't have to send any commands.
The PCA9548 provides eight channels and are more
convenient to use then dual 4 channel devices since the The PCA9541/02 defaults to channel 0 on start up/reset
device address does not have to shift. only after it has seen a stop command on bus 0. This is
our hot swap version, a requirement the company using
These devices do not isolate the capacitive loading on the PCA9541/01 didn't have (since they power down
either side of the device so the designer must take into
the system before cards are inserted or removed). This
account all trace and device capacitance on both sides
feature on the PCA9541/02 allows you to insert and
of the device (active channels only). Pull up resistors
remove cards without confusing the slave devices on
must be used on all channels.
the card by them being caught midway into an I2C
transmission if there is an active transmission on the
backplane/main bus.
I2C Multiplexers & Switches -
Programming The PCA9541/03 defaults to no channels selected on
• To connect the upstream channel to the selected start up/reset and one of the masters needs to command
downstream channel(s) the PCA9541/03 to select bus 0 or 1. We had some
S PCA954x
Address
W A
CHANNEL
SELECTION
A P
Selection is done at the
STOP command
customers interested in not connecting any bus until the
master was ready. This feature also allows the
• To access the downstream devices on the selected channel
PCA9541/03 to be used as a 'gatekeeper" multiplexer as
S
Device
Address
W A Command A P
described in the data sheet specific applications section.
Once the downstream channel selection is done, there is no need to
access (Write) the PCA954x Multiplexer or Switch
The device will keep the configuration until a new configuration is
required (New Write operation on the PCA954x) Master Selector in Multi-Point Application
DesignCon 2003 TecForum I2C Bus Overview 140
Slide 137
PCA9541
PCA9541
PCA9541
PCA9541
PCA9541
PCA9541
PCA9541
PCA9541
Master 0
Master 1
Slide 137 shows a typical programming sequence. See
Application Note AN262 for more information on the
switch/multiplexers.
Slide 138
44
AN10216-01 I2C Manual
Bus Repeaters and Hubs
Master Selector in Point-Point Application
I2C Bus Repeater and Hub
PCA9541
Master 0
Master 1
400 pF
SCL0 SCL1
400 pF
400 pF
400 pF 400 pF
SDA1
PCA9541
SDA0
Master 0
Master 1
400 pF 400 pF
Enable
I2C Bus Repeater
PCA9541
5-Channel I2C Hub
Master 0
Master 1
PCA9515
PCA9516
• Bi-directional I2C drivers isolate the I2C bus capacitance to each segment.
PCA9541
• Multi-master capable (e.g., repeater transparent to bus arbitration and
Master 0
Master 1
contention protocols) with only one repeater delay between segments.
• Segments can be individually isolated
• Voltage Level Translation
DesignCon 2003 TecForum I2C Bus Overview 139
• 3.3 V or 5 V voltage levels allowed on the segment
DesignCon 2003 TecForum I2C Bus Overview 142
Slide 140
Slide 142
PCA9541 in a point to point application where there are
two dedicated buses to each slave card for even higher These bi-directional I2C drivers enable designers to
redundancy, such as a bent pin would not disable all the isolate the I2C bus capacitance into smaller sections,
cards. accommodating more I2C devices or a longer bus
length. The I2C specification only allows 400 pF load
Voltage Level Translators on the I2C bus and these devices can break the I2C bus
into multiple 400 pF segments.
I2C Bus Bi-Directional Voltage Level Translation
PCA9515 and PCA9516 applications include
1.8 V
5V
supporting the PCI management bus, > 8 PCI slots,
200 KΩ
1.5 V
1.2 V
1.0 V
GTL2002 isolating SMBus to hot plug PCI slots and driving I2C
VCORE
GND GREF
VCC
to multiple system boards. Either 3.3 V or 5 V voltages
SREF DREF
S1 D1 are allowed on each segment to allow devices with
CPU I/O Chipset I/O
S2 D2
different voltages ranges to be used on the same bus.
The devices are transparent to bus arbitration and
• Voltage translation between any voltage from 1.0 V to 5.0 V
• Bi-directional with no direction pin
contention protocols in a multi-master environment.
• Reference voltage clamps the input voltage with low propagation delay
• Used for bi-directional translation of I2C buses at 3.3 V and/or 5 V to The PCA9518 expandable hub is designed to allow
the processor I2C port at 1.2 V or 1.5 V or any voltage in-between
• BiCMOS process provides excellent ESD performance
more multiple groups of 4 downstream channels.
DesignCon 2003 TecForum I2C Bus Overview 141
Hot Swap Bus Buffers
Slide 143
45
AN10216-01 I2C Manual
The PCA9511 hot swappable 2-wire bus buffer allows product’s internal I2C bus, will require safety
I/O card insertion into a live backplane without isolation.
corruption of the data and clock busses. Control • Medical equipment requires safety isolation of the
circuitry prevents the backplane from being connected patient connections. Any power for the isolated
to the card until a stop bit or bus idle occurs on the circuitry must be passed via isolating transformers.
backplane without bus contention on the card. When The data paths are sometimes transformer coupled
the connection is made, the PCA9511 provides bi- using carrier tones, but they could also be via opto-
directional buffering, keeping the backplane and card isolated I2C.
capacitances isolated. Rise time accelerator circuitry • Lamp dimmers and switches can be controlled over
allows the use of weaker DC pull-up currents while still I2C data links.
meeting rise time requirements. • Each light in a disco or live stage production could
have its own identity and be individually computer
During insertion, the SDA and SCL lines are controlled from a control desk or computer via I2C.
precharged to 1 V to minimize the current required to Dimming (phase control) can be done with small
charge the parasitic capacitance of the chip. micros or TCA280B from IES. Putting the phase
controller inside each lamp will make it easier to
The PCA9511 incorporates a digital ENABLE input meet EMC rules - lower power wiring radiation.
pin, which forces the part into a low current mode when
asserted low, and an open drain READY output pin, Applications requiring extension of the I2C bus (both
which indicates that the backplane and card sides are P82B715 and P82B96):
connected together. • Almost any application where a remote control
needs to be located some distance from the main
The PCA9512/13/14 are variants on the PCA9511. equipment cabinet, e.g. in medical or industrial
applications. Some safe distances the P82B715 or
The PCA9511DP is an alternate source for the Linear P82B96 can transmit I2C signals are:
Tech LTC4300-1I and the PCA9512DP is an alternate o P82B715: 50 Ω coax cable or twisted-
source for the Linear Tech LTC4300-2I. pair cables - 50 meters, 85 kHz
o P82B96: Telephone cable pairs or Flat
Ribbon Cable - 100 meters at 71 kHz or 1
Bus Extenders kilometer at 31 kHz
SCL
NO LIMIT to the number of
3.3/5 12V
connected bus devices !
Note: Schottky
diode or Zener
clamps may be 3.3V
needed to limit
spurious signals on
very long wiring SDA P82B96 P82B96 P82B96 P82B96
SCL
KEY POINTS P82B96
SDA/SCL SDA/SCL SDA/SCL
SDA
High drive outputs are used to extend
the reach of the I2C bus and exceed
the 400 pF/system limit. Link parking meters Link vending machines Warehouse
Possible distances range from 50 and pay stations to save cell phone links pick/pack
•-- systems
•--
meters at 85kHz to 1km at 31kHz over •--
•--
•-- • Factory automation
twisted-pair phone cable. •--
•--
Bus Buffer has split high drive outputs •--
•--
• Access/alarm systems
I2C Bus Extender allowing differential transmission or •-- •--
Dual Bi-Directional Bus Buffer •-- • Video, LCD & LED display signs
Opto-isolation of the I2C Bus. •--
•--
P82B715 •--
P82B96 • Hotel/motel management systems
DesignCon 2003 TecForum I2C Bus Overview 144 • Monitor emergency lighting/exit signs
Slide 144
Slide 145
Applications requiring opto-isolation of the I2C bus
(P82B96 only): The buffered 12V bus has exactly the same multi-drop
• Digital telephone answering machines (Philips characteristic as a standard I2C but the restriction to 400
PCD6001), Fax machines, feature phones and pF has been removed so there is no longer any
security system auto-dialers are connected to the restriction on the number of connected devices. P82B96
phone line and often powered from the 110/230 V alone can sink at least 30 mA (static specification, > 60
mains via double-insulated ‘plug-pack’ DC power mA dynamic) and there is no theoretical limitation to
packs. Many use Microcontrollers (e.g. providing further amplification. Just adding a simple
PCD33xx), and some will already have I2C buses. 2N2907A emitter-follower enables 500 mA bus sink
Any other interfaces, e.g. connecting to the capability.
46
AN10216-01 I2C Manual
Just adding a simple 2N2907A emitter-follower enables
With large sink currents it is possible to drive a special 500 mA sink capability.
type of low impedance “I2C” bus - say at 500 Ω, or
even down to 50 Ω. With the ability to use logic This allows longer distance communication on the I2C
voltages up to 15 V it is possible to drive hundreds of bus. See Application Note AN255 for more
meters of cable, providing the clock rate is decreased to information.
allow time for the signals to travel the long distances.
It’s possible to run 100 meters with at least 70 kHz and Electro-Optical Isolation
1kilometer at 30 kHz. That beats CAN bus, based on
useful byte rate! Changing I2C bus signals for Opto-isolation
3.3/5V
Vcc 1 Vcc 2
Note the special bus formed when the P82B96 Tx and SCL
sensors are linked to a pay station, some have credit Isolating medical equipment
card and pay-by-phone options. Groups of vending DesignCon 2003 TecForum I2C Bus Overview 147
P82B96
47
AN10216-01 I2C Manual
See Application Note AN255 Appendix 6 for Digital Potentiometers
differences between the LTC1694 and LCT1694-1.
Digital Potentiometers
Parallel Bus to I2C Bus Controller
• DS1846 nonvolatile (NV) tri-
potentiometer, memory, and
Parallel Bus to I2C Bus Controller MicroMonitor. The DS1846 is a highly
integrated chip that combines three
linear-taper potentiometers, 256 bytes of
EEPROM memory, and a MicroMonitor.
Chip Enable
The part communicates over the
Microcontroller
Write Strobe
I2C Interface
SCL
I2C-bus
interface
ADC /
DAC -
-
+
Analog to digital conversion is
2.3 to 3.6 V VCC and up to 400 kHz (slave mode) with -
+
+
-
used for measurement of the
size of a physical quantity
various enhancements added that were requested by
Sub +
address
decoder
Analog
reference (temperature, pressure …),
proportional control or
engineers. transformation of physical
amplitudes into numerical values
for calculation.
PCA9564 PCF8584 Comments Digital to analog conversion is
• 4 channel Analog to Digital
1. Voltage range 2.3-3.6V 4.5-5.5V PCA9564 is 5V tolerant • 1 channel Digital to Analog used for creation of particular
2. Max I2C freq. 360 kHz 90 kHz Faster I2C control voltages to control DC
motors or LCD contrast.
3. Clock source Internal External Less expensive/more
flexible DesignCon 2003 TecForum I2C Bus Overview 151
48
AN10216-01 I2C Manual
Serial RAM/EEPROM 2 is identical to the PCF85102C-2 except that the fixed
I2C address is different, allowing up to eight of each
I2C Serial CMOS RAM/EEPROMs device to be used on the same I2C bus.
EEPROM
Standard Sizes Supply
SDA
Hardware Monitors/Temp & Voltage Sensors
Address POR I2C-bus
pointer interface SCL
256 x 8-byte (2 kbit) 24C02 256
I2C-bus
512 x 8-byte (4 kbit) 24C04 Byte
Sub address
interface
Digital Temperature
• I²C bus is used to read and write information to and from the memory Sensor and Thermal
• Electrically Erasable Programmable Read Only Memory I2C Temperature Monitor Watchdog™ I2C Temperature and Voltage
• 1,000,000 write cycles, unlimited read cycles NE1617A LM75A Monitor(Heceta4)
• 10 year data retention NE1618 NE1619
DesignCon 2003 TecForum I2C Bus Overview 153
There are different kinds of memories in the line of I²C DesignCon 2003 TecForum I2C Bus Overview 154
8K ISP 512B
and provides the brains
100,000 to 1,000,000 times and have an infinite Analog
Comparators
Ports
0, 1, 2, 3
IAP Data
Flash EEPROM
768B
SRAM
0/1
16-bit
behind the I2C bus operation.
number of read cycles, while consuming only 10 600% Accelerated C51 Core
Power Management, RTC, WDT,
power-on-reset, brownout detect A bus controller adds I2C bus
micro amperes of current. capability to a regular
32xPLL
per byte.
Slide 155
The PCA8582C-2 is pin and address compatible to:
PCF8570, PCF8571, PCF8572 and PCF8581. The Microcontrollers are the brains behind the I2C bus
PCF85102C-2 is identical to the PCF8582C-2 with pin operation. More and more micros include at least one
7 (Programming time control output) as a ‘no connect’ I2C port if not more to allow multiple I2C buses to be
to allow it to be used in competitors sockets since PTC controlled from the same microcontroller.
should be left floating or held at VCC. The PCF85103C-
49
AN10216-01 I2C Manual
I2C Patent and Legal Information whatever. This also applies to FPGAs. However, since
the FPGAs are programmed by the user, the user is
The I2C bus is protected by patents held by Philips. considered a company that builds an I2C-IC and would
Licensed IC manufacturers that sell devices need to obtain the license from Philips.
incorporating the technology already have secured the
rights to use these devices, relieving the burden from Apply for a license or text of the Philips I2C Standard
the purchaser. A license is required for implementing License Agreement
an I2C interface on a chip (IC, ASIC, FPGA, etc). • US and Canadian companies: contact Mr.
Piotrowski ([email protected])
It is Philips's position that all chips that can talk to the • All other companies: contact Mr. Hesselmann
I2C bus must be licensed. It does not matter how this ([email protected])
interface is implemented. The licensed manufacturer
may use its own know how, purchased IP cores, or
ADDITIONAL INFORMATION
The latest datasheets for both released and sampling general purpose I2C devices and other Specialty Logic products can
be found at the Philips Logic Product Group website: http://www.philipslogic.com/i2c
Datasheets for all released Philips Semiconductors I2C devices can be found at the Philips Semiconductors website:
http://www.semiconductors.philips.com/i2c
More information or technical support on I2C devices can be provided by e-mail: [email protected]
APPLICATION NOTES
AN168 Theory and Practical Consideration using PCF84Cxx and PCD33xx Microcontrollers
AN256 PCA9500/01 Provides Simple Card Maintenance and Control Using I2C
50
AN10216-01 I2C Manual
ANZ96003 Using the PCF8584 with Non-Specified Timings and Other Frequently Asked Questions
51