エレクトロニクス分析専門家が見るルネサス

本ブログに開発者の立場で何度かルネサスエレクトロニクス批判(本心は応援?)をしましたが、エレクトロニクス分析専門家、大山 聡氏(グロスバーグ代表)がEE Times Japanに寄稿された「なぜルネサスは工場を停止しなければならないのか ーー 半導体各社のビジネスモデルを整理する」で、数値分析結果を示され、明確な危機感・不安感に変わりました。

NXP、STMと大きく異なるルネサスのSG&A

SG&A(selling, general and administrative expenses)は、販売費及び一般管理費のことで、顧客に対するサポート負担経費を示します。売り上げ11%が業界平均なのに、ルネサスは19%と吐出しています。原因は、Intersil買収。巨額IDT買収は、今後の負担としてさらに悪化する方向になるようです。

関連投稿:ルネサスのIDE買収とリスク分散ルネサスエレクトロニクス、IDE買収

詳しくは、寄稿内にあるグロスバーグ作成の「主な半導体メーカーのR&Dおよび、SG&A比較」図を見ると一目瞭然です。

個人開発者としてルネサスの統合開発環境や評価ボードの価格の高さは、いかがなものか(でもルネサスを贔屓するバイアスはありました)と思ってきましたが、この寄稿を読んで国産MCUの先行きに不安感が大きくなりました。

技術的に勝っていてもビジネスでは成功しない例は、日本では多い歴史があります。

日立、三菱、NECの統合・融合したルネサス、日本全体の地盤沈下が見え隠れするなか、国産MCU技術力も同じ歴史をたどるのでしょうか?
もし自分がルネサスMCU研究開発担当なら、このままでライバルと競えると考えるでしょうか?

STM32G0x専用Edge MCUテンプレート開発

本稿は、STマイクロエレクトロニクス(以下STM)のSTM32G0xデバイス(Cortex-M0+/60MHz)が、汎用MCUのSTM32Fx(F0/Cortex-M0/48MHz、F1/Cortex-M3/72MHz)と異なり、IoT向きの新世代Edge MCUであること、そのテンプレート開発も汎用STM32Fxテンプレートと異なること、これら理由を説明します。

まとめ

はじめに内容をまとめた表1と表2、図1を示し、次章からその詳細理由を説明します。

要するに、STM32G0xデバイスのIoT Edge MCU向きの広いハードウェア性能を活かすには、LL(Low Layer)APIを利用したSTM32G0x専用Edge MCUテンプレート開発が得策だということです。

表1 STM32G0xデバイスとSTM32F0/F1デバイスのハードウェア差
デバイス名 製造プロセス コア 最大動作周波数 Edge MCU向き周辺回路
STM32G0x
デバイス
70nm Cortex-M0+ 60MHz 2.5Msps 12ビットADC、USB Type-C、暗号化処理
STM32F0/F1
デバイス
120nm Cortex-M0/M3 48/72MHz 特になし(汎用MCU)
表2 STM32G0x Edge MCUテンプレートとSTM32Fxテンプレートの違い
テンプレート名 使用API 流用性 動作確認評価ボード IoTサービス 重点ポイント
STM32G0x Edge MCU
テンプレート
LL(+HAL) 低い STM32G071RB 今後決める(TBD) STM32G0x性能発揮
STM32Fx
テンプレート
HAL 高い STM32F072RB
STM32F103RB
特になし(汎用) デバイス間移植・流用性
テンプレート開発の方向性
図1 テンプレート開発方向性。同じメインストリームMCUでもSTM32G0xデバイスは専用性、STM32Fxデバイスは汎用性重視。

STM32G0xデバイス(Cortex-M0+/60MHz)の特徴

STMの場合、新世代Edge MCUと従来MCUの最も異なる点は、製造プロセスです。STM32G0xは70nm、STM32Fxは120nmの製造プロセスです。

製造プロセスによる性能差は、Intelプロセサでお馴染みだと思います。ごく簡単に言うと、製造プロセスを小さくすると、全く同じMCUでも、動作周波数が上がり、消費電力は下がる、販売コストも下がるなど、良いこと尽くめの効果が期待できます。

さらにSTM32G0xは、Cortex-M0の電力消費を改良しCortex-M3の良さを取り入れたCortex-M0+コアを採用しています。つまり、コアと製造プロセスの両方でCortex-M0のSTM32F0デバイスを上回り、動作周波数をCortex-M3のSTM32F1デバイス72MHzに近い60MHzとしたことで、STM32F1と同程度の高性能なのに超低電力動作します。まさに新世代のIoT MCUです。

