RISC-V 기반 마이크로 컨트롤러를 시작하는 방법

작성자: Jacob Beningo

DigiKey 북미 편집자 제공

설계자는 전력 소비와 비용을 줄이면서 지적 재산(IP)을 혁신하고 비밀로 유지해야 한다는 압박에 지속적으로 시달리고 있습니다. 이에 따라 RISC-V 오픈 소스 하드웨어 명령어 세트 아키텍처(ISA)가 모바일 응용 분야용 프로세서 설계자의 관심을 받고 있습니다. RISC-V는 마이크로 컨트롤러를 위한 옵션이므로, 내장형 시스템 및 소비자 장치 설계자가 자체 RISC-V 설계에 착수할 수 있는 빠른 진입 차선이 필요합니다.

GroupGets LLC의 FE310 LoFive-R1 개발 기판은 그런 진입 차선 중 하나입니다. LoFive-R1을 소개하기 전에 이 기사에서는 RISC-V에 대해 설명하고 개발자가 이 기판을 고려하는 이유를 살펴봅니다. 그런 다음 LoFive-R1을 설명하고 몇 가지 유용한 정보와 함께 응용 제품 개발을 시작하는 방법을 알아봅니다.

RISC-V란?

RISC-V는 2010년 캘리포니아 대학교 버클리에서 시작된 오픈 소스 하드웨어 명령어 세트 아키텍처 프로젝트입니다. RISC-V 아키텍처를 생성하는 이유는 다음을 포함하여 다양합니다.

  • 학생들과 대학 프로젝트에서 학술적으로 사용 가능한 오픈 소스 명령어 세트 아키텍처(ISA)에 대한 요구 사항 충족
  • ISA 개발 중 설계 전문 지식을 공유하기 위한 수단
  • 현직 칩 회사에 대한 로열티 지급을 방지하여 비용을 절감할 수 있는 방편
  • 아키텍처의 설계 세부 사항(회사 IP)을 보호하여 상업적 실행 가능성 유지

설계자의 관점에서 볼 때 RISC-V는 고속 저전력 작동을 위해 고안된 간소화된 아키텍처입니다. 따라서 RISC-V 기반 칩은 학계뿐 아니라 상업적 응용 분야에도 적합합니다. 실제로 RISC-V Foundation은 Si-Five, Google, Microchip Technology, NVIDIA, Qualcomm을 비롯한 약 325개 회원사로 성장할 정도로 충분한 관심을 받고 있습니다.

많은 회사가 RISC-V 개발에 기여하고 있지만 일반적인 개발자의 경우 RISC-V를 실습해 보는 가장 좋은 방법은 RISC-V 프로세서를 기반으로 하는 개발 기판을 찾는 것입니다.

LoFive FE310 개발 기판

GroupGets LLC의 LoFive-R1 개발 기판은 그런 개발 기판 중 하나입니다(그림 1).

GroupGets의 LoFive-R1 개발 기판 이미지그림 1: LoFive-R1 개발 기판에는 개발 기판을 캐리어 기판에 직접 납땜할 수 있는 프로세서 모듈로 만드는 데 필요한 모든 지원 회로망과 RISC-V 프로세서가 포함되어 있습니다. (이미지 출처: GroupGets LLC)

첫째, LoFive R1에는 최대 320MHz로 실행 가능한 RISC-V 프로세서가 포함되어 있습니다. 프로세서에는 일회용 프로그래밍 가능(OTP) 메모리 8KB, 마스크 ROM 8KB, 명령어 캐시 16KB, SRAM 16KB가 포함되어 있습니다. 또한 프로세서에는 세 개의 독립 펄스 폭 변조(PWM) 컨트롤러, SPI, I2C, UART 및 QSPI 플래시 인터페이스가 있습니다.

둘째, 개발 기판에 헤더를 납땜하거나, 골진 에지로 인해 개발 기판을 캐리어 기판에 직접 납땜하고 프로세서 모듈로 사용할 수도 있습니다. 따라서 개발자가 물류 서비스를 통해 프로세서를 소싱할 필요 없이 맞춤형 하드웨어를 매우 쉽게 설계할 수 있습니다.

셋째, 개발 기판에는 Integrated Silicon Solution Inc.(ISSI)의 IS25LP128 플래시 모듈을 통해 제공되는 기판 실장형 QSPI 플래시가 포함되어 있습니다. IS25LP128은 쿼드 입/출력 모드에서 사용될 경우 최대 133MHz SPI 버스 속도로 작동할 수 있는 128Mb, 16MB 플래시 모듈입니다(그림 2). 스토리지에서 충분한 응용 제품 공간이 있는지 확인하거나 런타임 데이터(예: 응용 제품 로그)를 저장하기 위해 SPI 플래시 모듈을 사용할 수 있습니다.

