안녕하세요
디바이스마트의 육식정글러 솔다입니다
디바이스마트에서 라즈베리파이 피코를
판매하기 시작한지 벌써 일주일이 되었습니다
피코에서 사용된 MCU는 RP2040입니다
전에도 한번 소개 드렸었는데요
RP2040이 라즈베리파이재단에서 손수 제작한
첫번째 MCU라는 소식을 빼먹었더라구요
7mm 정사각형의 QFN-56 패키지로 모눈종이의 한칸정도 사이즈인 RP2040을
이번에는 조금 더 심층적으로 파헤쳐 보도록 하겠습니다
-
첫째, 이름의 유래
RP2040이라는 이름에는 다~ 뜻이 있습니다
말 그대로 전부 다요
증거 있냐구요?
증거 있습니다
변호인측 증거물 제출합니다
첫번째
맨처음 오는 알파벳 두글자 'RP'는 예상하셨다시피
'라즈베리파이'(Raspberry Pi)를 뜻합니다
두번째
그다음 오는 숫자 '2'는 코어의 갯수입니다
'2'라고 썼으니 듀얼코어입니다
세번째
그다음 숫자는 '0'이며 코어의 종류입니다
실제로 Arm Cortex-M0+ 계통의 코어가 사용되었습니다
네번째
그다음 숫자는 '4'고 메모리의 크기를 나타냅니다
공식은 floor(log₂(ram / 16k))입니다
어떻게 '4'가 되는지 한번 검산해보겠습니다
괄호 안에서 바깥으로 역산해 나가겠습니다
(ram / 16k)
우선 ram 용량을 16k로 나눠줍니다
RP2040의 SRAM 사이즈는 256kB입니다
ram / 16k
= 256k / 16k
분수를 SI접두어인 k를 약분합니다
= 256 / 16
이번에는 16으로 약분합니다
= 16 / 1
(ram / 16k) = 16
위와 같은 결과를 얻었습니다
그럼 이번엔 다음 괄호를 계산해보겠습니다
(log₂16)
log₂는 밑이 2인 로그입니다
밑이 2인 로그는 상용로그처럼 특별한 이름이 있습니다
밑이 2인 로그를 바이너리 로가리듬(Binary Logarithm)이라고 부릅니다
로그 계산은 약간 복잡할 수 있습니다
로그 계산기를 이용하시거나
상용로그표를 보고 공식을 적용하여 구할 수 있습니다
저는 후자의 방법을 설명드리겠습니다
우선 밑이 미지수a인 로그를 구하는 공식입니다
여기서 c는 0보다크고 1이 아니기만 하면 되기 때문에
여기에 상용로그를 적용시켜 값을 구해보겠습니다
log₂16
= log16 / log2
위와 같이 정리할 수 있습니다
상용로그표를 이용하여 두 값을 소숫점 셋째자리까지 표기해보겠습니다
= 1.204 / 0.301
= 4
로그값을 임의로 소숫점 셋째자리까지 두고 계산했는데
신통하게도 4로 딱 맞아떨어집니다
그러나 아직 끝난게 아닙니다
floor(4)
floor가 남아있습니다
프로그래밍이나 함수와 별로 친하지 않으시다면
floor라는 메소드가 낯설게 보이실겁니다
바닥, 층 뭐 이런 뜻의 명사인데
수학적 함수로 쓰일 때에는 '버림'으로 사용됩니다
즉, 계산한 값의 소숫점을 전부 '버림'으로 처리하면 됩니다
그러나 계산값이 4로 딱 나눠떨어졌으므로 버릴 수는 없었습니다
결과적으로 '4'로 표기된 것은
메모리 크기가 256kB라는 것을 의미한다는 것으로 검증되었습니다
다섯번째
그 다음 숫자는 '0'입니다
비휘발성 메모리의 용량을 나타내는 숫자입니다
공식은 floor(log₂(nonvolatile / 16k))입니다
바로 전 자릿수와 대상만 다르고 공식은 동일합니다
이번에도 검산해보겠습니다
RP2040는 16kB의 롬이 내장되어있습니다
(nonvolatile / 16k)
이걸 풀이해보면
nonvolatile / 16k
= 16k / 16k
= 1
(log₂1)
이것도 상용로그를 활용해서 풀이해보겠습니다
상용로그 값은 소수점 셋째자리까지 기재했습니다
log₂1
= log1 / log2
= 0 / 0.301
= 0
floor를 적용시킬 필요도 없이 0으로 딱 떨어졌습니다
맨 끝의 '0'도 검증 완료되었습니다
RP2040
같은 글자지만 다시 보니 좀 달라보이지 않나요?
각 글자 하나하나가 가진 의미를 살펴봤습니다
아직 MCU는 하나밖에 안나왔는데 네이밍을 이렇게 철저한 걸 보면
마치 다양한 제품들을 출시하겠다는 예고처럼 보입니다
-
둘째, 스펙
스펙 기재에 앞서 블록다이어그램 먼저 보시는게
스펙이해에 도움이 되실겁니다
주요 스펙은 데이터시트에 나와있는 내용이지만
보기 좋게 한글로 번역해봤습니다
-
셋째, 적용보드
RP2040은 라즈베리파이 피코와 함께 공개되었지만
라즈베리파이 피코에만 적용된 것은 아닙니다
RP2040이 발표되자 다른 반도체 제조사들도 앞다투어 탑재 보드를 개발했습니다
여러 보드들이 있지만 4개 정도만 소개해 드리도록 하겠습니다
1) Adafruit / Feather RP2040
에이다프룻에서 RP2040을 페더 시리즈에 접목하였습니다
페더의 가장 큰 특징은 다양한 MCU를 기반으로 한 보드임에도
전용 쉴드 시리즈인 FeatherWing(페더윙)이 모두 호환된다는 점입니다
출시한지 얼마 되지 않은 라즈베리파이 피코에 비해
현재 가장 높은 확장성을 갖고있는 RP2040 보드 중 하나입니다
또한 원본인 피코에는 없는 리셋버튼도 탑재되어있습니다
2) Arduino / Arduino NANO RP2040
오픈소스 하드웨어로 유명한 아두이노입니다
크기가 줄고 IO핀도 줄어든 대신 WiFI와 블루투스와 같은 무선통신과
마이크, 6축 IMU 센서 등의 각종 센서가 탑재되었습니다
나노 RP2040 역시 기존의 아두이노 나노와 핀아웃을 공유합니다
따라서 본 보드도 현재로써는 높은 확장성을 갖고있는 RP2040 보드 중 하나입니다
또한 Arduino IDE라는 익숙한 개발환경이 뒷받침 해주고 있기 때문에
C기반의 개발 시에는 피코보다 편리할 수 있습니다
3) Pimoroni / Tiny 2040
보시다시피 작은 사이즈로 이름값을 하고있는 제품입니다
사진에 나와있듯 우표정도의 크기밖에 되지 않습니다
겉보기와는 다르게 flash 메모리의 용량이 8MB로 여유로운 편입니다
본 제품도 원조인 피코에 없는 리셋 스위치가 탑재되어있습니다
또한 온보드 LED가 RGB라서 다양한 상태 표시가 가능합니다
IO핀이 적어 피지컬컴퓨팅만 봤을 때에는 가성비가 훌륭하다고 할 순 없지만
제일 작은 RP2040 개발보드로써의 차별점 있습니다
4) SparkFun / SparkFun Pro Micro - RP2040
스파크펀의 Pro Micro 시리즈로도 출시되었습니다
전체적으로 피코와 유사하지만 리셋 스위치가 탑재되어있고
플래시메모리가 지원가능한 최대 용량인 16MB라는 점이 장점입니다
특히 SparkFun 고유의 I2C 확장 인터페이스인 Qwiic을 지원합니다
따라서 Qwiic단자를 통한 I2C 확장이 매우 편리합니다
-
오늘은 라즈베리파이 최초의 MCU인 RP2040에 대해 알아보았습니다
현재 듀얼코어 MCU중에서는 꽤나 가성비가 좋은 MCU이며
tinyML을 위한 최소~권장 사양정도로 볼 수 있을 것 같습니다
본 포스팅을 통해 RP2040에 대해 많이 알아가셨으면 좋겠습니다
감사합니다
0 댓글