また、2.5Mspsの12ビットADC、USB Type-C、暗号化処理などEdge MCUに相応しい周辺回路を実装しています(3タイプあるデバイスで実装周辺回路を変え、低価格供給中)。

STM32G0xデバイスとSTM32F0/F1デバイスのハードウェア差をまとめたのが表1です。STM32G0x出現で、STM32F1/F0デバイスで開発する意味は、低下したとも言えるでしょう。
※但し、他デバイスへの移植性・流用性を重視した開発ならSTM32F1/F0デバイスを使い汎用STM32Fxテンプレート使う意味は依然として大きいです。

現在はSTMから何のアナウンスもありませんが、STM32G0xと同じ70nm製造プロセスでCortex-M3/≦100MHzの上位デバイスSTM32G1xが発売されれば、なおさら低下します。

関連投稿に上記特徴の出典などがあります。
関連投稿:守備範囲が広いSTM32G0
関連投稿:STM新汎用MCU STM32G0

STM32G0x専用Edge MCUテンプレートと汎用STM32Fxテンプレートの違い

STM32Fxテンプレートは、ハードウェア差を隠蔽するHAL(Hardware Abstraction Layer)APIを使い、万一性能不足などでデバイスを変える事態が生じても、同じソフトウェアを使えます。従って、STM32F0とSTM32F1の両デバイスで動作するアプリケーションが、ほんの少しの修正で素早く作成できます。

これは、HALのおかげです。HALがデバイスや周辺回路差を吸収するため、アプリケーション側は移植性の高いシンプルな記述ができるのです。その副作用として、アプリケーション記述コードは少なくてもコンパイル後のコードサイズは、周辺回路を直接制御するLL(Low Layer)に比べ大きくなります。

関連投稿:STM32CubeMXの使い方、STM32CubeMXの2種ドライバライブラリの章参照

HALを使うと言うことは、たとえデバイスが変わっても開発したソフトウェアとその労力を無駄にせず、流用・応用できることが最大のメリットです。

汎用「STM32Fxテンプレート」は、この流用・応用に適したテンプレートです。動作確認評価ボードは、STM32F072RBとSTM32F103RBのみですが、全ての汎用STM32Fxデバイスへ応用できます。勿論、ここで示したSTM32G0xデバイスにもこのHALを使う手法は適用可能です。

一方、「STM32G0x専用Edge MCUテンプレート」は、LL APIを使います。つまり、STM32G0x専用のテンプレートです。※LL APIは、使用デバイスにより異なるので専用テンプレートになります。

STM32G1xデバイスが持つCortex-M0からCortex-M3までをカバーする広い適用力と超低電力動作を活かすには、ソフトウェア開発にHAL比60~80%の高速処理のLLを使った方が得策と判断しました。

つまり、STM32G0xデバイスをEdge MCUと認め、そのSTM32G0xの性能や能力を十分に発揮する専用テンプレートがSTM32G0x専用Edge MCUテンプレートです。
※但し、流用性が高い一部機能には、HAL活用も考慮中です。LLとHALは混在可能です。

STM32G0x専用Edge MCUテンプレートと汎用STM32Fxテンプレートの違いをまとめたのが表2、テンプレート開発の方向性を示したのが図1です。

STM32G0x Edge MCU評価ボード選定

STM32G0x専用Edge MCUテンプレートの動作確認評価ボードには、Nucleo-G071RB(¥1,203)を予定しています。

前投稿で示したEdge MCUテンプレート評価ボードの3要件を再掲します。

  • R1. 低価格、入手先豊富なEdge MCU評価ボード <¥3,000
  • R2. 最新Edge MCU使用(2018年後半の新しいIoTトレンドに沿って開発されたEdge MCUであること)
  • R3. 何らかのIoTサービス例を簡単に示せる

これら3要件のうち、R3:何らかのIoTサービス例を示す要件がNucleo-G071RB 単独ではNGですが、Arduinoコネクタに何らかのIoTサービスシールドを追加することで満たす予定です。

評価ボードNucleo-G071RB
評価ボードNucleo-G071RB。64ピンパッケージでも電源供給が2本のみのなのでアートワーク担当者が喜ぶ。

※STM32G0xデバイスの評価ボードで、IoTのUSB Type-Cサービスを示すSTM32G0 Discovery Kitや、暗号化処理サービスを示すSTM32G081B-EVALは、両方ともR3要件を満たしますが、価格要件R1<¥3,000を満たさないので利用を断念しました。

MCU更新情報取得方法と差分検出ツール

