ESP32 환경에서 I2C 기반 기능 및 디바이스 분석
1. 개요
I2C(Inter-Integrated Circuit)는 저속·저전력 환경에서 다수의 주변장치를 연결하기 위한 직렬 통신 프로토콜이다. ESP32는 하드웨어 I2C 컨트롤러를 내장하고 있으며, 다양한 센서, 디스플레이, 전력 관리 IC, 확장 장치와의 연동에 최적화되어 있다.
본 리포트는 ESP32 환경에서 활용 가능한 I2C 기능을 체계적으로 정리하고, 대표 IC 및 적용 분야, 설계 시 고려사항을 분석하는 것을 목적으로 한다.
2. I2C 프로토콜 개요
2.1 기본 특성
- 통신 방식: SDA(Data), SCL(Clock) 2선식
- 주소 방식: 7-bit / 10-bit 주소
- 속도 모드:
- Standard Mode: 100 kHz
- Fast Mode: 400 kHz
- Fast Mode Plus: 1 MHz
- High-Speed Mode: 3.4 MHz (제한적)
2.2 ESP32 I2C 특징
- 하드웨어 I2C 컨트롤러 2개 내장
- 소프트웨어 I2C 구현 가능
- 멀티 마스터/슬레이브 지원
- DMA 및 인터럽트 활용 가능
3. I2C 기반 기능 분류
3.1 디스플레이 및 LED 제어
3.1.1 LED 드라이버 IC
IC제조사주요 기능특징
| HT16K33 | Holtek | 7세그, LED 매트릭스, 키패드 | MAX7219 대체 가능 |
| IS31FL3731 | ISSI | LED 매트릭스 | 고급 PWM 제어 |
| PCA9685 | NXP | 16채널 PWM | 서보/LED 제어 |
| TLC59116 | TI | 16채널 LED | 정밀 전류 제어 |
3.1.2 디스플레이 컨트롤러
IC유형특징
| SSD1306 | OLED | 저전력, 소형 디스플레이 |
| SH1106 | OLED | SSD1306 호환 |
| HD44780 + PCF8574 | LCD | I2C 확장 LCD |
3.2 GPIO 확장
3.2.1 I/O Expander
IC제조사채널 수특징
| PCF8574 | NXP | 8 | 저가, 범용 |
| PCF8575 | NXP | 16 | 확장형 |
| MCP23017 | Microchip | 16 | 인터럽트 지원 |
| TCA9555 | TI | 16 | 산업용 |
활용 사례:
- 버튼/스위치 입력 확장
- 릴레이 제어
- 키패드 구현
3.3 센서 인터페이스
3.3.1 환경 센서
IC측정 항목특징
| BME280 | 온도/습도/압력 | 복합 센서 |
| SHT31 | 온습도 | 고정밀 |
| BH1750 | 조도 | 광 센서 |
3.3.2 IMU 및 위치 센서
IC기능
| MPU6050 | 가속도/자이로 |
| ICM20948 | 9축 IMU |
| VL53L0X | 거리 측정 |
3.4 아날로그 확장 (ADC/DAC)
IC유형특징
| ADS1115 | ADC | 16-bit 고정밀 |
| MCP3421 | ADC | 저전력 |
| MCP4725 | DAC | 12-bit 출력 |
활용 분야:
- 정밀 센서 데이터 수집
- 산업용 신호 처리
3.5 전력 관리 및 배터리 모니터링
IC기능
| INA219 | 전압/전류 측정 |
| INA226 | 고정밀 전력 측정 |
| MAX17043 | 배터리 게이지 |
| BQ27441 | TI 배터리 관리 |
3.6 RTC 및 시간 관리
IC특징
| DS3231 | 고정밀 RTC |
| PCF8563 | 저전력 RTC |
3.7 메모리 및 저장장치
IC유형특징
| AT24C64 | EEPROM | 설정 저장 |
| MB85RC256 | FRAM | 고속, 내구성 |
3.8 인터페이스 확장
IC기능
| SC16IS750 | I2C → UART |
| TCA9548A | I2C 멀티플렉서 |
4. I2C 설계 시 고려사항
4.1 주소 충돌 문제
- 동일 주소 IC 사용 시 충돌 발생
- 해결 방법:
- 주소 변경 가능 IC 사용
- I2C 멀티플렉서(TCA9548A) 적용
4.2 풀업 저항 설계
- SDA/SCL 라인에 풀업 저항 필수
- 일반 권장값: 2.2kΩ ~ 10kΩ
4.3 버스 길이 및 노이즈
- 배선 길이 증가 시 신호 품질 저하
- 클럭 속도 조정 필요
4.4 ESP32 성능 최적화
- DMA 활용
- 인터럽트 기반 처리
- 클럭 속도 조정 (100kHz ↔ 400kHz)
5. I2C vs SPI 비교 분석 (ESP32 기준)
항목I2CSPI
| 배선 수 | 2 | 4 이상 |
| 속도 | 중간 | 고속 |
| 확장성 | 높음 | 낮음 |
| 전력 효율 | 우수 | 보통 |
| 구현 난이도 | 낮음 | 중간 |
결론:
- 센서, UI, IoT 시스템: I2C 최적
- 고속 디스플레이, 대용량 데이터: SPI 권장
6. 결론
ESP32 환경에서 I2C는 단순 통신 인터페이스를 넘어 시스템 확장의 핵심 인프라 역할을 수행한다.
특히 다음과 같은 영역에서 가장 높은 효율을 보인다.
- 센서 네트워크 구축
- 디스플레이 및 UI 구현
- GPIO 및 아날로그 확장
- 전력 및 배터리 관리
따라서 ESP32 기반 시스템 설계 시, I2C는 필수적으로 고려해야 할 핵심 인터페이스로 평가된다.
728x90
'Hardware > ESP32' 카테고리의 다른 글
| ESP32 서보모터 최대 갯수 (0) | 2026.02.06 |
|---|---|
| ESP32 지원 센서 종류 (0) | 2026.02.04 |
| ESP8266 + SH1106 조합형 한글 출력 #4(WebSerial) (0) | 2026.02.04 |
| ESP8266 + SH1106 조합형 한글 출력 #3 (0) | 2026.02.04 |
| ESP8266 + SH1106 조합형 한글 출력 #2(예제) (0) | 2026.02.04 |
