Re: [offtopic] Re: I2c was: Cobalt Micro (was Re: Build your own Mo therboards)

Philip Blundell (philb@gnu.org)
Wed, 09 Sep 1998 21:45:19 +0100


>Further, since everything is done in software, fast machines can send
>data faster than slow machines can receive it. This means the fast
>machine must artificially slow down data transmission to match the
>slowest receiver.
>
>This is an awful bus in all respects.

You're missing the point that IIC was intended as a bus that could be easily
and cheaply implemented on small ICs. It uses only two wires - pins are
expensive. The protocol is intentionally basic so you can use a fairly simple
state machine to run it. Incidentally, it's simply not true to say that
"everything is done in software". It's true that IIC *can* be implemented
purely in software, but then so can RS232.

IIC was never designed to be a general data interconnect system. The original
application was control of smart peripherals that didn't have or need a full
address/data bus, such as serial EEPROMs, real time clocks, teletext decoders
and the like.

>Since two (or more) parties can think the bus is free at the same
>time, clashes are possible. This will hang the IIC bus. Therefore,
>once the bus is crashed, both parties have to reinitialize their
>controllers to

IIC just doesn't support more than one master in any sensible way. Again this
was something that was never intended to work - you can't have two people
driving the clock at the same time.

p.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/faq.html