TI)MSP432オープンプラットフォーム開発環境:Energia IDE

Texas Instruments)MSP432(Cortex-M4F/48MHz)評価ボード:MSP-EXP432P401R LaunchPadを使ってオープンプラットフォーム開発環境:Energia IDEの使い方を示します。Energia IDEは、簡単に言うとマイコン版Arduino IDE。Windows/Mac OS/UnixのマルチOS動作で、TIマイコンMSP430やC32xxなど、7種MCUのLaunchPad評価ボードをサポート中です。

IoT MCUの高度なセキュリティ実装を考えると、MCU開発者でもArduino IDEの使い方を知っておくのは有用だと前回投稿しました。
MSP-EXP432P401R LaunchPadを例にEnergia IDEの使い方を解説します。

Energia IDE

Energia IDEの使い方は、Arduino IDEと同じです。Single Board Computer開発で用いられるArduino IDEと同じ方法でTIマイコンのソフトウェア開発ができます。

Energia IDEインストール手順が以下です(と言っても、解凍だけで動作します)。

  1. Energia Downloadサイトから対応OSバージョンをダウンロードし解凍。Windows版では、解凍先フォルダがEnergia IDEの動作環境ですので、安心して試せます👍。
  2. 解凍先フォルダのenergia.exeクリックでEnergia IDEが起動します。デフォルトボードは、右下表示のMSP-EXP430F5529LPです。

    Energia IDE初期画面
    Energia IDE初期画面
  3. ツール>ボードマネージャでEnergia MSP432 EMT RED boards by Energiaをインストールします。
    ネットワーク環境に依存しますが、この手順2完了に少し時間がかかります。

    ボードマネジャ:Energia MSP432 EMT RED boards by Egergia追加インストール
    ボードマネジャ:Energia MSP432 EMT RED boards by Egergia追加インストール

    ※REDは、基板の版数:Rev 2.0 を示します。MSP-EXP432P401R LaunchPadには、BLACK:Rev 1.0もありますので注意してください。詳しくは、User’s Guide:SLAU597Fを参照してください。

  4. ボードマネージャでRED LaunchPad w/ msp432p401r EMT(48MHz)を選択。次に、評価ボードをPCに接続し、ツール>使用シリアルポートを選択(2ポートあってもどちらでも可)。書込装置はmspdebugを選択。
    ボードマネージャ:RED LaunchPad MSP432P401R選択
    ボードマネージャ:RED LaunchPad MSP432P401R選択

    以上で、MSP-EXP432P401R LaunchPad のEnergia IDE環境セットアップが完了です。

MSP-EXP432P401R LaunchPadのスケッチ動作

  1. スケッチ例>内蔵のスケッチ例から、例えば、Basics>Fadeを選び、マイコンボードに書き込む:➡クリックでコンパイル実行と評価ボードへの書込みが完了し、動作します。スケッチ例とは、サンプルアプリケーションのことです。他にも様々なスケッチ例があり、➡クリックのみで簡単にMSP432P401R評価ボードスケッチ例の動作確認ができます。
    ※ボード書き込み時にエラーが発生する場合は、サイトのGuideからEnergia Driver Packageをダウンロードし、管理者権限でインストールすると解決します。

    スケッチ例:Fadeの実行
    スケッチ例:Fadeの実行

    スケッチ例のソースコードは、上図のように可読性が高く、初期設定:setup()と無限ループ:loop()の2つから構成されています。

現状は、セキュリティ関連のスケッチ例はありません。しかし、セキュリティは、全てのIoT MCUに必須で共通機能ですので、そのうち提供される可能性はあると思います。色々な周辺回路や機能をすぐに動作確認できるスケッチ例は、プロトタイプ開発に有効です。

関連投稿:Arduino IDEスケッチ例のソースコード

Energia IDEプログラミング

サイトのReferenceに、functions/variables/structureの3部構成のAPI説明書があります。各APIをクリックすると、初心者でも解り易い解説とEnergia IDEで試せるサンプルコードがあります。コード中のピン番号は、Pin Mapsで評価ボード毎に示されています。

このプログラミングに関する資料の解り易さが、Energia IDE(=Arduino IDE)の特徴です。デバイスで出来ることを直感的にすぐにプログラミングする情報としては、これら2サイト情報だけで十分です。