ISSI의 128Mb SPI 플래시 모듈 구성도그림 2: LoFive-R1 개발 기판에는 응용 제품 스토리지에 사용되는 ISSI 128Mb SPI 플래시 모듈이 포함되어 있습니다. (이미지 출처: ISSI)

넷째, 개발 기판은 5V 전압으로도 실행되며, 이 전압은 MaxLinearSPX3819M5 선형 조정기에 의해 3.3V로 변환됩니다. 조정기는 SOT23-5 패키지와 함께 제공되지만 최대 500mA를 제공합니다. 개발 기판은 많은 전류를 소비하지 않으므로 전력 회로망을 추가하지 않고도 추가 센서 및 장치를 지원할 수 있습니다.

MaxLinear의 SPX3819 3.3V 선형 조정기 구성도그림 3: LoFive-R1 개발 기판의 SPX3819 3.3V 선형 조정기는 최대 500mA를 제공합니다. 이 전류는 기판 실장형 회로와 일부 추가 장치(예: 센서)를 모두 지원하는 데 충분합니다. (이미지 출처: MaxLinear)

마지막으로, 개발 기판에 대한 모든 설계 세부 사항(예: 회로도, 부품 명세서(BOM))은 github에서 확인할 수 있습니다. 이 정보를 통해 개발자가 기판의 작동 방식을 쉽게 이해하고, 맞춤형 개발 프로젝트를 위한 설계 안내서로 활용할 수 있습니다.

RISC-V 도구 체인 및 프로그래밍 개발 기판 설정

개발자가 선택한 개발 기판에 따라 RISC-V에 사용할 수 있는 다양한 도구 체인이 있습니다. RISC-V용 SDK를 Windows, macOS 및 Linux에서도 사용할 수 있습니다. 이 기사에서는 Linux용 개발 기판을 설정하는 방법을 보여줍니다.

먼저 단자에서 다음 명령을 사용하여 git의 LoFive Freedom-E SDK를 확인합니다.

git clone --recursive https://github.com/mwelling/freedom-e-sdk.git

이제 다음 명령을 사용하여 SDK에서 생성된 디렉터리로 이동합니다.

cd freedom-e-sdk

개발 기판에 사용할 수 있는 두 가지 SDK가 있습니다. 첫 번째는 이전 버전이므로 “레거시 SDK”라고 합니다. 최신 SDK를 사용하십시오. 이 SDK에는 사전 구축된 도구 체인이 있으며 디버깅을 위한 OpenOCD가 포함되어 있습니다. 다음 명령을 사용하여 SDK를 확인할 수 있습니다.

git checkout lofive-r1

git submodule sync

git submodule update –init –recursive

다양한 방법으로 개발 기판을 프로그래밍할 수 있습니다. 먼저 LoFive-R1 확장 연결을 통해 사용할 수 있는 프로세서의 표준 JTAG 신호가 있습니다. 개발자는 JTAG를 지원하는 프로그래밍 장치(예: SEGGER J-Link)를 사용할 수 있습니다. 프로그래밍 장치를 사용할 수 없는 경우 개발자는 저가형 USB-직렬 컨버터(예: FTDIFT2232H-56Q Mini MDL)를 사용할 수도 있습니다(그림 4). FT2232H-56Q Mini MDL은 LoFive-R1 개발 기판에 연결하는 데 필요한 모든 연결부와 브레이크아웃을 호스팅하는 모듈입니다. 이 SDK에서는 FT2232H-56Q에서 사용 가능한 범용 I/O를 사용하여 마이크로 컨트롤러를 프로그래밍하는 데 필요한 JTAG 연결을 생성합니다.

FTDI의 FT2232H-56Q MINI MDL 직렬 모듈 이미지그림 4: FT2232H-56Q MINI MDL은 USB를 통해 컴퓨터에 직접 연결한 다음 UART 기판 실장형 LoFive-R1 개발 기판에 연결할 수 있는 저가형 직렬 모듈입니다. (이미지 출처: FTDI)

LoFive-R1 개발 기판과 FT2232H-56Q 모듈 간에 9가지 연결을 생성해야 합니다(표 1).

LoFive-R1 개발 기판 핀 FT2232H-56Q 모듈 핀
+5 VIN VBS
Ground GND
TRSTN AD5
TCK AD0
TDO AD2
TMS AD3
TDI AD1
UART0.TX BD1
UART0.RX BD0

