Lifelog/RC
16채널 12비트 PWM 서보모터 드라이버 모듈 (PCA9685)
sunshout1
2025. 6. 21. 15:16
PCA9685는 NXP(구 Philips)에서 제작한 16채널, 12비트 PWM 컨트롤러입니다. I2C를 통해 제어되며, 한 개의 보드로 최대 16개의 PWM 출력을 동시에 제어할 수 있습니다.
🔧 주요 스펙 요약
항목설명
제어 방식 | I2C (최대 1MHz Fast Mode 지원) |
출력 채널 수 | 16채널 (개별 제어 가능) |
PWM 분해능 | 12비트 (4096단계) |
PWM 주파수 | 24Hz ~ 1526Hz 설정 가능 |
동작 전압 | VCC: 2.3V ~ 5.5V (논리 회로용), V+ (모터용 전력): 최대 6V |
출력 드라이버 | 오픈 드레인 또는 토템 폴 |
주소 설정 | 6비트 주소 핀 → I2C 주소 최대 62개 보드 동시 제어 가능 (0x40 ~ 0x7F) |
🔌 전기적 연결 예 (Jetson Nano 기준)
Jetson NanoPCA9685설명
3.3V or 5V | VCC | 논리 회로 전원 |
GND | GND | 공통 그라운드 |
SDA (핀 3) | SDA | I2C 데이터 |
SCL (핀 5) | SCL | I2C 클럭 |
ESC나 서보에 공급되는 전원은 PCA9685의 V+ 핀을 통해 공급됨. Jetson Nano와는 별도의 파워 소스 (ex. 5V BEC, LiPo 배터리)를 사용해야 함.
🔢 PWM 동작 방식
- PWM은 4096단계(0~4095) 로 표현됨
- 하나의 PWM 주기 동안 특정 구간만 HIGH로 유지하여 펄스 폭을 조절함
- PWM 주파수는 24Hz ~ 1526Hz 범위 내에서 설정 가능
- 일반적인 서보나 ESC는 50Hz 사용
예시
- 50Hz 주파수 → 주기 20ms = 20000us
- 1000us → 약 5% duty cycle → 약 205 ticks
- 2000us → 약 10% duty cycle → 약 410 ticks
📌 I2C란?
I2C (아이투씨 또는 I-squared-C) 는 필립스(현 NXP)에서 개발한 양방향 2선식 직렬 버스 통신 프로토콜입니다.
- 2개의 신호선만 사용:
- SCL (Serial Clock Line) : 클럭 신호
- SDA (Serial Data Line) : 데이터 신호
- 멀티 마스터, 멀티 슬레이브 구성 가능
- 마스터가 클럭 제공, 슬레이브는 수동적
Jetson NANO 핀
* Jetson NANO에는 두 개의 I2C를 연결할 수 있다.
연결하기 전
sunshout@Bentley:~$ i2cdetect -y -r -a 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
sunshout@Bentley:~$
연결한 후
sunshout@Bentley:~$ i2cdetect -y -r -a 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
✅ I2C vs SPI vs UART 비교
항목I2CSPIUART
선 수 | 2 | 4+ (MOSI/MISO/SCLK/SS) | 2 (TX/RX) |
속도 | 중 (최대 3.4Mbps) | 빠름 (10+ Mbps 가능) | 느림 (115200bps 등) |
주소 지원 | O (7/10비트) | X (별도 SS 필요) | X (1:1 연결) |
동기/비동기 | 동기 | 동기 | 비동기 |
마스터/슬레이브 | 멀티 가능 | 단일 마스터 | 단일/양방향 (1:1) |
728x90