What is I2C which is mean Inter Integrated Circuit???. The meaning is a circuit integrate each other. I2C communication as minimum two devices, master and slave. An one of circuit integration, it's only one of master device, but the slave are can be more than two devices.
Many application that using I2C communication in a system. Connection data is only using two communication lines, it’s SDA and SCL. SDA is Serial Data Address and SCL is Serial Clock. Both lines is continuously each other.
|
Figure 1. I2C configuration |
I try to explain as simply words of how I2C is working. Many kinds of explanation in the website. But it’s still makes confuse for they had never know what I2C is, where it used. I hope you can a bit understand how I2C data is transmit. My explanation is on I2C application in television tuner device.
IC Master is used to transmit information data of frequency and IC slave setting. And the IC slave is used to control the devices are connected. As like switching television channel broadcast, band frequency (VHF/ UHF) and anything else of IC setting needed.
A number of data are send to IC slave is 6 byte, 1 byte for Address byte, 2 bytes for frequency switching, 2 bytes for IC setting, 1 byte for switching band. It’s different in each device. You have to be read datasheet IC at first before controlling tha slaves.
As described by many sites, normal condition of SDA and SCL is high, it was supported by pull up circuit to make high logic in idle condition IC master.
|
Figure 2. Start and Stop condition |
How to make start and stop signal condition? Here is the beginning. Start signal is used to start sending data to the slave. Done with makes “0” on SDA at the SCL in “1” condition. And Stop signal is used for finish sending data to the slave. Can be done with makes “1” on SDA at the SCL in “1” condition.
Another I2C signal is acknowledge signal as we know as ACK. This signal is on the last of 1 byte data sending from master. About who is the sender of this signal? After I browse in search engine world, the sender is IC slave. It mean after 1 byte (8 bit) data are received.
|
Figure 3. ACK and NACK signal condition |
I2C data has a procedure are required set by international standardization.
As below:
Data transferred in idle condition data bus, another words is not busy line bus. In a data transfer process, Data condition is have to be stable on SDA signal as long as SCL condition is high “1”. Changing condition “1” to “0” or opposite on SDA is only can be changed as long as SCL in “0” condition. If changing condition in SDA at the SCL is high “1”, so it’s assume as Start or Stop signal.
|
Figure 4. I2C bus data condition |
SDA is send data to slave in every clock received.
Example of sending I2C data is going to describe In next post.
The application is for Television tuner IC.