Cortex-M4カテゴリにTI)MSP432採用

本ブログのCortex-M4カテゴリへ、MCUとしてTexas Instruments)MSP432(Cortex-M4F/48MHz)を追加します。開発環境は、本稿のEnergia IDEとTI純正無償Code Composer Studio(CCS)、3つ目にCCS cloudを使う予定です。CCS  cloudは、次回解説します。

本ブログで、シェア上位5社MCUベンダとその主要MCUを全てカバーできたことになります(関連投稿:ARM Cortex-M4ベンダと評価ボードの2章)。

CMSISを使ってCortex-M4 MCUで開発したソフトウェアは、Cortex-M0/M0+/M3への流用も可能です(関連投稿:NXP MCUXpresso SDKから見るARMコアMCU開発動向)。
プロトタイプ開発は、高性能で開発リクスが少なく、様々なセキュリティ機能を試せるCortex-M4で行い、製品化時にコストメリットを活かすCortex-M0/M0+/M3を使うなどの方法や検討もありえるでしょう。

他のCortex-M4 MCUとしては、NXP)LPC54114(Cortex-M4/M0+)、STM)STM32G473RE(Cortex-M4)、Cypress)PSoC63(Cortex-M4/M0+)などをCortex-M4カテゴリへ追加予定です。

ARM Cortex-M4ベンダと評価ボード(選択失敗談)

本稿は、模索中のCortex-M4評価ボード選択の失敗談です。

初心者・中級者のMCU習得・開発を支援するのが本ブロブの目標です。手段として、個人でも入手性の良い低価格MCU評価ボードを使い、効率良く具体的にポイントを把握できる記事作成を心掛けています。

先日のIoT市場を狙うデュアルコアMCUで、本ブログでこれまで取り上げてきたMCUコア以外にARM Cortex-M4開発経験がIoT要件になる可能性を示しました。そこで、新たにCortex-M4カテゴリをブログに加えたいと考えているのですが、今日現在、適当な評価ボードや開発環境が見つかっておりません。

ARM Cortex-M4カテゴリ

Cortex-M4カテゴリは、急増するIoT開発に対する個人レベルでの先行準備的な位置付けです。

ARM Cortex-M0/M0+/M3コアやルネサスS1/S2/S3コア習得が初級レベルの方は、開発障壁が少し高いかもしれません。なぜなら、Cortex-M4コアの知識ベースはCortex-M0/M0+/M3だからです。この高さ軽減のため、過去のブログ関連投稿をリンク付けします。

中級レベルの方は、Cortex-M4の高いMCU能力を、Cortexコア間のアプリケーション移植やRTOS活用への発展、IoTで高度化するセキュリティ機能の実装などに意識してCortex-M4カテゴリ記事をご覧頂ければ役立つと思います。

32ビットMCUベンダシェアと本ブログカテゴリ

2018年の32ビットMCUベンダシェアが、6月7日投稿InfineonのCypress買収で示されています(下図右側)。

買収成立時の自動車と32ビットMCUシェア(出典:EE Times記事)
買収成立時の自動車と32ビットMCUシェア(出典:EE Times記事)

上位5ベンダ(Runesas、NXP、STM、Cypress、TI)と、本ブログカテゴリとの関係が下表です。

例えば、NXPのLPCマイコンでCortex-M0+記事であれば、MCUカテゴリはLPCマイコン、32ビットコアカテゴリはCortex-M0+などとカテゴリが重複する場合もあります。ただ、本ブログのカテゴリ記事数(n)がベンダシェアや、Cortexコアの人気傾向を示しており、32ビットMCUベンダシェアともほぼ一致します。

2018年MCU上位5ベンダと本ブログカテゴリの関係
MCUベンダ(シェア順) MCUカテゴリ 32ビットコアカテゴリ
Runesas RL78マイコン なし
NXP LPCマイコン/Kinetisマイコン Cortex-M0/M0+/M3/M23マイコン
STM STM32マイコン Cortex-M0/M0+/M3マイコン
Cypress PSoC/PRoCマイコン Cortex-M0/M0+マイコン
Texas Instruments なし なし

※Cypress+Infineonは買収成立と仮定

