AEGLOSLAB Arduino UNO Q 완전 가이드

제2부 하드웨어 심층

2.1 두 프로세서 아키텍처 — QRB2210 MPU와 STM32U585 MCU

UNO Q의 정체성은 "듀얼 브레인"이라는 한 문장에 담겨 있다. 보드 위에는 완전한 리눅스 컴퓨터급 프로세서(MPU, Microprocessor Unit)와 전통적인 아두이노급 마이크로컨트롤러(MCU, Microcontroller Unit)가 나란히 탑재되어 있고, 이 둘은 소프트웨어 계층(Bridge)으로 통신한다. 이번 장은 두 칩의 실제 스펙을 1차 자료로 교차검증하고, 왜 이렇게 분리했는지, 어떤 전압 도메인 위에서 동작하는지를 정리한다.

이 장의 수치는 다음 1차 자료를 직접 대조해 확인했다: Qualcomm 공식 제품 브리프(Qualcomm Dragonwing™ QRB2210 Processor Product Brief, 문서번호 87-61720-1 Rev. D), STMicroelectronics STM32U585 공식 데이터시트(DS13086), Arduino 공식 UNO Q User Manual(SKU: ABX00162-ABX00173, 2026-08-17 갱신본)이다. 각 절에 출처를 명시하고, 자료 간 표기가 갈리는 부분은 숨기지 않고 그대로 드러낸다.

2.1.1 왜 두 개의 브레인인가

클래식 아두이노 UNO는 마이크로컨트롤러 하나로 모든 일을 했다. 라즈베리파이는 리눅스 SoC 하나로 모든 일을 했다. UNO Q는 둘을 합쳤다 — 정확히는 "합친" 것이 아니라 역할을 분할했다.

  • MPU(QRB2210): 운영체제(Debian Linux)를 구동하고, 카메라·GPU·네트워크·AI 추론처럼 부하가 크고 비결정적(non-deterministic) 작업을 맡는다. 리눅스 스케줄러가 개입하는 이상 마이크로초 단위 타이밍은 보장하지 않는다.
  • MCU(STM32U585): Zephyr RTOS 위에 구축된 Arduino Core를 실행하며, GPIO·PWM·ADC·CAN처럼 정확한 타이밍이 필요한 실시간 제어를 맡는다. 리눅스가 재부팅되거나 멈춰도 MCU는 독립적으로 계속 동작한다.

두 프로세서는 각자 다른 전압 도메인에서 산다는 점이 중요하다 — MPU I/O는 1.8V, MCU I/O는 3.3V다. 이 차이는 이후 모든 장(핀아웃·고속 인터페이스·전원)에서 반복해서 등장하는 핵심 축이다.

USB-C 전원·USB 3.1·DisplayPort QRB2210 MPU Cortex-A53 ×4 @2.0GHz Debian Linux, 1.8V I/O VIN 7-24V (JANALOG1/JMEDIA1) Adreno 702 GPU @845MHz 듀얼 ISP 13MP+13MP Hexagon DSP 상시 구동
Bridge (RPC) QRB2210 MPU Cortex-A53 ×4 @2.0GHz Debian Linux, 1.8V I/O JMEDIA1·JMISC1 1.8V 고속 커넥터 STM32U585 MCU Cortex-M33 @160MHz Zephyr+Arduino Core, 3.3V I/O JDIGITAL1·JANALOG1 3.3V 실드 헤더

두 프로세서 사이의 통신(Bridge)은 별도 장(3.4 Bridge, 8.3 통신 지연 실측)에서 깊이 다룬다. 이 장에서는 "MPU가 서비스를 노출하고 MCU 스케치가 그 서비스를 호출하거나, 반대로 MCU가 알림을 푸시하는 RPC 계층"이라는 것만 언급하고 넘어간다 — Arduino 공식 User Manual은 이를 "type-safe function calls"와 "one-way notifications"를 지원하는 소프트웨어 계층으로 정의한다.

