ソフトウェア視点のMCU選び方

MCU選び方をソフトウェア開発視点から示します。
具体例としてSTマイクロのSTM32MCUで説明しますが、他MCUベンダでも同様です。

Summary:HALドライバ+汎用MCUプロトタイプ開発で選定

例え同じベンダでも色々な内蔵ハードウェアと、処理性能、価格も異なるMCUは、製品MCUの選択肢が広すぎるのが難点です。

製品MCUハードウェア選定ミスを少なくし、かつ、ソフトウェア開発も効率的にできる方法として、汎用MCUを使いHALドライバで早期に製品プロトタイプ開発を行い評価する方法を示しました。

製品MCU選択肢の広さ

STマイクロのSTM32MCUポートフォリオ(出展:STM32ウェビナー資料)
STマイクロのSTM32MCUポートフォリオ(出展:STM32ウェビナー資料)

ベンダ例としてSTマイクロのCortex-Mコア系MCU選択肢の広さを示します。

STM32MCUポートフォリオを性能やシリーズ別に示したのが上図です。この図でターゲット製品のMCUシリーズを大まかに選定するのが、第1選定段階です。

第2段階では、各シリーズのFlash/RAM容量、内蔵ADCやUASRT数など製品時に必要になる周辺回路からハードウェア的に最適なMCUデバイスを選定します。

STM32MCU製品セレクタ例
STM32MCU製品セレクタ例

この選択方法は、MCU処理性能やソフトウェアを格納するFlashやRAM容量は、最終製品にならないと実際は判りません。しかし、周辺回路や動作電圧などのハードウェア条件は、明らかなのでこれらからMCU選定はできます。

但し、メインストリーム、つまり汎用MCUであっても、STM32C0、STM32F0/F1、STM32G0/G4シリーズと選択肢があり、処理性能も異なります。更に、ハイパフォーマンスSTM32H5/H7や、超低消費電力STM32U5などの汎用MCU比性能を極めたシリーズもあります。

これら多く広いMCU選択肢から、入手性やコストから製品MCUを決めるのが、一般的に用いられる「ハードウェア視点MCU選択方法」です。

HALドライバソフトウェア開発メリット

HALとは、Hardware Abstraction Layerドライバです。このハードウェアは、MCUを指します。つまり、MCU差を抽象化=隠して開発できるAPIを上位ユーザアプリケーションへ提供するのがHALです。

例えば、STM32C0でも、STM32G4でも同じHALドライバでGPIOアクセスができます。つまり、HALドライバを利用すれば、STM32C0とSTM32G4で同じアプリケーションが使える訳です。

従って、STM32C0で性能不足の場合には、開発ソフトウェアはそのままSTM32G4へ移植ができます。逆の性能過多の場合でも同様です。ユーザ開発アプリケーションのMCU間移植性が高いのがHAL利用ソフトウェアのメリットです。

HAL+汎用MCUプロトタイプ開発

汎用MCUを使って製品のプロトタイプ開発を行えば、製品化時、よりハイパフォーマンスMCUの必要性や、より低消費電力MCUの必要性が、使用した汎用MCUとの相対比較で可能です。

また、HALを使えば、プロトタイプ開発アプリケーションが製品MCU上でも動作します。

つまり、製品MCUのオーバー/アンダースペック選定ミスを減らす評価ができ、かつ、プロトタイプ開発アプリケーションの製品移植性も高いため、結果として効率的な製品開発が可能になるのが、「ソフトウェア視点MCU選択方法」です。

拡大MCUハードウェアとMCUソフトウェア移植性を満たすHAL

拡大STM32MCUデバイスとユーザアプリケーション移植性の両方を満たすHAL
拡大STM32MCUデバイスとユーザアプリケーション移植性の両方を満たすHAL

MCUベンダは、最初の図で示したように進化する半導体製造プロセスやよりアプリケーション寄りのコストパフォーマンス最適MCUデバイスを提供し続けます。

MCU製品開発側は、増え続けるMCUデバイス間のソフトウェア移植性や開発時間の短縮も必要です。

HALドライバは、これら進化・拡大するMCUハードウェアとMCUソフトウェア移植性要求を同時に満たす機能です。

HALによる汎用MCUプロトタイプ開発は、参考になるサンプルコードが多いため開発時間も少なく、開発アプリケーションがユーザ資産として多くのMCUでの活用も期待できます。

Afterword:汎用MCU選び方