ルネサスMCUは16ビットコア(S1/S2/S3)のみ掲載中です。理由は、同社32ビットコアMCU開発環境が、コンパイラ1ライセンス当たり10万円程度と高価で、個人レベルでのライセンス購入が困難なため、本ブログ対象外としたからです。

MCUベンダシェアとカテゴリとを俯瞰すると、Texas Instrument(以下TI)とCortex-M4カテゴリがないことが解ります。※32ビットMCUコアでNon ARM系のRunesasを除くと、事実上Cortexコアのみで、その中で記載が無いメジャーMCUコアがCortex-M4です。

そこで、TIのARM Cortex-M4Fマイコン、MSP432の評価ボードを調査しました。

ARM Cortex-M4F搭載MSP432評価ボード

MSP-EXP432P401R LaunchPad Kitとブロック図
MSP-EXP432P401R LaunchPad Kitとブロック図

低消費電力MSP432P401R(ARM Cortex-M4F、48MHz、浮動小数点ユニット、DSPアクセラレーション、256KB/Flash、64KB/RAM)搭載の評価ボード:SimpleLink™ LaunchPad™です(TIは評価ボードをローンチパッドと呼びます)。Digi-KeyMouser秋月電子(秋月電子は在庫限りRev 1.0 (Black)、2100円)で低価格購入可能です。

他社ARM MCU評価ボードで一般的に用いられるArduinoコネクタ増設ではなく、BoosterPack(ブースタパック)と呼ぶTI独自拡張コネクタでBLEやWi-Fi機能を追加します。また、SimpleLink AcademyトレーニングというWebベースの教材などもあります。

MSP432評価ボード単体では、情報量の多さ、価格ともに魅力的です。Cortex-M4クラスの評価ボードでも、Cortex-M0/M0+/M3プラスアルファの低価格で入手できるのには驚きました。プロトタイプ開発は全てCortex-M4で行い、製品時Cortex-M0/M0+/M3を選択する方法もありだと思います。Cortex-M4とM4Fの違いは、本稿PS:パート2動画で解ります。

MSP432P401Rの開発環境は、TI純正無償Code Composer Studio(CCS)です。但し、無償版CCSはMSP432利用時32KBコードサイズ制限付きです。当面32KBでも十分ですが、制限解除には有償版(サブスクリプション)が必要です。

低価格評価ボードがあるのに開発環境に個人での使用に障害がある事象は、Runesas 32ビットMCUと同じです。

以上から本ブログのCortex-M4カテゴリに、TI:MSP-EXP432P401R LaunchPad を使うのは、有償開発環境の点から断念しました(NXP/STM/Cypressは、無償版でもコードサイズ制限無しです)。

まとめ

2018年32ビットMCUベンダシェアから本ブログ記事を俯瞰した結果、Cortex-M4カテゴリとベンダのTexas Instrumentが欠けていることが解り、ARM Cortex-M4F搭載のTI)MSP432P401R評価ボードMSP-EXP432P401R LaunchPad導入を検討しましたが、無償CCSコードサイズ制限のため採用を見合わせました。

勤めている企業の取引の関係でベンダや開発に使うMCUは、既に決まっていることが多いです。しかし、開発者個人レベルでは、ポケットマネーの範囲内で、ベンダもMCU選択も自由です。

ARM Cortex-M4 MCU開発経験はIoT普及期には必須になる可能性があります。普及期への先行準備、また、仕事以外のMCUを手掛けることによる視野拡大、リスク回避手段に適当なCortex-M4評価ボードを選択し、Cortex-M4カテゴリ投稿を計画しています。初回は、Cortex-M4評価ボード選択の失敗談となりました。

PS:TIサイトに下記MSP432日本語版トレーニング動画(要ログイン)があります。ARM Cortex-M4Fを使ったMSP432の全体像が効率的に把握できます。

タイトル 所要時間
パート 1 : MSP432 概要 09:24
パート 2 : ARM Cortex-M4F コア 08:12
パート 3 : 電源システム 05:25
パート 4 : クロック・システム、メモリ 07:53
パート 5 : デジタル・ペリフェラルとアナログ・ペリフェラル 10:07
パート 6 : セキュリティ 05:15
パート 7 : ソフトウェア 07:29
パート 8 : MSP430 から MSP432 05:06