표 1: LoFive-R1 개발 기판과 FT2232H-56Q 모듈 간의 연결을 브리징하는 데 사용할 수 있는 간단한 표 (표 출처: DigiKey)

이러한 연결은 다음과 같이 요약될 수 있습니다.

  • 전력 및 접지
  • JTAG 신호
  • UART 신호

직접 연결하거나 브레드 기판(예: Global SpecialtiesPB-83M)을 사용하여 연결할 수 있습니다(그림 5). 이러한 브레드 기판에는 시제품 제작 간소화를 위한 두 전압 소스 및 접지용 바나나 플러그가 있습니다.

Global Specialties의 PB-83M 브레드 기판 및 바나나 잭 이미지

그림 5: PB-83M에는 손쉬운 시제품 제작을 위한 두 전압 소스 및 접지를 위한 바나나 잭이 있습니다. (이미지 출처: Global Specialties)

LoFive-R1을 처음으로 사용하는 경우 기판 실장형 부트로더를 설치하는 것이 좋습니다. 부트로더는 한 번 설치하면 이후 업그레이드를 용이하게 하는 데 활용할 수 있습니다. SDK에서 다음 명령을 실행하여 부트로더를 생성할 수 있습니다.

make PROGRAM=lofive-boot TARGET=lofive-r1-bootloader upload

다음 명령을 사용하여 “hello world” 응용 제품을 개발 기판에 로드할 수 있습니다.

make PROGRAM=sifive-welcome TARGET=lofive-r1 upload

이제 개발자는 첫 번째 RISC-V 응용 제품을 프로그래밍했으며 여기서 제한 없이 원하는 위치로 이동할 수 있습니다.

RISC-V 작업을 위한 유용한 정보

RISC-V 프로세서를 시작하는 방법은 표준 마이크로 컨트롤러 에코시스템과 약간 다릅니다. 다음은 몇 가지 “유용한 정보”입니다.

  • LoFive-R1 SDK를 확인한 후 기본 디렉터리에서 README.md 파일을 검토합니다. 이 파일에는 SDK 설명서, 기판 지원 패키지 및 기타 유용한 정보를 찾을 수 있는 위치에 대한 유용한 정보가 포함되어 있습니다.
  • SEGGER J-Link와 같은 전문가용 디버그 프로브를 사용할 수 있는 경우 RISC-V 프로세서에 대한 응용 제품을 프로그래밍할 수 있습니다. J-Link는 2017년부터 RISC-V를 지원하고 있습니다.
  • 명령줄 도구 대신 IDE를 사용하려는 개발자는 Eclipse 기반 IDE인 RISC-V 개발용 Freedom Studio를 사용하는 것이 좋습니다.

이 “유용한 정보”를 따르는 개발자는 RISC-V를 처음으로 사용할 때 많은 시간을 절약하고 문제를 방지할 수 있습니다.

결론

RISC-V는 오픈 소스 하드웨어 아키텍처를 사용하려는 개발자에게 적합한 흥미로운 아키텍처입니다. 현재 RISC-V 프로세서용 개발 기판이 존재하며 이 기사에 설명한 대로 도구 체인을 설정하는 것은 다른 표준 마이크로 컨트롤러에 비해 크게 어렵지 않습니다.

RISC-V는 매우 흥미롭지만, 많은 기존 마이크로 컨트롤러에서 제공되는 풍부한 에코시스템이 없으므로 RISC-V 경로를 따르려는 개발자가 활용할 수 있는 옵션 및 관련 자료가 부족할 수 있습니다. 최종 응용 제품과 개발자의 선호도 및 관련 자료에 따라 이 트레이드 오프는 그만한 가치가 있습니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo는 임베디드 소프트웨어 컨설턴트로서 현재 십여 개국 이상의 국가에 있는 고객들과 협력하여 제품 품질, 비용, 출시 기간을 향상시켜 고객의 비즈니스를 극적으로 변화시키고 있습니다. 그는 인기 있는 강연자이자 기술 교육자이며 임베디드 소프트웨어 개발 기술에 대해 200개 이상의 기사를 발표했습니다. 그는 미시간 대학교 공학 석사 학위를 비롯하여 세 개의 학위를 소지하고 있습니다. 월간 Embedded Bytes 뉴스레터를 수신하려면 jacob@beningo.com 및 Jacob Beningo의 웹 사이트인 www.beningo.com으로 언제든지 문의해 주세요.

게시자 정보

DigiKey 북미 편집자