汎用MCUも多くの選択肢があります。STマイクロのお勧めデバイスは、最新製造プロセスで入手性が良く低価格なSTM32G0/4シリーズ評価ボードです。

Flash/RAM容量も入手性優先で選定して構いません。容量不足時は、機能分割しプロトタイプ化すれば済むからです。

ソフトウェア視点MCU選択方法は、プロトタイプ開発が必要です。短期間で効率的に製品プロトタイプを仕上げ、このプロトタイプから製品MCU要求条件やソフトウェア動作ポイントなどを評価します。

プロトタイプと最終製品が近ければ近い程、これら評価精度は上がります。しかし、精度に拘る必要はありません。製品企画時に、とにかく製品のように動くプロトタイプを早く仕上げ、これから製品MCUを評価すれば、闇雲に選定するより良いからです。

MCU開発者は、手元にベンダ汎用MCUシリーズの評価ボードと弊社テンプレートがあれば、直ぐに製品のように動くプロトタイプが仕上がります。


開発者向けMCU生産技術の現状

先端半導体の供給不足
先端半導体の供給不足

COVIC-19の影響で自動車、ゲーム機、PC、5Gスマホに搭載される先端半導体の供給不足が発生中です。自動車は生産調整、ゲーム機も品薄のため販売中止のニュースが流れています。一方で、任天堂Sonyは、ゲーム機好調で、業績上方修正も発表されました。

本稿は、これら先端半導体とMCUに使っている半導体の違いを、筆者を含めたマイコン開発者向けにまとめました。

先端半導体供給不足

AppleやQualcommなどの半導体ベンダの多くは、設計・開発は行うものの、生産は台湾TSMCやUMCなど世界に数社しかない先端半導体受託生産会社(ファウンドリー)へ製造依頼するファブレス企業です。このファウンドリーの先端半導体生産量がボトルネックとなり供給不足が発生しています。

需要に追いつくよう生産設備も増設中ですが、スグには対応できません。その結果、価格競争が起こり、ゲーム機など高パフォーマンスで高価格でもOKなデバイスが優先、一方、コスト要求の強い自動車向けデバイスなどは後回しになった結果が、最初のニュースの背景です。

MCU半導体と先端半導体の差

半導体の製造や生産技術は、ムーアの法則に則り、年々微細化が進みます。これは、MCU半導体でも先端半導体でも同じです。違いは、「製造プロセスの世代」と「大容量フラッシュ搭載の有無」です。

最先端半導体の微細化技術は、28nm→14nm→7nmと製造プロセス世代が進み現在5nmなのに対し、MCU半導体は、現在28nmの1つ手前、40nmです。

※微細化の指標は、いかに細いロジック配線を実現できるかで表されnm:nanometerは、1 nm = 0.001 µm = 0.000001 mm:10億分の1メートル。

MCU半導体の微細化が遅れる理由は、MCUデバイスには簡単に微細化できない大容量Flashメモリの内蔵が必須だからです。

つまり、我々が開発するアプリケーションは全てMCUに内蔵される訳で、ここがPCやゲーム機の外付けメモリ+キャッシュ内蔵の制御系と根本的に異なる点です。

最新MCU微細化技術

上記の難しい大容量Flash微細化にも、技術革新が起きつつあります。詳細を知りたい方は、世界最小のメモリセルで最先端マイコンの低価格化を牽引する相変化メモリの記事を参照してください。

IoT MCU開発には、エッジAIや無線通信、高度セキュリティ、OTA:Over The Air更新など従来MCUに無い多くのIoT機能追加が必要です。これら機能実装には、更なる大容量Flash搭載が必須です。

IoT MCUの将来
IoT MCUの将来

大容量Flashの低価格実装と製造プロセスの世代が進めば、MCUデバイスの開発アプリケーション適用幅は大きくなると筆者は思います。つまり、より汎用化すると思います。

現在のMCUは、アプリケーション毎に内蔵周辺回路やFlash/RAM容量が異なるなど多品種でデバイス選択時、開発者を悩まします。しかし、近い将来、IoT MCUデバイス選択に開発者が悩むことも無くなるかもしれません。

関連投稿:無線STM32WBと汎用STM32G4比較の6章

MCU大手ベンダは自社製造中

NXP/ST/Renesas などの大手MCUベンダもファウンドリーを利用しますが、どこも自社工場でも製造を行っています。各社の会社紹介パンフレットには、必ず自社製造拠点の図がありますし、販売後10年間のデバイス供給保証も謳っています。

