rtm1@thumper.bellcore.com (Ravi Masand) (12/07/88)
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. And if you know what it is, where can I find additional info on it ? Thank You. Ravi Masand Bellcore thumper!rtm1 P.S. I'm posting this for the second time. The first time, apparently, it went nowhere.
fnh@briar.philips.com (Fletcher Holmquist;6483;4.85;$0351) (12/08/88)
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
matthew@sunpix.UUCP ( Sun NCAA) (12/08/88)
Its an interchip serial communications protocol. Think of it this way. Most CPUs talk to their chips in a parallel fashion. The more chips there are, the pins there are, the more board real-estate is consumed to hold the chips. Now consider the devices you've mentioned. They really don't require the higher processing speed provided by parallel interchip communications, and they certainly could use a reduction in board real-estate. Sooner or later someone had to come up with a way for chips to talk serially. In steps Signetics/Philips with their "I2C bus" and "I2C bus compatible ICs". -- Matthew Lee Stier (919) 469-8300| Sun Microsystems --- RTP, NC 27560| "Wisconsin Escapee" uucp: {sun, rti}!sunpix!matthew |
Bill@ucl-cs.UUCP (12/08/88)
Yep, I used an I2C bus system about 3 yrs ago, so my recollection is a little vague, but it is a 3-wire serial data protocol with an arbitration system. The three lines were CLOCK, DATA, <something else - GND??> and you could have at least one MASTER device, and several SLAVE devices. We used only one master, so I never investigated the multimaster facility (if it existed!), and the protocol consists of the master looking at the lines to see if they are floating, and if they are it asserts an address which corresponds to a particular slave (slaves have the address hardwired in). If the slave needs data, then this is sent too. The clock is used to synchronise the data. Then the slave can reply with some response. The data speed goes up to about 500Kbits/s, I think. The maximum length of the bus line should not exceed about 2 metres or so because signals are asserted as LOW=0V, HIGH=Floating->5V. This is intended as a VERY ROUGH GUIDE!!! The information above should all be checked up - I did not design any I2C stuff, I just sent addresses and data to the I2C software that another guy wrote. The master, in our case, was a 6303 processor and the I2C was controlled by some general I/O lines. We used it to run a Mullard teletext controller/acquisition chip and a TV tuner chip - I forget the numbers. POINTS TO NOTE: The I2C protocol driver for one master was written in under a day, so it isn't too difficult. All device types that are used on the I2C bus will have a unique address code, which is shown in the data book for the device. Some (all?) also have another address, selectable by a pin, which can be used if you want two devices on the bus. Hope this is of some help, sorry I cannot recall more, but I don't have any of the design sheets anymore. Have fun! ... Bill ************************************************************************ Bill Witts, CS Dept. * Nel Mezzo del cammin di nostra vita UCL, London, Errrp * mi ritrovai per una selva oscura william@cs.ucl.ac.uk * che la diritta via era smarrita. ************************************************************************