2.1.2 QRB2210 MPU — 애플리케이션 프로세서

Qualcomm Dragonwing™ QRB2210은 원래 로보틱스·IoT 시장을 겨냥한 저가형 SoC로, 스마트폰용 Snapdragon 라인이 아니라 산업/임베디드용 "Dragonwing" 브랜드에 속한다. Qualcomm 제품 브리프는 "Arduino Uno Q"를 자사의 공식 개발·평가 보드로 명시하고 있다 — 즉 UNO Q는 QRB2210의 레퍼런스 플랫폼 중 하나다.

2.1.2.1 CPU·GPU·DSP

항목사양출처
CPU64비트 쿼드코어 Kryo(Arm Cortex-A53 기반) @ 최대 2.0GHz, L2 캐시 512KBQualcomm 제품 브리프
GPUAdreno 702 @ 845MHz, OpenGL ES 3.1 / Vulkan 1.1 / OpenCL 2.0, 64비트 어드레싱 3D 가속기Qualcomm 제품 브리프, Arduino User Manual §8.1
디스플레이 처리Adreno DPU 920 — GPU(3D 렌더링)와는 별도 블록, MIPI-DSI 출력 전담Qualcomm 제품 브리프
DSPHexagon DSP, 듀얼코어, 상시 구동(always-on), 센서 퓨전·음성/오디오 처리·경량 AI 추론Qualcomm 제품 브리프
카메라 ISPQualcomm Spectra 340L, 18비트 듀얼 ISP — 13MP+13MP 동시 또는 25MP 단독, 30fps ZSL(Zero Shutter Lag)Qualcomm 제품 브리프
비디오 인코드/디코드H.264/H.265 1080p@30fps 인코드+디코드(하드웨어 가속), VP9는 디코드만 지원(인코드 불가)Arduino User Manual §8.2

Arduino 자체 실측 문서(User Manual)는 Mesa 오픈소스 드라이버 스택 기준으로 더 상세한 그래픽 수치를 제공한다.

항목값
클럭845MHz
메모리 구조통합 메모리(시스템 RAM과 공유)
GPU 가용 비디오 메모리1740MB (드라이버 보고값)
메모리 어드레싱64비트
최대 2D 텍스처16384×16384 픽셀
최대 3D 텍스처2048³ voxel
OpenGL Shading Language1.40
OpenGL ES Shading Language3.10 ES

⚠️ 확인 필요: "가용 비디오 메모리 1740MB"는 Arduino User Manual의 고정값 표기다. UNO Q는 LPDDR4X가 2GB 또는 4GB인 두 SKU가 있는데, 통합 메모리 구조상 실제 GPU 가용량은 총 RAM과 당시 시스템 부하에 따라 달라질 수 있다. 이 수치가 어느 SKU 기준인지는 문서에 명시되어 있지 않다.

⚠️ 확인 필요: 흔히 "6세대 Hexagon DSP"라는 표기를 접하게 되는데, 이는 Hexagon의 아키텍처 코드명 QDSP6("6세대 디지털 신호 프로세서")에서 온 것으로 보인다. Qualcomm 공식 QRB2210 제품 브리프에는 Hexagon DSP의 구체적 세대·버전 번호가 명시되어 있지 않다. "6세대"를 이 칩 고유의 버전 정보로 단정하지 말 것 — 확인되는 사실은 "듀얼코어, 상시 구동, 저전력 센서 퓨전/오디오/경량 AI"뿐이다. GPU·DSP를 활용한 AI 추론은 9.1에서 더 다룬다.

2.1.2.2 메모리·스토리지·연결성

