Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!ll-xn!ames!amdahl!pyramid!prls!philabs!fnh@briar.philips.com
From: fnh@briar.philips.com (Fletcher Holmquist;6483;4.85;$0351)
Newsgroups: sci.electronics
Subject: Re: I2C Bus
Message-ID: <40105@philabs.Philips.Com>
Date: 7 Dec 88 18:42:46 GMT
References: <1404@thumper.bellcore.com>
Sender: news@philabs.Philips.Com
Reply-To: fnh@briar.philips.com (Fletcher Holmquist;6483;4.85;$0351)
Organization: Replace me with your organization
Lines: 44
In-reply-to: rtm1@thumper.bellcore.com (Ravi Masand)

In article <1404@thumper.bellcore.com>, rtm1@thumper (Ravi Masand) writes:
>Anyone know what a I2C (I squared C) bus is ??
>I've just received a "I2C bus compatible ICs" data book from Signetics/Philips
>which has a lot of interesting devices (mostly audio/video and telephony)
>but which does not answer the above question.
>Ravi Masand  >Bellcore >thumper!rtm1

I2C stands for Inter-IC-Communications, and is Philips/Signetics scheme for 
connecting ICs with a serial bus.  It uses two wires (SDA-data, SDL-clock),
up to a 100KHz clock, terminated with pull-up resisters to +5v.  It uses a 
master/slave relation for transfers, with arbitration between competing
masters.  One always wins and the transfer it not corrupted, the loser(s)
must retransmit.  Addresses are software selectable with most masters, most
slave ICs have a few lo-bits that are selected via pins, with the hi-bits
fixed (e.g. the PCF8583 clock calender + 256 RAM is addrress as 101000x,
where x = 0 or 1).

The new Signetics books have the full specs, partial specs are part of the
specs for I2C devices themselves. [See the Microprocessor Data Book '88].
If you can't find these, send me mail (the 88 I2C book from Philips is
strangely lacking the specs).

The idea seems to be to interface DACs, ADCs, I/O expansion ports,
time-of-day clocks, small memories (RAM, EEPROM), and specialized radio/tv
ICs with a microcontroller.  It is also being used with the 68070 processor
(a 68000 with I2C, UART, MMU, Timers, ...) to implement cheap (low part count)
extensions.  The two wire scheme makes it much easier to add components, the
8-wire plus interrupt pain is gone.

If you want to play with it, I do have some simple 68000 code examples for
driving it.  I do not have any 8051 examples, however, and most of the
8-bitters having I2C are of that family.  The slave ICs, of course, handle
the protocol by themselves.

It is possible to emulate I2C using any microcontroller's serial port, but
it is not as easy as the dedicated port.
-- 
fletch holmquist			robotics and flexible automation
fnh@philabs.philips.com			philips laboratories
(914) 945-6483				345 scarborough road, ny, 10510
-- 
fletch holmquist			robotics and flexible automation
fnh@philabs.philips.com			philips laboratories
(914) 945-6483				345 scarborough road, ny, 10510