논리 레벨과 인터페이스: 3.3V와 5V 연결하기
몇 V부터 1로 읽히는지, 푸시풀과 오픈드레인은 무엇이 다른지, 전압이 다른 칩을 어떻게 연결하는지 정리했습니다.
논리 레벨
칩은 입력 전압이 일정 값 이상이면 1, 이하이면 0으로 읽습니다. 그 사이 구간은 정의되지 않습니다.
| 값 | 의미 | 3.3V CMOS 예 |
|---|---|---|
| VIH | 1로 읽는 최소 입력 | 약 2.0V |
| VIL | 0으로 읽는 최대 입력 | 약 0.8V |
| VOH | 1을 낼 때 최소 출력 | 약 2.4V 이상 |
3.3V MCU 출력(약 3.3V)을 5V TTL 입력(VIH 2.0V)에 넣는 것은 보통 괜찮지만, 5V CMOS 입력(VIH 3.5V)에는 모자랄 수 있습니다. 반대로 5V 출력을 3.3V 입력에 넣으면 칩이 망가질 수 있으니 핀이 5V 톨러런트(FT)인지 데이터시트에서 확인합니다.
푸시풀과 오픈드레인
- 푸시풀: 1일 때 전원으로, 0일 때 그라운드로 적극적으로 끌어당깁니다. 빠르고 일반적입니다.
- 오픈드레인: 0일 때만 그라운드로 당기고 1일 때는 손을 놓습니다. 외부 풀업 저항이 1을 만듭니다. 여러 칩이 한 선을 공유할 수 있어서 I2C가 이 방식입니다.
레벨 변환
단방향 신호는 저항 분압이나 전용 버퍼 칩으로, I2C처럼 양방향 오픈드레인 신호는 MOSFET 하나와 풀업 두 개로 된 레벨 시프터로 변환합니다.