제2부 하드웨어 심층
2.2 핀아웃과 GPIO·PWM·아날로그
UNO Q는 클래식 Arduino UNO와 같은 헤더 배치(폼팩터)를 유지한다 — 하지만 그 핀들을 실제로 구동하는 것은 STM32U585 MCU이고, 신호 전압은 3.3V다(2.1.4에서 다룬 전압 도메인 참고). 이번 장은 Arduino 공식 UNO Q User Manual(SKU ABX00162-ABX00173, 2026-08-17 갱신본)과 공식 Full Pinout 문서(2026-02-17 갱신본)를 1차 자료로 삼아, 실제 핀 번호·대체 기능·전압 한계를 표로 정리한다. 두 문서는 같은 넷 이름을 쓰므로 상호 검증했다.
2.2.1 헤더 개관
UNO Q의 커넥터는 이름과 위치가 정해져 있다.
| 커넥터 | 위치 | 핀 수 | 전압 도메인 | 기능 |
|---|---|---|---|---|
| JDIGITAL1 | 상단(A2) | 18핀 | 3.3V | 디지털 I/O, SPI/I2C/UART/PWM/CAN |
| JANALOG1 | 하단(A3) | 14핀 | 3.3V(+전원 핀) | 아날로그 입력, 전원 입력/출력 |
| JSPI1 | 상단(A5) | 6핀 | 3.3V+5V전원 | ICSP 상당(전용 SPI) |
| QWIIC1 | 상단(A4) | 4핀 | 3.3V | I2C(Qwiic 생태계) |
| JCTL1 | 상단(A1) | 10핀 | 1.8V | 디버그·복구(MPU 도메인) |
| JMISC1 | 하단(B1) | 60핀 | 혼합(1.8V/3.3V) | MCU 확장 + MPU GPIO/오디오 |
| JMEDIA1 | 하단(B2) | 60핀 | 1.8V | MIPI CSI/DSI |
이 중 JDIGITAL1·JANALOG1·JSPI1·QWIIC1·JCTL1은 이 장에서 다루고, JMISC1·JMEDIA1(카메라/디스플레이 고속 인터페이스)는 2.3에서 깊이 다룬다.
2.2.2 디지털 I/O — JDIGITAL1
클래식 UNO와 동일하게 D0~D13이 기본이고, UNO Q는 여기에 D20·D21(I2C 전용 확장 핀, UNO R4 계열과 유사한 패턴)을 더한다. 총 16개의 범용 디지털 핀 + GND + AREF(기준전압 핀, GPIO 아님)로 18핀을 구성한다.
| 핀 | MCU 핀 | 기본 대체 기능 | PWM | 비고 |
|---|---|---|---|---|
| D0 | PB7 | USART1_RX, TIM4_CH2 | 시리얼 RX (클래식 UNO와 동일 배치) | |
| D1 | PB6 | USART1_TX, TIM4_CH1 | 시리얼 TX | |
| D2 | PB3 | TIM2_CH2 | ||
| ~D3 | PB0 | OPAMP2_OUTPUT, TIM3_CH3 | ✅ | TT-type I/O, 3.6V까지만 허용 — 5V 절대 금지(모든 모드에서) |
| D4 | PA12 | FDCAN1_TX, TIM1_ETR | CAN 버스 TX | |
| ~D5 | PA11 | FDCAN1_RX, TIM1_CH4 | ✅ | CAN 버스 RX |
| ~D6 | PB1 | TIM3_CH4 | ✅ | |
| D7 | PB2 | TIM8_CH4N | ||
| D8 | PB4 | TIM3_CH1 | ||
| ~D9 | PB8 | TIM4_CH3 | ✅ | |
| ~D10 | PB9 | SPI2_SS(칩 셀렉트), TIM4_CH4 | ✅ | |
| ~D11 | PB15 | SPI2_MOSI(CIPO/COPI 표기 이전 명칭 MISO/MOSI), TIM1_CH3N | ✅ | |
| D12 | PB14 | SPI2_MISO, TIM1_CH2N | ||
| D13 | PB13 | SPI2_SCK, TIM1_CH1N | ||
| GND | — | — | ||
| AREF | — | 아날로그 기준전압 입력 | GPIO 아님 | |
| D20 | PB11 | I2C2_SDA, TIM2_CH4 | UNO R4 계열과 유사한 확장 핀 | |
| D21 | PB10 | I2C2_SCL, TIM2_CH3 |
PWM 핀은 D3, D5, D6, D9, D10, D11 — 총 6개로, 클래식 UNO의 PWM 핀 번호(3, 5, 6, 9, 10, 11)와 정확히 같다. 스케치에서 analogWrite()를 쓰는 관행은 그대로 이어진다.
⚠️ 엣지케이스: 대부분의 JDIGITAL1 핀은 FT-type I/O 구조라 입력으로 쓸 때 5V 톨러런트지만, ~D3(PB0)만 예외다. PB0은 TT-type 구조로 절대 최대 정격이 약 3.6V(VDD+0.3V)다. 클래식 UNO 시절 D3에 5V 로직 소스를 무심코 연결하던 관행이 있다면 UNO Q에서는 이 핀에서 문제가 생길 수 있다.
2.2.3 아날로그 입력 — JANALOG1
아날로그 6채널(A0~A5)은 디지털 핀 번호로는 D14~D19를 겸한다(클래식 UNO와 동일한 관례).
| 핀 | MCU 핀 | 대체 기능 | 비고 |
|---|---|---|---|
| A0 / D14 | PA4 | ADC 입력, DAC0, TIM2_CH1 | 직결 ADC, 5V 비허용 |
| A1 / D15 | PA5 | ADC 입력, DAC1, TIM3_CH1 | 직결 ADC, 5V 비허용 |
| A2 / D16 | PA6 | ADC 입력, OPAMP2_INPUT+, TIM3_CH2 | |
| A3 / D17 | PA7 | ADC 입력, OPAMP2_INPUT− | |
| A4 / D18 | PC1 | ADC 입력, I2C3_SDA, LPTIM1_CH1 | I2C로 쓸 때 3.3V 전용 풀업 필요 |
| A5 / D19 | PC0 | ADC 입력, I2C3_SCL, LPTIM1_IN1 | I2C로 쓸 때 3.3V 전용 풀업 필요 |
- 아날로그 유효 입력 범위는 0 ~ VREF+ (≈3.3V). 절대 최대 정격은 VDD+0.3V(약 3.6V) — 이를 넘으면 MCU 내부 보호 다이오드가 도통을 시작한다.
- A0(PA4)·A1(PA5)은 STM32U585의 직결(direct) ADC 입력이라 5V 톨러런트가 아니다. 5V 센서를 그대로 연결하면 안 되고, 전압 분배기나 레벨시프터로 3.3V 이하로 낮춰야 한다.
- A4/A5를 I2C3로 쓸 경우 풀업 저항은 반드시 3.3V 레일에 연결한다(5V 풀업 금지).
JANALOG1은 아날로그 신호 외에 부트/리셋/전원 핀도 함께 묶여 있다:
| 핀 | 이름 | 기능 |
|---|---|---|
| 1 | BOOT | MCU 부트스트랩(MCU_BOOT0) |
| 2 | IOREF | 3.3V 레일을 그대로 미러링 — 출력 전용, 여기로 전압을 역으로 먹이면 안 됨 |
| 3 | RESET | MCU 리셋(MCU_NRST) |
| 4 | +3V3 | 3.3V 출력 |
| 5 | +5V USB VBUS | 5V 출력(USB 버스와 동일 net) — 전원 전용, 신호선 아님 |
| 6, 7 | GND | 그라운드 |
| 8 | VIN | 7~24V DC 입력(전원 전용) — 자세한 내용은 2.4 |
2.2.4 JSPI1 — ICSP에 해당하는 전용 SPI 헤더
클래식 UNO의 6핀 ICSP 헤더가 하던 역할을 UNO Q에서는 JSPI1이 맡는다(공식 명칭은 ICSP가 아니라 JSPI1다).
| 핀 | 이름 | MCU 핀 |
|---|---|---|
| 1 | MISO | PC2 (SPI2_MISO) |
| 2 | +5V | 5V_USB_VBUS(전원 전용) |
| 3 | SCK | PD1 (SPI2_SCK) |
| 4 | MOSI | PC3 (SPI2_MOSI) |
| 5 | RESET | MCU_NRST |
| 6 | GND | — |
FT-type 구조라 입력으로는 5V 톨러런트지만 출력은 3.3V로 구동한다 — 5V 입력 임계값이나 5V 양방향 신호가 필요하면 레벨시프터를 추가해야 한다는 것이 공식 문서의 권고다.
2.2.5 Qwiic 커넥터(QWIIC1)
JST-SH 4핀, 1.0mm 피치, 3.3V 전용 I2C 커넥터다. STM32U585의 I2C4 버스를 사용한다.
| 핀 | 기능 | MCU 핀 |
|---|---|---|
| 1 | GND | — |
| 2 | +3V3 (전원 출력) | — |
| 3 | SDA | PD13 (I2C4_SDA) |
| 4 | SCL | PD12 (I2C4_SCL) |
배선 순서(GND→3V3→SDA→SCL)는 SparkFun Qwiic 표준과 동일해 커넥터를 역방향으로 연결할 수 없는 극성 보호 구조다. Modulino 노드나 서드파티 Qwiic 센서를 납땜 없이 바로 연결할 수 있다. Qwiic 생태계 활용은 2.3.5, 서드파티 확장보드는 10.3에서 더 다룬다.
⚠️ 확인 필요: JMISC1 커넥터에도 MCU_I2C4_SCL(PF14)·MCU_I2C4_SDA(PF15)라는 이름의 핀이 별도로 존재한다. Qwiic의 I2C4(PD12/PD13)와 물리적으로 다른 MCU 핀이다 — STM32U585의 I2C4 페리페럴이 두 개의 대체 핀 매핑(AF) 중 하나로 라우팅될 수 있는 구조로 보이나, 두 커넥터가 논리적으로 같은 버스를 공유하는지 별개 버스로 취급해야 하는지는 공식 문서에 명시되어 있지 않다. 두 커넥터를 동시에 I2C 목적으로 쓸 계획이라면 실기로 확인할 것을 권한다.
2.2.6 JCTL1 — 디버그·복구 헤더 (1.8V, MPU 도메인)
JCTL1은 지금까지 다룬 다른 헤더들과 달리 MPU(1.8V) 도메인이다. 볼륨 업/다운 버튼, 강제 USB 부트, PMIC 리셋, 기본 디버깅 셸 시리얼(SE4 UART)이 여기 모여 있다.
| 핀 | 이름 | 기능 |
|---|---|---|
| 1 | GND | |
| 2 | USB_BOOT | 강제 USB 부트 스트랩 |
| 3 | VOL_DOWN | GPIO_36 |
| 4 | SOC_SE4_TX | 콘솔 UART TX(기본 디버깅 셸) |
| 5 | VOL_UP | GPIO_96 |
| 6 | SOC_SE4_RX | 콘솔 UART RX |
| 7 | GND | |
| 8 | PMIC_RESET | PM4125 리셋 |
| 9 | +1V8 | 1.8V 기준 출력 |
| 10 | VBUS_DISABLE | USB VBUS 경로 차단 제어 |
SE4 UART는 애플리케이션용 UART와 분리된 시스템 콘솔 전용이라 일반 I/O로 재활용하면 안 된다고 공식 문서가 명시한다. 공식 액세서리 "Arduino Bug Hopper"(USB-UART 브리지)가 바로 이 JCTL1 커넥터에 연결되어 시리얼 콘솔에 접근하는 용도로 나왔다. SSH가 아닌 시리얼 콘솔 복구는 5.2에서 다룬다.
2.2.7 추가 항목 — 온보드 LED 매트릭스와 RGB LED
핀맵 문서에 함께 표기되어 있어 밝혀 둔다. 별도 배선 없이 소프트웨어만으로 다룰 수 있는 온보드 디스플레이/인디케이터다.
- 8×13 모노크롬 청색 LED 매트릭스(104픽셀, MCU가 구동): 8단계 그레이스케일 지원. 부팅 시 약 20~30초간 부트 로고를 표시한다. ⚠️ MCU 초기화가 끝나기 전에 매트릭스에 접근하면 MCU 동작을 방해할 수 있다고 공식 문서가 경고한다.
- RGB LED 4개(모두 액티브-로우, 즉 논리
0에서 켜짐):- LED1(MPU 제어,
/sys/class/leds/로 노출): red:user→GPIO_41, green:user→GPIO_42, blue:user→GPIO_60 - LED2(MPU 제어, 기본값은 시스템 상태 표시): red:panic→GPIO_39, green:wlan→GPIO_40, blue:bt→GPIO_47
- LED3(MCU 제어): R→PH10, G→PH11, B→PH12
- LED4(MCU 제어): R→PH13, G→PH14, B→PH15
- LED1(MPU 제어,
- 전원 LED: 3.3V 레일에 직결된 녹색 인디케이터로, 보드 전원이 들어오면 항상 켜진다(소프트웨어 제어 불가).
- 전원 버튼(JBTN1): 5초 이상 길게 누르면 리눅스(MPU)만 재부팅한다 — 보드 전원 자체는 끊기지 않는다. 정상 부팅에는 버튼을 누를 필요가 없다(전원 인가 시 자동 부팅).
2.2.8 엣지케이스 요약
- 5V 톨러런스는 핀마다 다르다. 대부분의 JDIGITAL1 핀은 5V 입력을 허용하지만, ~D3(PB0)와 A0/A1(PA4/PA5)은 예외다. "클래식 UNO는 다 5V였으니 UNO Q도 그렇겠지"라는 가정이 가장 흔한 실수다.
- IOREF은 출력 전용이다. 여기로 외부 전압을 역으로 흘려보내지 말 것.
- *JMISC1의 SoC_GPIO_ 라인은 범용 GPIO가 아니다.** 리눅스 디바이스 트리에 특정 인터페이스(카메라 제어 I2C, I2S 오디오 등)용으로 예약되어 있어, 헤더에는 노출되어 있어도 임의 용도로 재핀맵할 수 없다.
- 클래식 UNO 실드와 폼팩터는 맞지만 전압은 다르다. 5V 전용 실드를 그대로 장착하면 STM32U585 핀이 절대 정격을 넘을 수 있다 — 자세한 대응은 10.2.
교차참조: 전압 도메인 전체 그림은 2.1.4, 고속 인터페이스(JMEDIA1·JMISC1의 카메라/디스플레이 신호, "40핀 헤더" 관련 정정)는 2.3, 전원 설계(VIN, 5V_SYS)는 2.4, 시리얼 콘솔·SSH 복구는 5.2, Qwiic·서드파티 확장보드는 10.3, UNO 실드 3.3V 호환성은 10.2, GPIO·센서 실전 예제는 4.3.