ARM社提供のCortex-Mコア設計図は同じでも、それを活かす実装設計・開発・製造がベンダ毎に異なるので他社差別化ができる訳です。

また、これらMCUベンダは、自社デバイスと並行して自動車向けデバイスの設計・開発・製造も行っています。ADASやMCU微細化技術の進化、ファウンドリーの供給不足状況などが、MCUベンダ各社に今後どのように影響するかは注目して行きたいと思います。

関連投稿:5G、Wi-Fi6、NXP、STマイクロエレクトロニクスの3章:NXP対応

まとめ

  • MCU半導体と先端半導体には、製造プロセス世代と大容量Flash搭載有無に差がある
  • 現状のMCU半導体は、大容量Flash搭載の40nmプロセス、先端半導体は、5nmプロセス
  • IoT MCUの更なる大容量Flash実装に向け、MCU微細化技術革新が起こりつつある
  • 大容量Flash低価格実装と製造プロセス進化によりIoT MCUはより汎用化する
  • COVID-19による先端半導体供給不足がMCU半導体ベンダへ影響するかは、要注目

STM32G0とSTM32CubeMX 5.0ウェビナーのお知らせ

STM32G0とSTM32CubeMX 5.0ウェビナー
STM32G0とSTM32CubeMX 5.0ウェビナー(出典:STMサイト)

STM32G0とSTM32CubeMX 5.0のWebinarが、日本時間2019年1月24日、木曜午前3時から午前4時に開催されます。アジェンダは、下記です。

  • Overview of STM32 microcontrollers, with focus on the STM32G0
  • Key features and peripherals embedded in the STM32G0
  • Description of the STM32CubeMX 5.0 graphical software configuration and code generation tool
  • Demonstration of hands-on examples running on the STM32G0 developed with the full-featured, free-to-use Keil MDK for STM32G0 and STM32CubeMX 5.0

木曜勤務に差し支えるかもしれない深夜ですが、PCさえあれば誰でも無料で視聴できます(要ログイン)。

関連投稿:守備範囲が広いSTM32G0

1週間位待てば、STMサイトのビデオコーナーでいつでも見ることができようになるとは思いますが、新汎用MCU STM32G0とそのAPI開発ツールSTM32CubeMX 5.0の新鮮な情報、参加者主催者のQ&Aが直接聞ける機会ですので、お知らせします。

最新ARM Cortex-Mマイコン動向とIoT MCUを特徴付ける3要素

最新ARM Cortex-Mマイコン:MCU製品からその動向を調査します。前稿ルネサスエレクトロニクス(以下ルネサス)RL78ファミリの汎用MCU変遷に続き、ARM Cortex-MコアMCU編という位置づけです。最後に両者を比較し、IoT MCUを特徴付ける3要素についての私見を示します。

最新ARM Cortex-Mマイコン製品の特徴

本ブログ掲載中のベンダ各社とMCUです。

ブログ掲載中の各社MCU
ブログ掲載中の各社MCU

ルネサス以外は、全てARM Cortex-Mコアを用いています。これらをARMコア製品、一方ルネサスはNon ARMコア製品と呼ばれます。現在のMCUは殆どがARMコア製品です。

各社ともIoT向けのMCU新製品を発売中です。その中からNXPセミコンダクターズ(以下NXP)のLPC51U68 MCU(2018年3月発売)をピックアップし特徴を抽出します。

LPC51U68は、8/16ビット置換えを狙う低消費電力Cortex-M0+コアを最大100MHz動作まで高め、USB2.0、256KB ROM、96KB RAM実装、12bit 5Mspsと高機能ADC内蔵のMCUです。

LPC51U68 MCU Block Diagram (出典:LPC51U68 Fact Sheet)
LPC51U68 MCU Block Diagram (出典:LPC51U68 Fact Sheet)

コア速度のアプリケーション対応(置換えからIoT市場開拓へ)

32ビットCortex-M0/M0+コア本来の目的は、既存8/16ビットMCUの置換えです。従ってこれまでは、既存MCU(例えばルネサスS1/S2/S3コア)速度と同等の30~50MHzがCortex-M0/M0+コア動作速度でした。しかし、NXPはより低速で低消費電力な8MHzや15MHzのコア速度の新製品を発表しました。

関連投稿:8MHz Cortex-M0+コア採用のLPC8N04

関連投稿:15MHz Cortex-M0+コア採用のLPC80x

