24LC16 (16K Bit I2C Serial EEPROM)

24LC16, 24LC02

     24LC16은 기억 용량이 16 kBit로 조금 적긴하지만 매우 유용한 전자소자이다. 이 소자는 I2C 통신방법으로 I2C를 이해하면 쉽게 다룰 수 있다.

     I2C 통신에 대한 이해는 PIC/Communication/I2C를 참고하기 바란다.

     24LC16은 아래 그림가 같이 8 핀 IC로 3개의 핀(1,2,3 번핀, A0,A1,A2)을 사용하여 하드웨어 주소를 정할 수 있으며, 쓰기 금지를 위하여 7번 핀, WP가 준비되어있다. I2C 통신은 5, 6번 핀을 통하여 할 수 있다.

          
ref) http://ww1.microchip.com/downloads/en/DeviceDoc/20002213B.pdf


연결 구성 회로

     24LC16을 사용하기 위한 회로는 아래와 같다. 여기서는 PIC의 15번(RC1), 16번(RC0) 핀을 각각 24LC16의 6번(SCL), 5번(SCL)핀과 연결하여 사용하였다. 물론 PIC의 다른 핀을 사용하여도 상관없다.


24LC02 또는 24LC16을 사용하여 Memory에 정보를 쓰고 읽기위한 회로


     위의 회로를 빵판에 구현한 그림이 아래에 나타나 있으며, 여기서는 연결의 간편성을 생각하여 PIC 20핀 다목적 PCB 기판인 ASL MP20을 사용하였다. ASL MP20은 PIC1618345 또는 PIC16F687을 사용한다. 어떠한 PIC를 사용하여도 상관없으며 다만 코딩 할때 IC를 설정해 주어야 한다.


24LC02 또는 24LC16을 사용하여 Memory에 정보를 쓰고 읽기위한 회로


Coding

아래 프로그래은 24LC02 또는 24LC16을 다루기 위한 코드로 여기서는 PIC16F687을 사용한 예이다.
프로그램을 작성하기 위하여 반드시 데이타시트를 참고하여야한다. 아래 코딩은 핀 설정, I2C Start 함수, Stop 함수, 1 Byte 쓰기 함수, 1 Byte 읽기 함수, 그리고 통신 확인을 위한 ACK 확인 함수(boolean ack_24LC16 (void))가 있으며, 데이타를 읽고 쓰기 위한 함수로 이루어져 있다.

//***********************************************************************
// 24LC16 Momory 다루기
//***********************************************************************  											 
                    
                                                     
//***********************************************************************  										 


위의 코딩을 실행한 결과



참고:

     1. 24LC16, 16K I2C Serial EEPROM
     2. 2K I2C™ Serial EEPROM
     3. I2C - Reading and Writing EEPROM
     4. I2C—I2C physical layer and protocol layer of reading and writing EEPROM