RISC-Vのマイクロコントローラによる開発を始める方法
DigiKeyの北米担当編集者の提供
2020-01-09
設計者は常に、イノベーションを起こしながらもその知的財産(IP)の機密を保ち、消費電力とコストも低減することを求められています。このため、オープンソースハードウェアの命令セットアーキテクチャ(ISA)であるRISC-Vは、携帯アプリ向けプロセッサの設計者の関心を集めています。RISC-Vがマイクロコントローラの選択肢になり、組み込みシステムおよび民生機器の設計者は、独自のRISC-V設計を迅速に開始するための入口を必要としています。
そのような入口の1つが、GroupGets LLCのFE310 LoFive-R1開発ボードです。LoFive-R1を紹介する前に、この記事ではRISC-Vおよび開発者がRISC-Vの使用を検討するとよい理由について説明します。それから、LoFive-R1を紹介し、アプリケーション開発の始め方と、ヒントおよびコツを示します。
RISC-Vとは?
RISC-Vは、オープンソースのハードウェア命令セットアーキテクチャで、そのプロジェクトは2010年にカリフォルニア大学バークレー校で開始されました。RISC-Vアーキテクチャを作成する理由は、以下のように多数ありました。
- 大学のプロジェクトで学生が学術的に使用できるオープンソースの命令セットアーキテクチャ(ISA)のニーズに応えること
- ISA開発における設計の専門知識を共有する手段
- 現存チップメーカーへのロイヤリティ支払いを避け、コストを節約する手段
- 商業化の可能性を維持するため、アーキテクチャの設計の詳細(企業のIP)を保護すること
設計者の観点から見ると、RISC-Vは速度と低電力動作を目的として設計されたシンプルなアーキテクチャです。このためRISC-Vベースのチップは、学術分野だけでなく商用アプリケーションにも適しています。実際、RISC-V財団は広く関心を集めて、参加組織は約325に達し、これにはSi-Five、Google、Microchip Technology、NVIDIA、Qualcommなどの企業が含まれています。
多くの企業がRISC-Vの開発に貢献していますが、平均的な開発者にとってRISC-Vを実際に扱う最良の方法は、RISC-Vプロセッサを搭載した開発ボードを見つけることです。
LoFive FE310開発ボード
そのような開発ボードの1つが、GroupGets LLCのLoFive-R1開発ボードです(図1)。
図1:LoFive-R1開発ボードには、RISC-Vプロセッサに加えて、キャリアボードに直接はんだ付けできるプロセッサモジュールとするのに必要なあらゆる補助回路が搭載されています。(画像提供:GroupGets LLC)
第1に、LoFive R1は、最大320MHzで動作するRISC-Vプロセッサを搭載しています。このプロセッサは、8KBのワンタイムプログラマブル(OTP)メモリ、8KBのマスクROM、16KBの命令キャッシュ、16KBのSRAMを内蔵しています。また、このプロセッサは、3基の独立したパルス幅変調(PWM)コントローラ、SPI、I2C、UART、さらにはQSPIフラッシュインターフェースも備えています。
第2に、この開発ボードはヘッダをはんだ付けするか、エッジ部分に並んだスルーホールによりキャリアボードに直接はんだ付けし、プロセッサモジュールとして使用できます。このため、プロセッサ調達の手間がなく、カスタムハードウェアを設計することがきわめて容易になる場合があります。
次に、この開発ボードは、Integrated Silicon Solution Inc(ISSI)のIS25LP128フラッシュモジュールによって提供されるオンボードQSPIフラッシュを備えています。IS25LP128は、Quad入出力モードで使用した場合、最大133MHzのSPIバス速度で動作可能な128メガビット(Mbit)、16MBのフラッシュモジュールです(図2)。このSPIフラッシュモジュールは、広大なアプリケーション空間の確保、またはアプリケーションログなどの実行時データの保管のためのストレージとして使用できます。
図2:LoFive-R1開発ボードは、アプリケーションストレージとして使用できるISSIの128Mbit SPIフラッシュモジュールを搭載しています。(画像提供:ISSI)
次に、この開発ボードは5Vでも動作し、これはMaxLinearのリニアレギュレータSPX3819M5によって3.3Vに変換されます。このレギュレータはSOT23-5パッケージですが、最大500mAを供給します。この開発ボードは大きな電流を必要としないため、追加の電源回路なしに追加のセンサやデバイスを使用できます。
図3:LoFive-R1開発ボードの3.3VリニアレギュレータSPX3819は、最大500mAを供給します。これはボード上の回路だけでなく、センサなど外部デバイスを併せても十分な容量です。(画像提供:MaxLinear)
最後に、この開発ボードの回路図や部品表など、設計の詳細はすべて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
この開発ボードには、異なる2つのSDKが使用できます。1つは旧バージョンであることから「レガシーSDK」と呼ばれています。最新のSDKを使用してください。これには、プリビルドされたツールチェーンとデバッグ用のOpenOCDが含まれています。このSDKは、以下のコマンドでチェックアウトできます。
git checkout lofive-r1
git submodule sync
git submodule update -–init -–recursive
開発ボードのプログラミングは、複数の方法で行うことができます。1つには、LoFive-R1の拡張コネクタを通して使用できるプロセッサ上の標準JTAG信号があります。SEGGERのJ-Linkなど、JTAGに対応している任意のプログラマを使用できます。プログラマが利用できない場合は、FTDIのFT2232H-56Q Mini MDLのような低コストのUSB/シリアルコンバータを使うことも可能です(図4)。FT2232H-56Q Mini MDLは、LoFive-R1開発ボードへのインターフェース接続に必要なすべての接続およびブレイクアウトをホストするモジュールです。SDKはFT2232H-56Qの備えている汎用I/Oを使用して、マイクロコントローラのプログラミングに必要なJTAG接続を行います。
図4:FT2232H-56Q MINI MDLは低コストのシリアルモジュールであり、USBで直接コンピュータにインターフェース接続してから、LoFive-R1開発ボード上のUARTに接続できます。(画像提供:FTDI)
LoFive-R1開発ボードとFT2232H-56Qモジュールの間には、9本の接続が必要です(表1)。
|
表1:LoFive-R1開発ボードとFT2232H-56Qモジュールの接続に使える簡単な表(表提供:DigiKey)
これらの接続は、以下のようにまとめられます。
- 電源およびグランド
- JTAG信号
- UART信号
接続は、直接行うことも、Global SpecialtiesのPB-83Mのようなブレッドボードを使用して行うこともできます(図5)。このブレッドボードは電圧源用に2つとグランド用のバナナプラグを備えており、試作を容易に行えます。

図5:PB-83Mは電圧源用に2つとグランド用のバナナジャックを備えており、試作を容易に行えます。(画像提供: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を使いたい開発者は、RISC-Vの開発用にFreedom Studioの使用を検討してください。これはEclipseをベースにしたIDEです。
これらの「ヒントとコツ」に従えば、初めてRISC-Vに取り組む場合に大幅に時間を節約でき、悩み事が減ることでしょう。
まとめ
RISC-Vは、オープンソースハードウェアのアーキテクチャを使おうとしている開発者の目的にかなう可能性のある、興味深いアーキテクチャです。現在、RISC-Vプロセッサ用に開発ボードが存在しており、この記事で見たようにツールチェーンのセットアップは、他の標準的なマイクロコントローラに比べて特に難しくはありません。
RISC-Vは魅力的ですが、多くの既存のマイクロコントローラプラットフォームにあるような充実したエコシステムはありません。したがって、RISC-Vを使用することを選択した場合、その先で選択肢や活用できるリソースが限られてくる可能性があることを忘れないでください。そうしたトレードオフは、最終アプリケーションと開発者の好みやリソースによっては十分に元がとれる可能性があります。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。