MCUプロジェクト開発中は、雑音に邪魔されず当面の課題解決に集中したいものです。しかし、MCU最新情報や開発ツール更新などは、いつ発生するかが不明で、開発中であってもこれらの情報把握は大切です。新情報が、課題解決の決め手になる可能性もあるからです。各ベンダーもこの最新情報提供のために便利機能を提供中です。

今回は、 STマイクロエレクトロニクス(以下STM)に追加された更新情報メール通知機能と、更新情報量が多い時に効率的に差分を検出するツール:DiffPDFを紹介します。

STM最新MCUと更新情報のメール通知機能

STMは、STM32マイコンマンスリー・アップデートを配布中です。月一回、MCU最新情報や資料の更新情報へ簡単にアクセスできます。ただし、マンスリー・アップデートは、全てのSTM32MCU更新情報を集約した言わばポータルサイトです。自分が開発中のMCU情報を含む場合もありますし、そうでない場合もあります。開発スケジュールが押し迫ると、当該重要情報や更新を見落とす事があるかもしれません。

そこで、自分の開発関連情報のみをピックアップし、コンテンツ更新時は毎週木曜日にメール通知する機能がSTMサイトに追加されました。設定方法を、STM32MCUコード生成ツール:STM32CubeMXのユーザマニュアル:UM1718を例に紹介します。

UM1718をお気に入りに登録
UM1718をお気に入りに登録する方法

STMサイトにアクセスし、UM1718で検索すると、右上に「お気に入りに登録>」ボタンが現れます。これをクリックし、「更新情報メールを受け取りますか?」に「はい」を選択するだけです。UM1718以外でも同様です。

更新情報がほしいページの「お気に入りに登録>」クリックで、マイページのお気に入り一覧に追加され、更新発生の木曜に一括してメール通知されます。削除も簡単です。

マイページのお気に入り一覧
マイページのお気に入り一覧、削除も簡単

マンスリー・アップデートよりも早く、しかも、自分の開発必須情報に絞った更新通知メールなので、更新イベントの見落とがなく便利です。

効率的に更新情報量をさばく

更新通知を受け取った後は、どこが変わったかを素早く把握したいものです。新しいSTM32CubeMX version 5のユーザマニュアル:UM1718 Rev 27全327ページを例に、更新箇所特定ツールDiffPDFを紹介します。

STM32CubeMXは、MCU処理スケルトンと周辺回路初期化処理Cソースを生成するツールです。周辺回路の設定はGUIで行い、STM32MCU開発の最初の一歩を踏み出す時に使います。2018年末、このSTM32CubeMXがversion5に更新されました。

STM32CubeMX v5は、v4にマルチパネルGUIを加えパラメタ設定をより容易に、さらに、MCU性能評価やシミュレーション機能なども追加されました。このSTM32CubeMXのユーザマニュアルがUM1718です。

既にSTM32CubeMXを使いこなしている方にとって、Rev 27の327ページは分量が多すぎます(初めてSTM32MCUを使う方は、UM1718を読むことをお勧めします。日本語版もありますが最新版和訳ではないことに注意してください)。このように改版資料の情報量が多い時は、DiffPDFが便利です。

2PDF資料を⽐較するDiffpdf Portable

Diffpdf Portableは、2つのPDF資料を比較し差分を明示するWindows 8.1用のツールで、Windows 10でも動作します。UM1718 Rev27とRev 25をCharactersで比較した例が下記です。

DiffPDF新旧UM1718比較結果
DiffPDFで新旧UM1718を比較した結果

マルチパネルGUI によりSTM32CubeMXのuser interfaceが大きく変わったことが一目で解ります。
※効率的に更新箇所、差分を見つけることに焦点を置きましたので、新しいSTM32CubeMX version 5の説明は、後日改めて行う予定です。

DiffPDFを使えば、どこが変わったかを素早く見つけられるので、ハイライト箇所のみを読めば短時間で内容把握ができます。その結果、更新内容が、現状課題の解決に役立つか否かの判断も早くできます。

まとめ

忙しいプロジェクト開発中であっても、MCU最新情報や開発ツール更新イベントは発生します。

STMサイトに追加されたお気に入り登録を使えば、自分の開発に必要情報の更新時のみ木曜メールで通知されるので、プロジェクト関連情報の変更イベントを見落としなく把握できます。

さらにDiffPDFを使えば、更新情報量が多くても、どこが変わったかが簡単に見つけられるので、更新内容がプロジェクトの課題解決に役立つか否かの判断が早くできます。

SLA (Software license Agreement)

STマイクロエレクトロニクス(以下STM)のSTM32マイコン マンスリー・アップデート2018年8月 P4のコラムに、ソースコード生成ツールSTM32CubeMXのSLA(Software license Agreement)変更が記載されています。