つまり、既存MCU置換えだけでなく、よりアプリケーションに適したコア速度採用のARMコア製品の一環として開発されたのが紹介した100MHz動作のLPC51U68です。

ARMコア製品は、8/16ビット置換えから、IoTアプリケーション市場開拓への展開も始めたと言えるでしょう。

IoT向きの周辺回路実装(汎用からIoTアプリケーションMCUへ)

従来MCUもUSB接続でプログラムダウンロードやデバッグはできます。これらに加えLPC51U68のUSBは、USB 2.0ホスト機能もライブラリで提供します。PC同様、USBキーボードやデータロガー用に簡単に大容量USBメモリがMCUに接続できるので、HMI(Human Machine Interface)に優れたIoTデバイスが開発できます。

ADCもE-meterなどにも使いやすいような高機能版が用いられています。

ROM/RAM容量が増えるのは、これらIoT向け周辺回路を制御・活用するために必要で、副次的なものと言えるでしょう。

評価ボードLPCXpresso51U68 (OM40005) Development Board価格も¥3,518(DigiKey調べ)であることから、これだけ機能が増えても、従来ARMコア製品と同レベルで入手できると思われます。

LPCXpresso51U68 (OM40005) Development Board
LPCXpresso51U68 (OM40005) Development Board

最新ARM Cortex-Mマイコン動向まとめ

NXP)LPC51U68だけでなく、競合他社Cortex-M0/M0+/M3新製品についても同様の傾向が見られます。最新Cortex-Mマイコンの動向をまとめたのが下記です。

  1. IoTアプリケーションのためコア動作速度を数MHz~100MHz超の範囲で電力消費最適化
  2. USBホスト機能や高機能アナログなど、IoTアプリケーション対応高機能周辺回路を実装

一方、前稿Non ARMコア製品のルネサスMCU動向をまとめると、

  1. 低消費電力16ビットS1/S2/S3コアの使い分けで、きめ細かな電力消費へ対応
  2. アナログ機能やモータ制御機能を追加実装し、IoTアプリケーションMCUへ展開

どちらも、無線通信やセキュリティの要求が高いIoT MCUに対して、従来の汎用MCU製品のままでは対応しにくく、より具体的なIoTアプリケーションへ向けた機能拡張を行い、セミASSP的なIoT MCU製品となっています。
※セミASSP:汎用MCUをベースに、特定アプリケーション向けに調整したMCU。汎用MCU開発に慣れた開発者が、特定アプリ開発に臨む時、ASSPに比べ馴染みやすく開発障壁が低い。

ARMコア製品が柔軟性や拡張性に富み、一方で、Non ARMコア製品のルネサスもIoT向きに汎用MCUを調整しています。いずれにしても汎用MCUは、よりアプリケーション向きのMCUへ変化しつつあります。

IoT MCUを特徴付ける3要素

IoT MCUは、以下3要素から構成されると考えると理解が容易になります。

  1. IoTアプリケーション対応高機能周辺回路
  2. MCUコア
  3. 汎用周辺回路:タイマー、GPIO、UART、I2C、一般的ADC

先ず、どのようなアプリケーションにMCUを使うかで「IoTアプリケーション対応周辺回路」が実装されます。例えば、USBホスト機能が必要なアプリであれば、NXP)LPC51U68などです。

次に、そのアプリケーション周辺回路制御に十分な動作周波数や性能をもつ「MCUコア」が決まります。

最後に、「汎用周辺回路:タイマーやGPIO、UART、I2C回路」の実装数がアプリケーションに対して十分か調べます。

IoT MCUの3要素
IoT MCUの3要素。NXP)LPC51U68の分解例と開発方法。

多くのアプリケーションに広く対応できる汎用MCUの汎用周辺回路のみで開発できるアプリケーションであれば、実績が多い汎用MCUを選び、IoTに必要となる無線やセキュリティ機能を外付け部品で構成すると良いと思います。

より具体的なIoTアプリケーションに対応する場合は、IoTアプリケーション対応周辺回路を持つ各社の新製品MCU(セミASSP MCU)を選び、開発するのが良いと思います。

「IoTアプリケーション対応高機能周辺回路」とは、文字通りアプリに応じた開発や応用、最適化が必要です。各社はこのIoTアプリケーション対応周辺回路に対して、ライブラリやアプリケーションノートを提供しますので、開発はそれらを応用、流用するとリスクが低くなります。