항목사양
RAMLPDDR4X, 단일 랭크 32비트 — 2GB(ABX00162) 또는 4GB(ABX00173)
스토리지(eMMC)16GB(ABX00162) 또는 32GB(ABX00173), eMMC 5.1
무선Wi-Fi 5(802.11a/b/g/n/ac, 듀얼밴드) + Bluetooth 5.1, 콤보 칩 1개·안테나 공유
USBUSB 3.1(Type-C, 역할 전환 지원)
카메라 인터페이스4레인 MIPI-CSI-2 (칩 자체는 2개 ISP·최대 4레인×2 지원)
디스플레이 인터페이스4레인 MIPI-DSI

Qualcomm 범용 QRB2210 데이터시트는 칩 자체의 메모리 컨트롤러 사양을 "2×16비트 LPDDR4X @ 1804MHz + 1×32비트 LPDDR3 @933MHz, 논-POP 최대 4GB"로 적는다. Arduino 보드 사양(User Manual)은 이보다 구체적으로 "LPDDR4X 단일 랭크 32비트, 2GB 또는 4GB"라고 명시한다 — 보드에는 LPDDR4X 채널만 실장되어 있고 LPDDR3 옵션은 쓰지 않는 것으로 보인다.

$$ \text{이론적 최대 대역폭} \approx 32\,\text{bit} \times 1804\,\text{MT/s} \div 8 = 7216\ \text{MB/s} \approx 7.2\ \text{GB/s} $$

이 계산값은 공식 발표 수치가 아니라 저자가 버스 폭×데이터레이트로 산출한 이론적 상한이다. 실사용 대역폭은 리프레시·레이턴시·경합에 따라 이보다 낮다.

Wi-Fi/Bluetooth는 실리콘 자체 내장이 아니라 별도 콤보 칩이 담당한다 — 보드 실크스크린과 User Manual 부품 지정번호(U2901)에 따르면 WCBN3536A(Qualcomm WCN3980)이며, Wi-Fi는 SDIO로, Bluetooth는 UART로 MPU와 연결되고 안테나는 공유한다. Qualcomm의 QRB2210 범용 브리프는 칩 자체 옵션으로 "Bluetooth 5.0"을 언급하지만, 실제 보드에 실장된 WCN3980 콤보 칩은 Bluetooth 5.1을 지원한다 — 칩 자체 스펙과 보드 실장 부품 스펙이 다를 수 있다는 점에 유의한다.

2.1.2.3 운영체제와 커널 — Bookworm/Trixie 표기 문제

BOOK.md(BK-04)에서 이미 언급했듯, UNO Q의 Debian 버전은 자료마다 다르게 표기된다. 이번 조사에서 확인된 것:

  • Qualcomm 공식 QRB2210 제품 브리프(Rev. D, 2026)는 UNO Q를 자사 개발 플랫폼으로 소개하며 사양표에 "OS: Yocto Linux and Debian Trixie 13"이라 명시하고, 별도로 "Linux kernel v6.16"을 언급한다.
  • Arduino 자체 UNO Q User Manual은 버전 번호 없이 "Debian Linux OS"라고만 적는다.

두 자료가 완전히 일치하지 않으므로, 이 책에서는 "Debian Trixie(13)로 추정되며, 실제 보드에서 cat /etc/os-release로 재확인해야 하는 값"으로 취급한다. Debian 배포판 상세와 OS 관리는 3.1에서 다룬다.

2.1.3 STM32U585 MCU — 실시간 마이크로컨트롤러

STMicroelectronics STM32U585는 "울트라 로우파워" STM32U5 시리즈의 일원으로, Arm Cortex-M33 코어를 쓴다. UNO Q에서는 이 위에 Zephyr RTOS를 탑재하고, 그 위에 다시 Arduino Core(스케치 API)를 구축한 구조로 동작한다 — 클래식 UNO의 ATmega328P 위에서 스케치가 직접 하드웨어를 두드리던 것과 달리, UNO Q의 스케치는 Zephyr의 드라이버/스케줄러를 거친다.

