I²C Protocol: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
The i2c Protocol was introduced by Philips as ''Inter-Integrated Circuit Protocol''. It's implemented as trivial 2-Wire Bus with one or more Masters and up to 127 clients.
The i2c Protocol was introduced by Philips as ''Inter-Integrated Circuit Protocol''. It's implemented as trivial 2-Wire Bus with one or more Masters and up to 127 clients. The two wire signals are called ''SDA'' (Serial Data) and ''SCL'' (Serial Clock).


Every i2c message consists of an address byte (7 bit address, 1 bit R/W#) and an arbitrary number of data bytes. The master starts transmission by issuing a ''START'' condition, then submitting the address byte to the bus. If any client with this i2c address is listening on the bus he acknowledges this address by pulling the ''SDA'' wire low for one clock.
The two wire signals are called ''SDA'' (Serial Data) and ''SCL'' (Serial Clock).

Every i2c message consists of an address byte (7 bit address, 1 bit R/W#) and an arbitrary number of data bytes.

The master starts transmission by issuing a ''START'' condition, then submitting the address byte to the bus. If any client with this i2c address is listening on the bus he acknowledges this address by pulling the ''SDA'' wire low for one clock.


For Write Transfers the master sends all following bytes to the bus and the client acknowledges each byte.
For Write Transfers the master sends all following bytes to the bus and the client acknowledges each byte.
Line 11: Line 7:
Read Transfers get acknowledged by the Master except the last byte (which does not gets acknowledged in order to signal the end of transmission).
Read Transfers get acknowledged by the Master except the last byte (which does not gets acknowledged in order to signal the end of transmission).


'''Please add a link to the Philips i2c spec here and it would be nice to have some pictures visualizing the protocol. Any contributors?'''
''Please add a link to the Philips i2c spec here and it would be nice to have some pictures visualizing the protocol. Any contributors?''


i2c is used mainly by European and Asian STB manufacturers as communication protocol between the Main Processor, [[Demodulator]]s and Tuner [[PLL]]s.

Since [[Philips Semiconductor]] did not released the Protocol to the public but tries to sell licenses there are some variations out there with slight modifications. They are usually called "2-wire Bus", "i2c-compatible Bus" or similar.

Alternative Inter-Circuit busses are [[SPI]] (fast, but more than 3 signals), the simple 8-bit Parallel Microcontroller Bus (fast but more than 8 signals), the 1-wire bus (usually very slow).

Revision as of 10:27, 13 September 2004

The i2c Protocol was introduced by Philips as Inter-Integrated Circuit Protocol. It's implemented as trivial 2-Wire Bus with one or more Masters and up to 127 clients. The two wire signals are called SDA (Serial Data) and SCL (Serial Clock).

Every i2c message consists of an address byte (7 bit address, 1 bit R/W#) and an arbitrary number of data bytes. The master starts transmission by issuing a START condition, then submitting the address byte to the bus. If any client with this i2c address is listening on the bus he acknowledges this address by pulling the SDA wire low for one clock.

For Write Transfers the master sends all following bytes to the bus and the client acknowledges each byte.

Read Transfers get acknowledged by the Master except the last byte (which does not gets acknowledged in order to signal the end of transmission).

Please add a link to the Philips i2c spec here and it would be nice to have some pictures visualizing the protocol. Any contributors?


i2c is used mainly by European and Asian STB manufacturers as communication protocol between the Main Processor, Demodulators and Tuner PLLs.

Since Philips Semiconductor did not released the Protocol to the public but tries to sell licenses there are some variations out there with slight modifications. They are usually called "2-wire Bus", "i2c-compatible Bus" or similar.

Alternative Inter-Circuit busses are SPI (fast, but more than 3 signals), the simple 8-bit Parallel Microcontroller Bus (fast but more than 8 signals), the 1-wire bus (usually very slow).