Tech Tips/신기술,IT정보,팁

라즈베리파이의 첫번째 MCU, RP2040 및 라즈베리파이 피코 소개


오픈소스 하드웨어의 대표주자인 라즈베리파이는 최근까지도 AP의 빈약한 GPIO로 애플리케이션의 엔드포인트에 이렇다 할만한 개선점이 크게 없었습니다. 호환성을 위해 GPIO 핀맵을 고수한 점은 라즈베리파이 보드의 여러 제품들을 하나로 묶을 수 있는 큰 장점이였지만 해가 지남에 따라 GPIO를 제외한 AP 퍼포먼스, 입출력 포트 개선폭을 고려했을때 GPIO엔 이렇다 할만한 큰 변화가 없었습니다. 더불어 많은 유저들이 AP 레벨과 MCU 레벨을 구분지어 프로젝트를 진행하고 IoT 프로젝트와 같이 하나의 Host에 복수의 MCU를 연결하는 프로젝트 등 기존 라즈베리파이(AP) 라인업에서 접근하기 힘든 오픈소스 생태계가 커진 배경도 RP2040과 라즈베리파이 피코를 선보이게 된 큰 이유중 하나라고 볼 수 있습니다. 이러한 점을 고려하여 라즈베리파이 재단에서 첫번째 MCU인 RP2040과 RP2040이 실장된 라즈베리파이의 새로운 라인업, 라즈베리파이 피코 (Raspberry Pi Pico) 보드를 선보였습니다.


먼저 RP2040 을 간략히 알아보겠습니다.






RP2040 넘버링은 위와같이 RP(라즈베리파이)를 공통으로 사용하고 코어수, 코어 타입, 메모리 구성으로 표기합니다.

ARM 기반 MCU로 디자인 되어 추후 신규 라인업도 쉽게 유추할 수 있어 보입니다. 






RP2040은 라즈베리파이 재단에서 설계한 MCU로 40nm공정, QFN-56 패키지로 디자인되었습니다.

주요 특징은 아래와 같습니다.


Dual ARM Cortex-M0+ @ 133MHz

264kB on-chip SRAM in six independent banks

Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus

DMA controller

Fully-connected AHB crossbar

Interpolator and integer divider peripherals

On-chip programmable LDO to generate core voltage

2 on-chip PLLs to generate USB and core clocks

30 GPIO pins, 4 of which can be used as analogue inputs

Peripherals

2 UARTs

2 SPI controllers

2 I2C controllers

16 PWM channels

USB 1.1 controller and PHY, with host and device support

8 PIO state machines




RP2040 다이어그램을 보면 8bit MCU 시장에서 32bit MCU로 세대 교체를 시킨 주역이라고 볼 수 있는 Cortex-M0의 개선판인 Cortex-M0+ 두개가 AHB 버스로 IPC되는 구조로 APB 브릿지로 I/O를 확장한 형태며 32bit 데이터 버스에서 레지스터를 공유하여 64bit로 확장할 수 있습니다. 아마 현업 종사자분들이라면 위와 같은 구조를 NXP나 ST 제품군에서 자주 접했으리라 봅니다.

이번 RP2040에서 재미있는점은 2개의 PIO(Programmable Input Output) 인데요, 사용자가 직접 I/O를 꾸릴수 있어 기능상 GPIO를 좀 더 폭 넓게 활용할 수 있습니다. (가령 UART가 부족하다면 PIO로 UART를 꾸리거나 커스텀 I2C를 꾸린다거나)

현재까지 C/C++ SDK, GCC 툴체인, 비쥬얼 스튜디오 코드, 파이썬을 지원하며 향후 머신러닝과 관련된 컨텐츠 또한 지원할 계획에 있습니다.






이어서 RP2040이 실장된 라즈베리파이 피코 보드입니다.






21mm x51mm 폼팩터로 해당 보드의 특징은 아래와 같습니다.


RP2040 microcontroller chip designed by Raspberry Pi in the UK

Dual-core Arm Cortex-M0+ processor, flexible clock running up to 133 MHz

264KB on-chip SRAM

2MB on-board QSPI Flash

26 multifunction GPIO pins, including 3 analogue inputs

2 × UART, 2 × SPI controllers, 2 × I2C controllers, 16 × PWM channels

1 × USB 1.1 controller and PHY, with host and device support

8 × Programmable I/O (PIO) state machines for custom peripheral support

Supported input power 1.8–5.5V DC

Operating temperature -20°C to +85°C

Castellated module allows soldering direct to carrier boards

Drag-and-drop programming using mass storage over USB

Low-power sleep and dormant modes

Accurate on-chip clock

Temperature sensor

Accelerated integer and floating-point libraries on-chip


앞서 살펴본 RP2040을 제외한 특징들을 살펴보면 넓은 입력전원 범위를 지니는데 보드에 벅 부스트 레귤레이터가 적용되어 입력 전원을 1.8V~5.5V 까지 지원하며 AA타입 배터리 2개나 리튬계열 배터리 1셀로도 추가적인 회로 없이 보드를 사용할 수 있습니다.

작성일 기준 4달러에 판매중이며 기존 아두이노 라인업의 퍼포먼스를 한참 웃돌기에 앞으로 오픈 소스 하드웨어 시장에 어떻게 자리잡을지 궁금합니다.





더 자세한 정보는 아래 링크 참고해주세요.  

오역이나 수정사항이 있으면 댓글로 남겨주시면 감사하겠습니다.


Raspberry Pi Pico : https://www.raspberrypi.org/products/raspberry-pi-pico/


Raspberry Pi Pico 기술문서는 아래 링크 Documents 참고 하면 됩니다.

https://www.raspberrypi.org/products/raspberry-pi-pico/specifications/