항목사양출처
코어Arm Cortex-M33, TrustZone 지원, 단정밀도 FPU 내장ST 공식 데이터시트(DS13086)
클럭최대 160MHzST 데이터시트, Arduino User Manual
성능최대 240 DMIPSST 데이터시트
Flash2MBST 데이터시트, Arduino User Manual
SRAM786KBST 데이터시트, Arduino User Manual
보안Arm TrustZone, AES-128/256, PKA(Public Key Accelerator), OTFDEC(온더플라이 복호화), DPA(차분 전력 분석) 내성ST 데이터시트
I/O 전압3.3V (VREF+ ≈ 3.3V)Arduino User Manual §6.2
펌웨어 스택Zephyr OS + Arduino CoreArduino User Manual §2.2.1, §6.2

Arduino User Manual은 MCU의 역할을 이렇게 요약한다: "STM32U585가 ADC, PWM, CAN, LED 매트릭스, 그리고 3.3V 헤더(JDIGITAL1, JANALOG1, JSPI1, Qwiic)를 관리한다." 즉 사용자가 다루는 거의 모든 GPIO 핀은 MCU 소관이고, MPU는 카메라·디스플레이·네트워크 같은 고속·고레벨 인터페이스만 직접 담당한다.

클래식 UNO(ATmega328P, 16MHz, 32KB Flash, 2KB SRAM)와 비교하면 STM32U585는 클럭 10배, Flash 64배, SRAM 393배에 달한다 — MCU 단독으로도 이미 클래식 UNO보다 훨씬 강력한 실시간 컨트롤러다. Zephyr 기반 Arduino Core의 소프트웨어 구조는 3.2에서 별도로 다룬다.

2.1.4 전압 도메인 구성 — 1.8V / 3.3V / 5V

두 프로세서의 역할 분담은 전압 도메인 분리와 정확히 겹친다. 이 구성을 숙지해 두면 핀아웃(2.2)·고속 인터페이스(2.3)에서 혼동할 일이 없다.

보드 전원 (5V_SYS) 1.8V 도메인 MPU(QRB2210) I/O 3.3V 도메인 MCU(STM32U585) I/O 5V 패스스루 (전원 전용, 신호 아님) JCTL1 전체 JMEDIA1 전체 JMISC1 일부(SoC_ GPIO_*) JDIGITAL1, JANALOG1, JSPI1, Qwiic, JMISC1 일부(MCU_ *) JSPI1 5V핀, JANALOG1 +5V USB핀 (모두 전원 공급 전용)
  • 1.8V: QRB2210(MPU)의 GPIO·MIPI-CSI/DSI·오디오 엔드포인트가 이 전압에서 동작한다. JCTL1(디버그) 헤더 전체와 JMEDIA1 커넥터 전체가 1.8V다.
  • 3.3V: STM32U585(MCU)의 GPIO·ADC·PWM이 이 전압에서 동작한다. 클래식 UNO 실드가 장착되는 JDIGITAL1·JANALOG1 헤더, JSPI1(ICSP 상당), Qwiic이 모두 3.3V다.
  • 5V: 신호 전압이 아니라 전원 공급 전용이다(JSPI1의 +5V핀, JANALOG1의 +5V USB VBUS핀). 여기에 로직 신호를 인가하면 안 된다.
  • JMISC1는 혼합 도메인이다 — 같은 60핀 커넥터 안에 3.3V MCU 신호(PSSI, SDMMC1, TRACE, I2C4, OPAMP1)와 1.8V MPU 신호(SoC_GPIO_*, 카메라 제어 I2C)가 나란히 나온다. 캐리어 보드를 설계하거나 외부 로직을 연결할 때는 핀 단위로 전압을 반드시 확인해야 한다.

⚠️ 가장 중요한 실전 함정: 클래식 UNO나 대부분의 5V AVR 보드용 실드는 신호 레벨이 5V다. UNO Q의 실드 헤더(JDIGITAL1·JANALOG1)는 3.3V 로직이다 — 폼팩터는 호환되지만 전기적으로는 호환되지 않는 5V 전용 실드가 존재한다. 자세한 대응은 10.2(UNO 실드 호환성과 3.3V 주의점)에서 다룬다.

