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