SLAとは

SLAは、ソフトウェア利用(または使用)許諾契約(きょだくけいやく)のことです。ウィキペディアに詳しい説明があります。

コラム記載の新しいライセンスが、SLA0048 – Rev 4 – March 2018です。この新ライセンス中にSTM32CubeMXで検索してもヒットしませんし、法律文言の英文解釈能力も持ち合わせていませんので、コラムをそのまま抜粋します。

「マイコンに書き込まれた状態であれば著作権表示などは不要だが、それ以外の状態であればソースコード、バイナリいずれも著作権表示などは必要」になりました。

STM32CubeMXでHALを使ってソースコードを生成すると、ソースコードの最上部に下記コメントや、その他の部分にも自動的にコメントが挿入されます。

STM32CubeMX生成ソースコード
STM32CubeMX生成ソースコード(STM32Fxマイコンテンプレートの例)

要するに、新SLAは、これらSTマイクロエレクトロニクス提供ツールSTM32CubeMXが自動挿入したコメントを、我々開発者は、勝手に削除してはいけない、と言っているのだと思います。

IDE付属ソースコード生成ツール

マイコンのソースコード生成ツールは、STM32CubeMX以外にも、各社のIDE(統合開発環境)に付属しており、

  • ルネサスエレクトロニクス:コード生成
  • NXPセミコンダクターズ:SDK、Processor Expert
  • サイプレス・セミコンダクター:Generate Application

などがあります(固定ページのAPI生成RADツール参照)。これらツールが自動生成するソースコードには、開発者が解りやすいように多くのコメントが付いています。

殆どのIDE付属エディタは、最上部の著作権関連コメントを畳んで表示することが可能ですし、これらコメントは、コンパイル後、つまりマイコンに書き込まれる状態では削除されますので、普段は注意を払わない開発者が殆どだと思います。

これらコメントも、STM32CubeMXと同様、各社のSLA違反になる可能性がありますので、生成ソースコードでのコメント削除はせず、オリジナル出力のまま使うことをお勧めします。

マイコンテンプレート

弊社販売中のマイコンテンプレートも、上記コード生成ツールのソースコード出力は、そのまま使っております。

マイコンテンプレートの版権は、ご購入者様個人に帰属します。但し、テンプレートそのものの転売、配布はご遠慮ください。お願いいたします。🙏

STM32のStep-by-Step Guide

STマイクロエレクトロニクス(以下STM)公式ブログのカテゴリ:TutorialsからSTM32開発環境を構築する方に最適な投稿を見つけたので、紹介と気になる点を示します。

Step-by-Step Guide

STM32 step-by-step learning program
STM32 step-by-step learning program

2018年10月8日が投稿日のこの記事は、STM32の開発環境(IDE)構築から評価ボード、UART接続、IoT評価ボードとスマホ接続などを5つのStepで示しています。内容は、前後半の2つに大別できます。

前半は、Step1(45分)で開発環境を構築し、Step2(30分)でSTM32CubeMXとHAL説明、Step3(34分)で評価ボード(NUCLEO-L476RG)とUART利用のPC通信を紹介するなど、内容は、弊社昨年のブログ投稿の最新版と言えます。

後半は、Step4(60分)でIoT評価ボードDiscovery kit IoT node (B-L475E-IOT01A)(DigiKeyにて¥6,370販売中)の使い方、Step5(30分)でAndroidスマホと同評価ボードをBLEで直結し、IoTシステムを構築しています。

IoT評価ボードは、Cortex-M4(915MHzまたは868MHz)を使い、Arduinoコネクタ、モーション、ジェスチャ、環境センサなどが実装済みなので、スマホで取得センサデータを視覚化できます。さらにAWS(アマゾン ウェブ サービス)経由でも接続できるので、本格的なIoTノード開発・評価にも使えそうです。AWSとの接続方法は、コチラの動画(11分12秒)に解説されています。
※動画閲覧にはログインが必要です。

関連投稿:Amazon、IoTマイコンへFreeRTOS提供

気になる点1:TrueSTUDIO

STMは、2017年12月に統合開発環境TrueSTUDIO開発元のAtollic社を買収しました。その結果、無償IDEのラインナップは従来と同じですが、開発会社の説明が変化しました。

関連投稿:2018マイコンベンダ最新ニュースのSTM章参照

STM32ソフトウェア開発スイート(要ログイン)のページで説明します。License typeでフィルタすると、無償版IDEラインナップが表示されます。SW4STM32欄のShow more…をクリックすると下段に“This product is supplied by a third party NOT affiliated to ST”の記述があります。これが気になる点です。

