I2C (Inter-Integrated Circuit)

/ UART  |   RS232  |   RS485  |   I2C  |   SPI  |   1 Wire  |   Parallel

Main Picture ref) AN10216-01 I2C MANUAL

1. I2C

     I2C(Inter-Integrated Circuit)는 Philips에서 개발한 통신 방식으로 기판 내에서 소자간의 통신에 주로 사용한다. I2C는 비동기 방식의 대표적인 통신방식으로 반드시 Master에 해당하는 Microcontroller 가 존재하여야하며 다른 소자들은 Master에 의존하여 통신하게 된다. I2C는 회로 기판 안(근거리)에서 최소의 선을 사용하여 간단한 통신을 위하여 만든 것으로 통신을 위하여 단지 두선 만을 사용하는데, 통신 방법은 신호의 기준을 만들기 위한 SCL(Serial Clock 신호선)과 SDA(Serial Data를 주고 받기위한 신호선) 두 신호선만을 사용하여 통신하게 된다. 많은 소자 및 센서들이 I2C방식으로 그 출력값을 제공하고 있어 Microcontroller를 사용하여 어렵지 않게 센서의 출력을 읽을 수 있다. 또한 위의 그림과 같이 병렬방식으로 여러 소자를 연결(각 소자가 가지고 있는 주소에 따라 구별)할 수 있어 하나의 Microcontroller를 사용하여 여러종류의 소자를 병렬 연결 사용가능하다.

     Microcontroller를 사용하여 I2C 소자를 다루기 위해서는 I2C 통신법을 이해하여야 한다. I2C 통신은 크게 Start, Write, Read, 그리고 Stop 등4 단계로 나눌 수 있다. 각단계에 따른 신호들에 대한 이해는 I2C 소자를 다루기 위해서는 반드시 필요하다.

     1) Start: I2C 통신 시작
     2) Write: I2C 통신을 사용하여 소자에 데이타 쓰기
     3) Read: I2C 통신을 사용하여 소자로 부터 데이타 읽기
     4) Stop: I2C 통신 끝

2. Start/Stop

     I2C 통신은 Master와 소자간의 통신을 도


I2C Start


5. Write/Read


I2C Start




I2C 연결 방법


5. EEPROM

     24LC02는 2 Kbit EEPROM (Electrically Erasable PROM)으로 I2C 통신을 사용하는 대표적인 IC로 데이타를 쓰고 읽을 수 있는 8 핀 Memory이다. 24LC02 의 구조는 아래 그림과 같고 여러개의 소자를 연결하기위하여 소자의 주소 지정을 위한 3개의 핀(A0, A1, A2), 쓰기금지를 위한 1개의 핀(WP), 전원공급을 위한 2개의 핀(Vcc, Vss), 그리고 통신을 위한 SDA, SCL 핀으로 이루어져있다. 이러한 소형 메모리의 경우 전형적인 I2C 통신을 사용한다.


ref) http://ww1.microchip.com/downloads/en/devicedoc/21709c.pdf
2 Kbit I2C Serial Electrically Erasable PROM (EEPROM)


     24LC02를 사용하기위하여 Microcontroller를 사용하여야 하며 PIC16F18345와 연결한 모습이 아래 그림에 나타나있다.

I2C 연결 방법


참고:

     1. BASICS OF THE I2C COMMUNICATION PROTOCOL
     2. Basics of I2C communication | Hardware implementation of I2C bus