안녕하세요. 오늘은 PCF8574에 대해 알아보겠습니다.
PCF8574란 I2C 통신을 통해서 입력 or 출력 8개를 사용할 수 있는 IC입니다. I/O가 부족할 때 사용하면 됩니다.
대표적인 사용예로는 아래의 그림과 같은 CLCD를 제어하려면 7핀(4비트모드) or 11(8비트모드)핀이 필요합니다. 4비트모드를 사용한다면 PCF8574 1개를 사용해서 I2C통신을 통해 CLCD를 제어할 수 있습니다.
*회로구성
제가 사용한 모델은 PCF8574P로써 DIP16타입입니다.
핀배치입니다.
A0~A2 : IC의 address설정
P0~P7 : I/O
SDA,SCL : I2C
VDD,VSS : 전원
INT : 인터럽트핀(통신할때 인터럽트가 발생한다는데 이 글이서는 인터럽트는 테스트하지 않습니다)
테스트를위해 보드를 만들었습니다. I2C통신을 하면서 P0~P7에 파형이 어떻게 측정되나 애날라이저로 보겠습니다. 참고로 I2C통신은 ATMEGA128을 사용합니다.
*ADDRESS설정
A0~A2핀에 LOW or HIGH를 입력하면 address가 설정됩니다. 저는 A0~A2를 모두 LOW로 설정했습니다
*SDA, SCL 라인설정
ATMEGA128에서 software 풀업저항을 사용해서 따로 저항은 연결 안했습니다. 그리고 통신속도는 100kHz입니다.
*OUTPUT
위의 프로토콜대로 I2C통신을 하면 됩니다.데이터ACK신호때 출력상태가 변합니다.
0x01 출력을 한 모습입니다. 초기에 HIGH상태에서 I2C 통신때 P0은 HIGH로, 나머지는 LOW로 변한 모습입니다.
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80을 순서대로 보낸 파형입니다. 순서대로 P0~P7핀이 HIGH로 변했습니다.
*INPUT
위의 프로토콜대로 I2C통신을 하면 됩니다. DATA는 P0~P7의 상태입니다.
초기 입력했을때 파형입니다. 이제 P0핀에 LOW / P7핀에 LOW를 넣어서 READ해보겠습니다.
P0,P7에 LOW를 넣었으므로 0x7E = 0b01111110정상적으로 읽었습니다.
*특이사항
P0~P7에 아무것도 연결을 안 하고 WRITE로 0x08를 하고 READ를 하면 0x08가 나옵니다. 여기에서 P0핀에 HIGH를 넣고 READ를 하면 0x09가 나옵니다. 여기에서 P0핀에있는 HIGH를 제거하고 READ를하면 0x08이 나옵니다.
결론적으로 WRITE를 한 핀의 상태 => 하드웨어적 핀의상태 => READ 하면 나오는 값입니다.
'각종 CHIP' 카테고리의 다른 글
CH341 칩을 이용해서 UART,I2C,SPI 통신하기 1편(기본 소개) (0) | 2024.11.23 |
---|---|
74HC573 알아보기 (0) | 2024.10.20 |
UART TO HID칩 알아보기(CH9329) (1) | 2024.06.02 |
SN74HC04N IC 알아보기 (0) | 2023.03.26 |
74HC595 알아보기입니다. (1) | 2017.05.17 |