Inter-Integrated Circuit (I2C)
I2C is another popular form of on board synchronous serial communication developed by NXP. It just
uses two wires for communication and so it is also referred as Two Wire Interface (TWI). Just like SPI,
I2C is widely used in interfacing real-time clocks (RTC), digital sensors, memory chips and so on. It is
as much as popular as SPI but compared to SPI it is slower and have some limitations. Up to 127 devices
can coexist in an I2C bus. In an I2C bus however it is not possible, by conventional means to interface
devices with same device IDs or devices with different logic voltage levels without logic level
converters and so on. Still however, I2C is very popular because these issues rarely arise and because
of its simplicity. Unlike other communications, there's no pin/wire swapping as two wires connect
straight to the bus – SDA to SDA and SCL to SCL.
Just like SPI, an I2C bus must contain one master device (usually a microcontroller) and one or more
slaves. The master is solely responsible for generating clock signals and initiating communication.
Communication starts when master sends out a slave's ID with read/write command. The slave reacts
to this command by processing the request from the master and sending out data.
To know more about I2C interface visit the following links:
•
https://learn.mikroe.com/i2c-everything-need-know/
•
https://learn.sparkfun.com/tutorials/i2c
•
http://www.ti.com/lsds/ti/interface/i2c-overview.page
•
http://www.robot-electronics.co.uk/i2c-tutorial
•
https://www.i2c-bus.org/i2c-bus/
•
http://i2c.info/
Other protocols like SMBus and I2S have similarities with I2C and so learning about I2C advances
learning these too.
Need help?
Do you have a question about the STM8 and is the answer not in the manual?
Questions and answers