2.1.5 보드 위의 주요 지원 칩

핀아웃 문서와 User Manual 블록도에서 확인되는 QRB2210·STM32U585 외의 핵심 부품:

부품 지정번호칩역할
PMIC1Qualcomm PM4125전력관리 IC(PMIC). 5V_SYS로부터 1.8V LDO(L15A)를 만들어 MPU I/O 전압을 공급
U3001ANX7625MIPI-DSI → DisplayPort Alt-Mode 브리지. USB-C를 통한 외부 모니터 출력을 담당
U2901WCBN3536A(Qualcomm WCN3980)Wi-Fi 5 + Bluetooth 5.1 콤보 무선 모듈
Q2801보호용 P채널 MOSFETUSB 호스트/OTG 동작 시 VBUS 역류·과전류를 차단

이 중 ANX7625는 USB-C 하나로 전원·데이터·영상 출력을 동시에 처리하는 비결의 핵심이다 — MPU의 MIPI-DSI 출력을 DisplayPort 신호로 변환해 USB-C의 SuperSpeed 차동쌍에 실어 보낸다. 이 경로는 JMEDIA1 헤더로 나가는 MIPI-DSI 신호와 멀티플렉싱(양자택일) 관계다. 자세한 내용은 2.3에서 다룬다.

2.1.6 기계적 개요

보드 크기는 68.58mm × 53.34mm로, 클래식 UNO의 외곽선·나사홀 배치를 그대로 따른다(Arduino User Manual §12). 다만 밑면 부품 높이를 2mm 이하로 억제해 캐리어 보드(UNO Media Carrier·UNO Breakout Carrier 등)를 스택할 수 있도록 설계했다 — 이는 2.3에서 다룰 JMEDIA1·JMISC1 커넥터가 보드 하단에 있기 때문이다.

2.1.7 요약 — 무엇을 확인했고, 무엇이 남았나

확인됨(1차 자료 대조 완료):

  • QRB2210: 쿼드코어 Cortex-A53 @2.0GHz, Adreno 702 GPU @845MHz(OpenGL ES 3.1/OpenCL 2.0/Vulkan 1.1), 듀얼 ISP 13MP+13MP/25MP, H.264/H.265 1080p30 인코드+디코드(VP9는 디코드만), LPDDR4X 2GB/4GB, eMMC 16GB/32GB, Wi-Fi5+BT5.1(WCN3980).
  • STM32U585: Cortex-M33 @최대160MHz(240 DMIPS), 2MB Flash, 786KB SRAM, TrustZone/AES/PKA, Zephyr 기반 Arduino Core.
  • 전압 도메인: MPU 1.8V, MCU 3.3V, 5V는 전원 전용.
  • ANX7625(DSI→DP 브리지), PM4125(PMIC), WCN3980(무선) 등 보드 지원 칩 구성.

확인 필요(단정하지 않음):

  • Hexagon DSP의 "세대" 번호(공식 자료에 명시 없음).
  • GPU 가용 비디오 메모리 1740MB가 어느 RAM SKU 기준인지.
  • Debian 버전이 정확히 Trixie 13인지(Qualcomm 자료는 명시, Arduino 자체 자료는 미명시 — 3.1에서 실기 확인 권장).

교차참조: 핀 단위 상세는 2.2(핀아웃과 GPIO·PWM·아날로그), 고속 인터페이스(MIPI CSI/DSI, JMEDIA1/JMISC1)는 2.3, 전원 설계는 2.4, Debian 배포판 상세는 3.1, Zephyr 기반 Arduino Core 내부는 3.2, Bridge(프로세서 간 통신) 상세는 3.4·8.3, GPU·DSP를 활용한 AI 추론은 9.1, 실드 3.3V 호환성 주의는 10.2.