一方、「MCUコア」と「汎用周辺回路:タイマーやGPIO、UART、I2C回路、一般的なADC」は、既存の開発ソフトウェアやハードウェアがほとんどそのまま使える可能性が高い部分です。

IoT MCUを早期開発するには、この既存ソフトウェアやハードウェアを流用し、より多くの時間をIoTアプリケーション開発へ配分する方法が適します。弊社マイコンテンプレートは、この汎用開発部分に役立ちます。ご活用ください。

RL78ファミリから解る汎用MCUの変遷

汎用MCUの定義が変わりつつあります。ルネサスエレクトロニクス(以下、ルネサス)のRL78ファミリから、最近の汎用MCUの変わりつつある現状を考察します。

RL78ファミリの汎用MCUロードマップ

2018年6月版の最新RL78ファミリMCUカタログから抜粋したRL78ファミリのロードマップです。

RL78ファミリロードマップ (出典:ルネサス汎用MCUラインアップカタログ)
RL78ファミリロードマップ (出典:ルネサス汎用MCUラインアップカタログ)

赤囲みのRL78/G1xが汎用MCU製品を示します。2014年以後は、For小型システムやForモータシステムなど、一見するとASSP:application-specific standard product、特定用途向けMCUのような製品が汎用MCUの中にあります。

これは、RL78/G1Fのコンセプトを見るとその理由が理解できます(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御

RL78_G1Fのコンセプト(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御)
RL78_G1Fのコンセプト(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御)

つまり、汎用MCU RL78/G14を、モータシステム向きに周辺機能拡張や使い勝手を向上させたのがRL78/G1Fなのです。あくまで汎用MCUがベースで、それを特定用途、この場合はモータ制御向けに調整したのです。

このメリットは、開発者、ルネサス双方にあります。開発者にとっては、使い慣れた汎用MCUの延長上に特定用途向けMCUがあるので馴染みやすく開発障壁が低くなること、ルネサスにとっては、新規ASSPを開発するよりも低コスト、低リスクなことです。

RL78ファミリの汎用MCUとは、変わる定義

RL78ファミリのMCUには、S1/S2/S3という3種類のコアがあります。数字が大きくなると高性能になります。

関連投稿:RL78 S1/S2/S3コアの分類

ルネサスの汎用MCUとは、これらS1/S2/S3コアを使ったMCU製品を指します。また、RL78/G1FのようにS3コアMCUのRL78/G14をベースとし、特定用途向け機能を付加したものも汎用MCUです。

※弊社は、S1/S2/S3コアの各汎用MCUに対してRL78/G1xテンプレートを販売中です。

販売中の汎用MCU向けテンプレートと特定アプリ向けMCUの関係
販売中の汎用MCU向けテンプレートと特定アプリ向けMCUの関係

この特定用途名が、ルネサスが考えるIoT時代にふさわしい汎用MCUと言えます。「汎用」という従来の広く漠然とした用途よりも、より「具体的な用途・応用に適す汎用MCU製品」としてRL78/G1FやRL78/G11があるのです。

特定用途向け汎用MCU開発にもRL78/G1xテンプレートが役立つ

このIoT時代の特定用途向けMCU開発でも、弊社RL78/G1xテンプレートが使えます。ベースが「汎用中の汎用」RL78/G10(S1コア)、RL78/G13(S2コア)、RL78/G14(S3コア)だからです。

例えば、RL78/G1Fのアプリケーションノートやサンプルコードは、具体的でほとんどそのまま開発製品へ適用できます。しかし、用途が限定されているだけに、逆に簡単な機能追加が難しい場合もあります。そんな時に、テンプレートが提供するサンプルコードを活かしつつ処理を追加できる機能を使うと便利です。

ここでは、ルネサス汎用MCUについて考察しましたが、NXPセミコンダクターズやSTマイクロエレクトロニクス、Cypressセミコンダクターなどの他社MCUベンダも同様です。汎用MCUの定義は、より具体的な用途・応用名が付いたIoT MCUへ変わりつつあります。しかし、基本の汎用MCUを習得していれば、より応用し発展できます。基本が重要だということです。

IoTでは、MCU開発はより複雑で高度になります。また、製品完成度の要求もさらに高まります。基本要素や技術を、(たとえブラックボックス的だとしても)積み上げられる、基礎・基本を習得した開発者のみが生き残ると思います。開発者個人で基礎を習得するために、是非弊社マイコンテンプレートをご活用ください。