IDE License type Free検索結果
IDE License type Free検索結果。SW4STM32には、”not affiliated to ST”の記述がある。

この記述は、TrueSTUDIO欄には無く、代わりにProduct Imageに“ST acquires Atollic”と記載され、STとAtollicのロゴが表示されます。つまり、STMの無償IDEは、TrueSTUDIOが標準?の感じです。

TrueSTUDIOのProduct Image
TrueSTUDIOのProduct Imageは、STとAtollicのロゴが表示

従って、新たにSTM開発環境を構築される方は、TrueSTUDIOを選ぶと良いかもしれません。これを裏付けるのが、Step1紹介のIDEがTrueSTUDIOだということです。TrueSTUDIOがSW4STM32とほぼ同様に操作できるのは、コチラの動画(9分42秒)で解ります。

弊社2017年9月発売のSTM32FxテンプレートもSW4STM32を使っていますが、これもTrueSTUDIOに変えた方が良いかもしれません。但し、TrueSTUDIOには、SW4STM32プロジェクトをそのままインポートする機能が備わっていますので、二手間のOKクリックが増えますがしのげそうです(Step4のP8、Appendix Porting an AC6 example to TrueSTUDIO参照)。

Porting SW4STM32 project to TrueSTUDIO(出典:Step4)
Porting SW4STM32 project to TrueSTUDIO(出典:Step4)。OK2回クリックでSW4STM32プロジェクトをTrueSTUDIOへインポートできる。

IDEポーティングは、MCUベンダーが、古いIDEから新しいIDEへ替える時に良く使う方法で、NXP(Kinetis Design Studio→NXP Expresso)、ルネサス(Hew→CS+)などでもおなじみです。SW4STM32→TrueSTUDIOがあるのも、STMがTrueSTUDIOを推薦しつつある証と言えるでしょう。

気になる点2:Edge MCUとNode MCU

Step-by-Step Guide資料が前後半で使用MCUと評価ボードが2つに別れたように、前半のEdge MCUと後半のNode MCUの2つの機能に分かれてIoT MCUが発展する気がします。

  • Edge MCU:低消費電力でIoTデータ取得(アナログフロントエンド)機能を備えたMCU。従来のベアメタル開発の延長・発展形。
  • Node MCU:AWSなどIoTネットワーク出入口の無線、高度なセキュリティ機能を備えたMCU(Edge MCUを包含する場合あり、例:Discovery kit IoT node)。FreeRTOSなどのOS実装は必須で、従来MCUより高機能・高性能、1GHzにせまる高速動作。

※ベアメタル開発:OSなどを使わないMCU開発

Edge MCUとNode MCUの違いは、端的に言えば、ベアメタルソフトウェア開発かRTOSソフトウェア開発かです。MCUソフトウェア開発者も、ベアメタルとRTOSの2つに分かれるかもしれない、というのが第2の気になる点です。

Edge MCUだけではIoTに接続すらできません。Node MCUがIoT接続に必須になりつつある気がします。

2017年アナログICメーカー売上高ランキング

2017年のアナログICメーカー売上高トップ10が、5月2日EE Times Japanで発表されました。

2017年アナログICメーカー売上高ランキング(出典:記事)
2017年アナログICメーカー売上高ランキング(出典:記事)

アナログ市場全体の成長率は10%、そのうちの上位10社のみで59%ものシェアを占めます。唯一マイナス成長となったNXPは、昨年汎用ロジック/ディスクリート事業をNexperiaへ売却したためです。

MCUメーカーのアナログICシェア

2017年アナログIC売上高シェア
2017年アナログIC売上高シェア。ブログ掲載中のMCU各社もランクインしている。

本ブログで扱っているMCUベンダのSTMicroelectronics(シェア5%)、NXP Semiconductors(4%)、ルネサスエレクトロニクス(2%)などもこのトップ10に入っています。一方Cypress Semiconductors のMCU PSoC 4などは、コンパレータやアンプなどのアナログ機能が他社MCUよりも充実していますが、売上高トップ10には入っていません。ADCやDACなどのアナログ単体ICの範疇にPSoC 4が入らないためかもしれません。

これらMCU各社をハイライトして、2017年アナログIC売上高シェアをグラフにしました。Texas InstrumentsもMCUを販売していますが、ブログの対象外ですので外しています。

IoTでは、とりわけMCUのフロントエンドにアナログ機能が必要です。好調なアナログ市場の伸びに伴って、アナログ機能をMCUに搭載したデバイスが発表される可能性があると思います。