新しいMCUハードウェアの学び方

新しくMCU開発を始める方も多い時節です。新人や新担当者が、効率的にMCUを学ぶ方法を示します。今週は、MCUハードウェア編です(MCUソフトウェア編が、前投稿)。

Summary:新しいMCUハードウェアの学び方

  1. ベンダMCU評価ボードのアートワーク、実装部品を学ぶ
  2. 知りたい用語は、ChatGPTから回答を得る
  3. MCUとセンサなどの周辺回路動作電圧差に注意
ベンダMCU評価ボードの教師活用
ベンダMCU評価ボードの教師活用

MCUハードウェア習得のコツは、ベンダ提供MCU評価ボードの教師活用です。

開発に適す評価ボードの回路図やアートワーク、BOM(Bill of Materials:実装部品表)など全ての情報を活用します。

最近のMCUは、数100MHzクラスの高速動作です。安定した高速動作を支えるのは、MCU周りの電源配線アートワーク、実装部品、評価ボード電源回路です。

自社MCUボード開発時は、MCU周りアートワーク、評価ボードと同じ部品、これらを自社MCUボードへ適用するのが基本です。評価ボードのアートワークや実装部品の意味を考えることで、実践的なMCUハードウェアが学べます。

注)新しい点は、ChatGPT利用の知識習得、評価ボード教師活用の2点です。
注)1.2.3.の詳細は、後述します。

MCU評価ボード教師活用

理屈は知っていても、その理屈を実際の製品基板へ「上手く反映させる」のが難しい。これは、ハードウェア開発にありがちです。

例えば、高速動作には、配線を太く短くしノイズ対策すべきだが、部品の大きさや故障交換も考慮すると、この配置にせざるを得ない等々です。

つまり、ハードウェア開発者が、様々な制約条件を優先度で総合設計した結果が、製品に現れます。

この総合設計結果は、ベンダMCU評価ボードでも同じです。ユーザが、MCUを評価するためのボードですから、ユーザがどのようにMCUを使っても正常動作することに重点を置いた設計結果です。

言い換えると、MCUを最高速で動かした次の瞬間に低電力動作、更に割込み発生で瞬時に最高速へ戻るなど、究極のMCU動作にも余裕で耐えられる配線アートワークや電源部品を選定し、評価ボードへ実装済みです。

これらノウハウを詰め込み製品化したベンダMCU評価ボードのハードウェアを、手本や教師(≒ベンチマーク)として利用しない手はありません。

但し、設計ノウハウが文章化されることは、殆どありません。従って、担当者は、評価ボードから設計ノウハウの中身、背景を考え、学ぶことが必要になります。

つまり、製品設計を見抜く洞察力が、ハードウェアスキル向上に必要です。

ハードウェア製品の中身、背景を見抜く洞察力
ハードウェア製品の中身、背景を見抜く洞察力

経験者アドバイスを、MCUソフトウェア編では期待しました。しかし、MCUハードウェアは、先ずは物言わぬ評価ボードを教師:ベンチマークとする学びをお勧めします。理由は、MCUハードウェアや実装部品の世代交代の速さです。

ベンダMCU評価ボードは、最新MCUは勿論、MCU性能を活かす実績ある最新部品を使っています。MCUハードウェアは、ベンチマークから直接学ぶ方が、効率的です。

経験者アドバイスを活用するのは、優先度による総合設計時です。ただ、総合設計ノウハウは、状況に応じて刻々と変わり、かつ、文章化し難い、つまり、直感のようなものであることも忘れないでください。たとえ経験者でも、第3者への直感伝授は、難しい事柄です。

ポイントは、以下です。

  • ベンダMCU評価ボードをベンチマークにすること
  • 効率的に知識を得ること
  • MCUハードウェア世代交代に注意すること

これらポイントの実現手段が、前章Summaryに示したChatGPT利用と評価ボード教師活用です。

以下、Summary 1.2.3の詳細を説明します。

1. MCU評価ボードアートワーク、実装部品の意味を学ぶ

新しいMCUハードウェアの学び方その1
新しいMCUハードウェアの学び方その1

低速デバイス同士は、接続さえ間違わなければ機能します。しかし、数100MHzクラスやRF(無線周波数)ハードウェアのデバイスは、違います。

最近のMCUは、この数100MHzクラスを優に超える動作周波数です。IoT MCUなら無線デバイスも実装します。これら高速デバイスの安定動作や、周囲にノイズをまき散らさない工夫として、デバイス間の配線アートワークと電源供給が重要です。

回路図は、デバイス間の接続(ネットリスト)を作成します。同じ接続でも、実際にデバイスを基板上へ配置、配線するPCBアートワークが、高速デバイス製品成功の決め手です。

ベンダMCU評価ボードは、回路図、アートワーク情報、BOMも提供します。但し、提供だけで肝心の解説などはありません。従って、これらから決め手を自分で抜き取り、学ぶことが必要です。

例えば、アートワークを眺めていると、なぜMCUのこの配線だけ太く短いのか、BOMからは、なぜこの部品だけ高品質なのか、など疑問が沸いてくるハズです。

疑問をそのままにせず、自分なりに意味を考え、答えを持った後に、ChatGPTを利用すれば、より深い洞察ができます。

2. ChatGPTで回答を得る

新しいMCUハードウェアの学び方その2
新しいMCUハードウェアの学び方その2

ハードウェア進化は、早く劇的です。その例が、PC CPUソケットです。CPUソケットは、同一でのハードウェア進化を誰もが望みますが、時にはソケットや周辺部品を全面変更してまで進化に対応します。

新製品MCUや、これを活かす部品の情報は、ネット収集が効率的です。AIは、これら最新情報を常に収集、分析しています。ChatGPTは、質問の最新回答を得るのに適しています。

ChatGPT回答には、間違いの可能性もあります(関連投稿)。それでも、AIによる最新で判り易い文章回答は、期待できます。

ChatGPT利用により、担当者は、いつでも気軽に質問ができます。この気軽さと効率的回答(最新知識)を得るメリットの方が、間違いの可能性よりもまさると思います。

3. MCUと周辺回路の電圧差

新しいMCUハードウェアの学び方その3
新しいMCUハードウェアの学び方その3

MCUは、今後さらに高速化します。製造プロセス微細化と、高性能、低消費電力、低価格MCUをユーザが求めるからです。

一方、MCUへ接続するセンサは、デジタルだけでなく、アナログも重要な技術です。AI搭載など、センサ高度化も話題の昨今ですが、製造プロセスや動作電圧もMCUほど進化し難い側面があります。

高速追求のMCUと、高機能追求のセンサや周辺回路の差は、動作電圧差として現れる可能性があります。

5Vトレラント端子のMCU、MCU-センサ間インタフェースデバイス、複数電圧の電源回路など、MCUとセンサなどの周辺回路接続には、注意が必要です。

Afterword:設計クオリティと洞察力向上

MCUハードウェア開発者は、COVID-19による半導体不足を経験しました。

ハードウェア開発者としては、機能別モジュール化、制御系MCU評価ボードのそのまま流用などの組合せを工夫する対策に加え、シミュレーションやテストプログラム(TP)利用なども対策になります。

どの対策も、ハードウェア設計クオリティ向上が目的です。

ハードウェア設計ノウハウは、直感の部分もあります。直感が正しいか否かを客観判断し、勘を磨くには、シミュレーションやTPが役に立ちます。実際の測定器を使わずに、シミュレーションやTPを使って仮想的に試すと、試行錯誤も容易です。

MCU統合開発環境(IDE)は、これらシミュレーションツールやTP(サンプルコード)の宝庫です。MCUハードウェア開発者もIDEを活用し、直感を磨いてください。

更に、ハードウェア洞察力を磨くには、アートワーク設計もお勧めします。

MCU周り、ADC周りだけでも良いので、実際にPCBアートワークを行うと、回路図では見えない高速デバイス製品化ポイントが判ります。最近のMCU/ADC/無線デバイスデータシートは、これらアートワークについて記載されたものも多いので参考になります。



新しいMCUソフトウェアの学び方

新しくMCU開発を始める方も多い時節です。新担当者が、効率的にMCUを学ぶ方法を示します。今週は、ソフトウェア編、次週がハードウェア編です。

Summary:新しいMCUソフトウェアの学び方

  1. 細かいことは後回し、MCU評価ボードで主要サンプルコードを動かし、全体像を知る
  2. 知りたいMCU用語は、ChatGPTから回答を得る
  3. サンプルコードをIDEで担当者なりに変更し、評価ボード動作変化を見る
chatGPT利用の新しいMCU学び方
chatGPT利用の新しいMCU学び方

MCUソフトウェア習得のコツは、ベンダ公式サンプルコードの活用です。

開発に適したMCU評価ボードを入手後、サンプルコード動作 ⇋ IDEコード修正。この繰返しとChatGPT利用で短期・効率的にMCUソフトウェアが学べます。

注)新しい点は、ChatGPT利用の知識習得、サンプルコードベンチマーク活用の2点です。
注)1.2.3.の詳細は、後述します。

MCUソフトウェア学び障壁を下げるポイント

筆者がMCU開発を始めた頃は、MCUと周辺ハードウェアを設計後、外注さんへ発注。ハードウェアが出来上がるまでに、分厚いMCUマニュアルと格闘しながらソフトウェアに着手。それもドライバから開発し、短期完成には超過残業必須、苦労しました(残業当然の時代、ムダ作業も多かった…)。

現在は、MCUベンダが様々な高品質開発ツールを提供します。また、説明不足のMCU用語は、マニュアル検索よりも、ChatGPTで短時間に回答が得られますので、学びに集中できます。

高品質開発ツールとは、評価ボードと公式サンプルコードのことです。これらをお手本(≒ベンチマーク)として活用しない手はありません。

つまり、サンプルコードで、担当者の開発内容を試しながらMCUソフトウェア学びを進めます。ベンチマークからの差分が明確なので、バグ混入少、最も新担当者を悩ますバグ対処も少なく学びが可能です。

必要なのは、経験者から担当者へのアドバイスです。

本来MCUは、広範囲なアプリケーション開発が可能です。サンプルコード数の多さが、これを示しています。そこで、経験者が、ターゲットとする評価ボードとサンプルコードを担当者へアドバイス、または、担当者が経験者や先輩にこれらを聞いて、効率的なベンチマーク活用MCU習得を行います。

アドバイスにより、担当者は、ムダを省き目的のMCU学びに直結したアプローチができます。

MCUソフトウェア学び障壁を下げる
MCUソフトウェア学び障壁を下げる

MCU習得の障壁が高いのは、なんでもできるMCU応用範囲の広さと、担当者の知識不足です。障壁の高さを下げるポイントが以下です。

  • 開発(習得)アプリケーションのターゲットを絞ること
  • 効率的に知識を得ること
  • 慣れないIDEバグ対処を少なくすること

これらポイント実現手段が、前章Summaryに示したChatGPT利用、ベンチマーク差分開発です。

以下、Summary 1.2.3の詳細を説明します。

1. MCUソフトウェア全体像を知る主要サンプルコード

新しいMCUソフトウェアの学び方その1
新しいMCUソフトウェアの学び方その1

MCUソフトウェア全体像は、初期設定と無限ループ処理です。処理内容は、周辺回路に応じて異なりますが、構造は、どれも同じでシンプルです。

担当者が、この全体像を未把握の場合、サンプルコードを単なるAPI羅列としてしか捉えられません。初期設定と無限ループに機能分離して捉えれば、サンプルコード理解度が向上します。

MCUには、多くのサンプルコードがありますが、全てが業務の開発アプリケーションに関連する訳ではありません。経験者が知恵を絞って、業務アプリに関連する主要サンプルコードを選定すれば、担当者もターゲットが絞れます。

担当者は、主要サンプルコードからMCUソフトウェア全体像がどれも同じことを学べます。

2. 回答を得るChatGPT

新しいMCUソフトウェアの学び方その2
新しいMCUソフトウェアの学び方その2

担当者にとって、詳細な説明が、判り易いとは限りません。

経験者と担当者が対面会話中ならば、相手の理解度は概ね把握できます。また、担当者が不明なことは、経験者へ質問するでしょう。

しかし、文章による説明は、一方通行です。

一方通行の説明量は、多ければ多い程、理解度が上がるとは限りません。かいつまんだ説明の方が、判り易い場合も多いと思います。

ChatGPT回答には、間違いの可能性もあります(関連投稿:前稿)。それでも、AIによる判り易い文章回答が期待できます。

ChatGPT利用で、担当者は、LINEアプリのようにいつでも気軽に質問できます。心理的負担が少なく、効率的に回答(知識)を得るメリットの方が、間違いの可能性よりも優れると思います。

3. IDEに慣れ、開発アプリケーションをイメージ

新しいMCUソフトウェアの学び方その3
新しいMCUソフトウェアの学び方その3

MCU開発では、統合開発環境(IDE)操作に慣れることが必須です。

評価ボードと適正なサンプルコードがあれば、即座にIDEが使えます。しかも、ビルドも成功します。担当者は、サンプルコードへ変更を加え、評価ボードの動作変化も観察できます。

仮にコード変更でビルド失敗しても、元へ戻せば成功します。変更とビルド成功を繰返すことで、IDE操作とバグ対処に慣れ、MCU学びと業務アプリ開発へ一歩近づけます。

その結果、業務関連アプリケーションのイメージも生まれます。現状と開発アプリの差分が明確になり、MCU開発者らしい残件の目標設定もできます。

Afterword:現状把握を困難にするムダ

サンプルコードだけで動作するMCUに対し、万人が100%解るサンプルコードの説明は、困難です。対象読者や記述量に合わせて調整せざるを得ないのが実情です。MCU説明が、読者に解り難い原因です。

新しいChatGPT利用で、書き手のMCU説明不足は、かなり改善できます。

経験が少ない開発者には、ムダは、現状把握や目標設定を困難にします。ムダを少なくするため、経験者や先輩は、担当者の主体性も尊重したアドバイスを心がけてください。

業務アプリケーション完成には、複数サンプルコードを結合し動作させることも必要です。その際には、弊社の各ベンダ対応MCUテンプレートがお役にたちます。ご活用ください。



MCU開発に適すChatGPTの使い方

人間の質問に対し、AIが自然な回答を生成するChatGPT
人間の質問に対し、AIが自然な回答を生成するChatGPT

ChatGPT(Chat Generative Pre-trained Transformer)は、米)OpenAIが2022年11月に公開したAIチャットポットのことで、「生成可能な事前学習済み変換器」という意味です。人間の質問に対し、AIが自然な回答を生成します(Wikipediaより)。

MCU開発に、ChatGPTをどう活かすかについて私見を示します。

要約:MCU開発に適すChatGPTの使い方

  1. ChatGPTはMCU説明不足内容への質問、回答に使える
  2. ChatGPTは常に進化し続けるAIツールだが、MCUプログラミング適用は時期尚早
  3. AIが人類能力を超える予想の2045年シンギュラリティ前後ならMCU開発へ一部使える可能性あり

MCU製品開発の成功には、知識と経験が必要です。知識獲得の効率的ツールとして、現状のChatGPTは使えると思います。但し、AI回答をMCUプログラミングへ適用するには、現在はAIが未成熟です。

AIが十分に成熟し、人類能力を超えるSingularity(シンギュラリティ:技術的特異点、2045年と予想)近辺になれば、MCU開発へも使えるツールになる可能性はあると思います。

但し、AIがシンギュラリティを迎えても、開発MCU製品の顧客要求とMCU結合チューニングは、人間MCU開発者の経験が必須です。

ブラウザ検索との違い

知識獲得方法は、ブラウザ検索が一般的です。ブラウザ検索とChatGPTの違いを端的に説明しているのが、コチラのCNET Japan記事の冒頭部分です。

ブラウザ検索は、キーワードを入力し、関連性が高いサイトをリスト出力します。MCU開発者は、各サイトを閲覧し、その結果、知識を得ます。

一方、ChatGPTは、質問内容を入力し、AIが質問内容を分析後、大量のサイト情報から最も相応しいと「AIが思う回答」を自動生成します。

つまり、MCU開発者が、色々なサイトを閲覧する手間を省いて所望知識が得られる訳です。但し、AI生成回答が正しいか否かは、判りません。

そこで、Microsoft Bingを使って、ルネサスFSP(Flexible Software Package)を質問した時のAI生成回答を示します。注)FSPは、前投稿参照。

Microsoft Bingを使ってFSPを質問したChatGPT回答例
Microsoft Bingを使ってFSPを質問したChatGPT回答例

結構、的を射た回答をしていると思います。また、詳細情報に、関連サイトリンクもありますので、AI回答の正確さを質問者が検証することも可能です。

さらに、AIが想定する追加質問例もあります。現在Bing質問数は、1日に2000の上限がありますが、ブラウザ検索よりも効率的に、MCU説明不足内容を質問でき、回答を得ることができます。

注)ブラウザ検索では、複数サイトから得る情報の多様性があります。この多様性をノイズと考えるか否か、筆者個人は、多様性あり&最終回答を自分で考える方を好みます。

ChatGPTとMicrosoft Bing、Google Bard

ChatGPTもバージョンアップし最新版GPT-4は、大量の文章、大量の高性能コンピューターチップを使う巨大AIモデルです。OpenAI)CEO:サム・アルトマン氏は、AIのさらなる発展に新しい開発手法が必要だと語っています。

最新GPT-4を無料で使えるのが、前章のMicrosoft Bing、待機リスト登録で使えるのがGoogle Bardです。Bardは、現在日本語非対応のようです。

前章CNET Japan記事に、BingとBardのAI回答の違いが分析されています。

MCUコーディングの適用

上手く質問すれば、ChatGPTから、AIコーディング回答が得られます。しかし、それをそのまま実開発へ使えるかについては、いずれのサイトも現在懐疑的です。

筆者も、同じ考えです。

特に、MCUプログラミング(コーディング)は、他のPCソフトウェア開発やクラウドソフトウェア開発に比べ地味で、MCU開発者も少数派です。

ChatGPT活用コーディングは、今後益々盛んになるでしょう。その結果、ネットに、多数派ソフトウェア開発者の成功/失敗事例が多く掲載されます。AIは、これら事例を学習します。

これら多数派の事例をAIが十分学習した後、我々少数派MCUソフトウェア開発へ適用しても遅くはないと思います。その理由が、次章です。

AIコーディング進化時のMCU開発者経験とスキル

AIコーティング進化時のMCU開発者経験とスキル
AIコーディング進化時のMCU開発者経験とスキル

仮にChatGPTが、そのままMCU開発に使えるコーディングを正確に出力したとします。実はこれは、現在のMCUベンダ提供のサンプルコードに相当します。

つまり、ChatGPTの進化を待つまでもなく、現在でも単機能の正確動作コードは得られる訳です。ここが、多数派ソフトウェア環境と、MCUソフトウェアの大きく異なる点です。

MCUソフトウェアは、単体動作サンプルコードを、ベンダが多数提供済みです。

MCUソフトウェア開発者は、これら単体サンプルコードを、顧客要求やMCU性能に見合うように複数組合せ、期間内に上手く動作するよう製品化するのが、主な業務内容です。

例えば、低コストで性能制約も多いMCUを使い、単体コードの優先度設定や割込み処理設定を行い、複数コードを結合動作させるチューニングです。IoT MCUならば、RTOS対応やセキュリティ関連がチューニングに加わり、さらに複雑化します。

チューニングの幅は、顧客要求や適用MCU、製品の展開予定などにより大きく変わります。MCU開発者には、これら変化に即応できる開発経験やスキルが求められます。

例えシンギュラリティになっても、開発MCUの製品化、顧客要求とMCU結合チューニングは、AI任せにはできない「人間MCU開発者の腕の見せ所」になると思います。

つまり、この腕を磨いて人間MCU開発者も進化しましょう、と筆者は言いたい訳です。



RAファミリ最新情報とFSP

ルネサスは、最近元気です。特にRAファミリMCUにその傾向が顕著です。RAファミリ最新情報を2件ピックアップし、ルネサスRAファミリソフトウェア開発の鍵:FSP習得の重要性を示します。

Cortex-M85搭載AI処理実装RAファミリ

Cortex-M85搭載RAファミリによるAI人物検出デモ(出展:ルネサス)
Cortex-M85搭載RAファミリによるAI人物検出デモ(出展:ルネサス)

2023年3月14日~16日、ドイツ開催embedded world 2023で、ルネサスは、Cortex-M85コア搭載のRAファミリへAI処理を実装し、人物検出へ適用したデモを行いました。

従来、人物検出アルゴリズム実行には、Cortex-M7クラスMPU(Micro Processor Unit)が必要でした。このCortex-M85搭載RAファミリにより初めてMCUでもAI処理可能となり、MPU比、低コストで低消費電力動作など革命が起こるそうです。

このCortex-M85搭載RA MCUは、2023年中にリリース予定です。

SDR搭載RAファミリサンプル出荷

SDR(Software Defined Radio)は、ソフトウェアにより無線機能の変更が可能なハードウェアのことです。Cortex-M33コアRAファミリに搭載するSDRは、Bluetooth 5.3 Low Energyまでの各種Bluetooth仕様に対応しました。

つまり、ソフトウェアを更新すれば、常に最新バージョンBluetooth準拠のMCUになる訳です。2023年4月11日、このRA MCUのサンプル出荷が始まりました。

SDR搭載RA MCUは、ルネサス初の22nm製造プロセスMCUです。但し、22nmロジックとは異なる製造プロセスの不揮発性メモリを混載封止したSIP(System In Package)版MCUです。

不揮発性メモリまで同一の22nmで製造し、さらに高速で製造原価を下げたMCUの提供時期は、未定です。SIP版で機能優先のサンプル出荷を開始したのでしょう。

RAファミリへ最新技術を適用する理由

これら最新技術は、従来のMCUファミリには搭載しづらいです。その理由が以下です。

先ずハードウェア的には、最新技術が22nmなど先端MCU製造プロセスをベースにしていること、また、IoT向きCortex-M33/M85コアのRAファミリの方が、従来コアへ最新技術を追加するより性能的にも導入し易いこと、などです。

次にソフトウェア的には、RAファミリが、新しいFSP(Flexible Software Package)で開発することも一因です。簡単に言うと、FSPはAPI生成ツールです(関連投稿:MCUベンダAPI生成ツール比較2020年版)。

FSPは、HALやBSPなどハードウェア依存部分を隠ぺいしつつ効率的MCUソフトウェア開発ができる
FSPは、HALやBSPなどハードウェア依存部分を隠ぺいしつつ効率的MCUソフトウェア開発ができる

IoT MCU製品は、従来のベアメタルソフトウェア開発へ、RTOSや通信、セキュリティなど様々な機能が追加されます。

これら追加機能は、製品毎に適用が大きく変わる可能性が高く、その変更に対し開発ソフトウェア流用性や、柔軟かつ素早い対応も求められます(前章SDR搭載RA MCUが一例)。

FSPは、BSP(Board Support Package)やHAL(Hardware Abstraction Layer)を利用しMCU個別ハードウェア依存部分を隠ぺいしつつ、効率的かつ柔軟にソフトウェアの早期開発ができるよう工夫されています。

最新ルネサスMCUファミリソフトウェア開発の鍵FSP

つまり、ルネサス最新技術を活用したIoT MCU製品の早期開発には、FSPを上手く使えることが重要です。

FSPが扱うソフトウェアは、従来のベアメタル開発だけでなく、RTOS(Azure RTOS/FreeRTOS)や通信、各種USB、TrustZoneセキュリティなどと広範囲に及ぶため、FSP活用にはコツや慣れも必要です。

逆に、この鍵となるFSPを開発者が習得すれば、RAファミリに限らずルネサス最新IoT MCU製品化に、大きく貢献できる訳です。FSPは、RAファミリ以外のルネサスMCU開発へも適用されています。

まとめ

最新RAファミリソフトウェア開発の鍵:FSP
最新RAファミリソフトウェア開発の鍵:FSP

最新技術搭載のルネサスRAファミリMCUは、今後急速に増えます。最新RAソフトウェア開発の鍵:FSPを習得し、ベアメタル/IoT MCUソフトウェア開発に貢献できるようスキルを磨きましょう。

FSP習得方法

弊社RAベアメタルテンプレート(1000円税込)は、効率的かつ効果的にFSP習得ができます。将来的には、RTOSへも対応したRA RTOSテンプレート(仮名)も開発予定です。

判り易い添付資料と低価格で入手性が良いFPB-RA6E1、または、FPB-RA4E1評価ボードと、Baseboardを利用すれば、どなたでもFSP提供サンプルコードを活用、流用したRAベアメタル開発が可能で、FSP利用のコツも掴めます。是非、ご活用ください。




Tips)最新FSP v4.3.0でも、RTOS開発に100%対応はしていません。例えば、Developer Assistanceは、ベアメタルHAL callback関数定義はできますが、FreeRTOS callback関数定義はできません。
今後のFSP改版で、RTOSへの対応も広がるでしょう。但し、FSP習得タイミングとしては、ベアメタル開発に完全対応済みの「今がチャンス」と言えます。



RAファミリクラウド開発環境提供

ルネサスは、クラウド上のMCU開発環境でRAファミリの開発ができる「クイックコネクトスタジオ」の提供を開始しました(2023年3月1日)。

ブラウザのみで使えるクラウド開発結果を、ローカル環境のe2 studioへダウンロード可能でRAファミリプロトタイプ開発の早期立上げに役立ちます。

クラウド開発の利用手順

クイックコネクトスタジオ利用手順(EK-RA2E1開発例)
クイックコネクトスタジオ利用手順(EK-RA2E1開発例)

クラウドMCU開発環境クイックコネクトスタジオの利用手順を、簡単にまとめます。

  1. クラウドクイックコネクトスタジオへログイン
  2. 画面右側のGETTING STARTに沿って操作
  3. 新規プロジェクト作成→RAボード選択→PMODモジュール選択→ビルド→開発Zipファイルをローカル環境へダウンロード
  4. クラウド開発Zipファイルをローカル環境e2 studioへインポート
  5. 手元に用意したRAボード+PMODモジュールで実動作確認

Zipファイルには、ハードウェア選択肢のRAボードとPMODモジュールのベアメタル開発サンプルコードが生成済みです。1~3で使うツールはブラウザのみ、新規プロジェクト作成からZipファイルダウンロードまで数分でできます。

クイックコネクトスタジオのクラウドハードウェア構成と同じものをローカル側に用意すれば、直に動作するサンプルコードが僅か数分で入手できる訳です。

クイックコネクトスタジオ利用により、プロトタイプ開発の早期立上げが実現可能です。

EK-RA2E1、EK-RA6M4評価ボード対応中

4月5日現在、クイックコネクトスタジオが対応しているのは、EK-RA2E1EK-RA6M4の2種RAファミリ評価ボードです。PMODモジュールは、通信関連がBluetoothとWi-Fi、センサ関連がフローセンサと湿度・温度センサです。

関連投稿:PMODモジュール

これらは、IoT製品向きの品揃えです。現在のハードウェア選択肢は少数ですが、今後、品揃えも豊富になるでしょう。

また、ベアメタル開発だけでなくRAファミリの得意分野FreeRTOSやAzure利用のRTOS開発や、セキュリティ強化TrustZoneへも、クイックコネクトスタジオが対応する可能性があります。

注)Cortex-Mxコアに比べTrustZoneなどのセキュリティ強化Cortex-M33/23コアがRAファミリ特徴。

サンプルコードの新しい入手方法

MCU利用の早期製品化には、プロトタイプ開発が必須です。

ベンダ各社は、多くのサンプルコードを提供しプロトタイプ開発支援を行っています。しかしながら、提供サンプルコード数が多いため、どのサンプルコードを利用すれば良いか開発者が迷う欠点もあります。

クイックコネクトスタジオは、評価ボードや使用センサ、通信方法をGUIで選択しながらMCUハードウェアが構築でき、構築ハードウェアの最新サンプルコードをクラウド上で簡単に作成できます。

つまり、プロトタイプ開発に適すサンプルコードを、間違わずに簡単入手が可能です。また、プロトタイプの仕様が変更になっても、クラウド上で「クイック」に対応できます。

さらに、RTOS開発では、AWSやAzureの接続先、TrustZone利用有無、OTA更新有無など製品化の選択肢がベアメタル開発に比べより多くなります。

注)AWS:Amazon Web ServicesはFreeRTOS、Azure:MicrosoftクラウドはAzure RTOS利用。OTA:Over The Airは、IoT製品ソフトウェア更新をクラウド経由で行うこと。

クラウド上で、これら接続先や利用有無に応じた必須ライブラリを自動的にZipパッケージ化してくれれば、ローカル開発環境の準備ミスも防げます。

クイックコネクトスタジオは、プロトタイプサンプルコードの新しい入手方法になると期待できそうです。

RAベアメタルテンプレート販売中

RAベアメタルテンプレートのP1
RAベアメタルテンプレートのP1

ローカル環境でのFSP利用RAファミリベアメタル開発は、弊社RAベアメタルテンプレート(税込1000円)をお勧めします。RAファミリの低価格で入手性も良いFPB-RA6E1FPB-RA4E1評価ボードと、Baseboardで動作確認済みです。

添付資料には、RAファミリ開発の鍵となるFSPの使い方やe2 studioのTipsも掲載済み、FSPサンプルコードを活用できる実務直結テンプレートです。

RAファミリ開発の早期習得ができ、添付資料P1~P3は、テンプレートサイトから無料ダウンロードも可能です。

ご購入、お待ちしております。



RAファミリFSP v4.3.0公開

お知らせ:3月31日金曜投稿はお休み

虫歯治療
虫歯治療

3月31日の金曜投稿は、虫歯治療のため休みます🤒。先週投稿と同じ内容です。

RAファミリFSP v4.3.0公開

RAファミリ向け最新FSP v4.3.0同梱e2 studio 2023-01
RAファミリ向け最新FSP v4.3.0同梱e2 studio 2023-01

2023年3月19日、RAファミリ最新FSP v4.3.0同梱e2 studio 2023-01が公開されました。1月16日公開の他のルネサスMCUファミリ向けe2 studio 2023-01公開から2ヶ月遅れです。

過去のRAファミリFSP更新と異なる点を説明します。

FSP v4.3.0新規インストール

過去のRAファミリFSP更新は、最新e2 studio内に複数のFSPが同居できました。例えば、1つ前のe2 studio 2022-10では、FSP version 4.2.0~3.6.0が同居しており、選択可能でした。

今回のFSP v4.3.0は、新規e2 studio 2023-01フォルダへFSP v4.3.0が新規インストールされます。従って、FSP v4.3.0は、この新規e2studio_v2023-01_fsp_v4.3.0フォルダから起動されます。

FSP v4.3.0新規インストールe2 studio 2023-01
FSP v4.3.0新規インストールe2 studio 2023-01

高密度モニタ125%~175%スケーリングのツールバー表示改善

高密度モニタとは、4K(3840×2160)など解像度が高いモニタのことで、最近流行中です。フルHD(1920×1080)に比べ、縦横2倍の表示が可能です。

但し、4K解像度では、Windows表示テキストが小さすぎて見にくいため、125%~175%の拡大表示へ変更し利用するのが一般的です。e2 studio 2023-01では、このスケーリング変更時のe2 studioツールバー表示が改善されました。

高解像度モニタ活用中の方なら表示変更が判るでしょう。筆者は、100%表示の愛好家ですので、具体的な改善内容は、残念ながら判りません。

関連投稿

MCU開発に適すモニタ解像度(1920×1080~3K)。
MCU開発に適すモニタサイズ(メインモニタ:24~27型、ノートPC:16型)。

まとめ

FSP v4.3.0同梱e2 studio 2023-01デフォルトインストール
FSP v4.3.0同梱e2 studio 2023-01デフォルトインストール

最新FSP v4.3.0同梱e2 studio 2023-01デフォルトインストールが、新規FSPインストールに変わり、これが高解像度モニタ用のツールバー起因なのかは、筆者のPC環境では判りません。

しかし、新規インストールの方が、過去開発環境をそのまま維持できるメリットもあります。デメリットは、ディスク容量など軽微です。

流行のPC環境に伴ってMCU開発環境も変化します。より効率的MCU開発環境へのステップアップ更新と考えます。


IOWN 1.0提供開始

IOWN展開(出展:NTTサイト)
IOWN展開(出展:NTTサイト)

ベストエフォートのインターネットに対し、NTT専用線による品質保証:ギャランティーサービスIOWN(Innovative Optical and Wireless Network:アイオン)1.0が2023年3月16日から開始されました。

個人利用には価格(100Gbps月額料金198万円、初期設備費3万円)が高すぎますが、2030年以降のIOWN4.0では、インターネット並みの料金で利用できるかもしれません。

IOWN対インターネット

インターネットは、多重共用ネットワークです。従って、多重されたトラフィックにより自分のデータ遅延揺らぎは不可避、さらに強固なセキュリティも必須です。

そのセキュリティ対策は、ユーザみずから行う必要があります。対して、専用線は、ネットワーク側が通信品質を保証するなどセキュリティレベルは高く、ユーザのセキュリティ対策は、インターネットに比べると楽になると思います。

問題は、利用価格です。

IOWN専用線では、共用インターネットでは困難な魅力的IOWNサービス(後述)が提供され、かつ、APNと光電融合デバイスにより価格を抑え、かつ、将来の限界を超える特徴、つまり、低遅延、大容量、低消費電力(後述)があります。

ユーザセキュリティ費用、万一のセキュリティリスクも含め、専用線IOWNと共用インターネット、どちらが安全、安心で利用価格が安いのか、費用対効果検討が必要だと思います。

IOWNサービス

IOWNで期待されるサービスの実証記事がコチラです。

ロボットや自動車の遠隔制御、遠隔医療、e-スポーツや遠隔地間を繋ぐ同時演奏会など、大容量で低遅延、揺らぎ無しのIOWNサービスが提供されます。

IOWN特徴=揺らぎ無し低遅延+大容量+低消費電力

NTT技術ジャーナル2023.1によると、IoTによるデータドリブン社会は、膨大なデータ量やデータ処理サーバの膨大な電力消費増大に対して、限界が来るそうです。

この課題にAPN(All Photonic Network)サービスと、光電融合デバイスをボード接続→チップ間→チップ内と融合度を上げ、さらに、このデバイスをサーバへも適用することで、大幅な使用電力削減が可能となります(本稿最初の図参)。

IOWN4.0の目標は、電力効率100倍、伝送容量125倍、エンドエンド遅延1/200です。

IOWN特徴(出展:NTTサイト)
IOWN特徴(出展:NTTサイト)

まとめ

2030年度以降のIOWN4.0とインターネットの利用価格がどの程度になるかは、今のところ不明です。

それでも、IOWN1.0の利用決定会社/組織の記事(2023年3月3日、EE Times)を見ると、既に多くの有力企業が参加しています。

揺らぎ無し低遅延大容量IOWNが、新しいIoTネットワークサービスを生み、メタバースを推進するのは確かだと思います。IoT MCU開発者も注目しておく必要があります。

関連投稿:世界規模の宇宙センシング次世代ネットワークIOWN

世界規模の宇宙センシング技術

次世代ネットワークIOWN(アイオン)で紹介した、低軌道人工衛星と無線免許不要IoTデバイス(LPWA:Low Power Wide Area端末)の宇宙センシング実証実験が2024年度に予定されています。

この宇宙センシング技術は、世界中で低コストIoTデータの衛星センシングを可能にします。

低コストIoTデータ衛星センシングプラットフォーム

衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)
衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)

従来の世界規模データセンシングは、専用衛星や免許が必要な専用無線周波数を使うため高価です。

NTTとJAXA(宇宙航空研究開発機構)が2024年度打ち上げ予定の革新的衛星技術実証4号機は、地上用のLPWA端末の免許不要無線周波数:920MHz帯、送信電力:0.1W程度を介して低軌道衛星と通信します。

この通信により、LPWA端末の小容量データを世界規模で収集できる低コストIoT衛星センシングプラットフォームの実証実験が可能です。

LPWA端末

LPWAは、低消費電力、低ビットレート、広域カバレッジが特徴で、その端末の多くは無線免許が不要です。

この地上用LPWA端末を、通信網が無い山間部や河川、海上など世界中のあらゆる場所へ設置しても、衛星を介したグローバルなIoTデータセンシングが可能になります。

気象データ収集や防災対策など多くの新しいIoTサービスへ発展する可能性は大きいでしょう。

技術実証イメージ(出展:NTT 2023年2月10日)
技術実証イメージ(出展:NTT 2023年2月10日)

地上のLPWA端末と低軌道衛星との通信は、シンプルです。LPWA端末の測定データは、衛星搭載メモリへ一時蓄積され、衛星の基地局上空の飛来タイミングで蓄積データが一括ダウンロードされます。

LPWA端末には、衛星からのコマンドによる再起動処理などが必要になるそうです。

宇宙ビジネス

多くのIoTセンサを組込んだスマートホームICTインフラへも応用できそうです。スマホ衛星通信も可能な時代です。ソニーは、2050年50兆円市場との試算もある地球みまもりプラットフォーム向けエッジAIカメラセンサを開発しました。

地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)
地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)

2030年実現を目指すIOWN(Innovative Optical and Wireless Network)により、従来通信網制約や国境の枠を超えた新しいIoTサービスや宇宙ビジネスが期待できそうです。

IoT MCU開発者は、革新的衛星技術実証4号機の打ち上げも注目しましょう。



8/16ビットMCU置換えを狙う32ビットMCU

半導体不足が続いています。対策として、8/16ビットMCU置換えを狙った、汎用低コストの新しい32ビットMCUを2種紹介します。

STマイクロ:STM32C0シリーズ

STマイクロ、2023年1月12日、低価格なSTM32C0シリーズ(Cortex-M0+:48MHz、Flash:16K/32K、RAM:6K/12K)を発表。

STM32C0とSTM32G0の位置づけ(出展:STMサイト)
STM32C0とSTM32G0の位置づけ(出展:STMサイト)

ルネサス:RA2グループ

ルネサス、2021年10月13日、省スペース低消費電力向けにRA2E2グループ(Cortex-M23:48MHz、Flash:64K、RAM:8K)を、RA2シリーズへ追加。

RA2E2評価ボードのMCU基板アートワーク
RA2E2評価ボードのMCU基板アートワーク

8/16ビットMCU置換え最新32ビットMCU特徴

  • 少数ピン/小型パッケージ
  • 小容量Flash/RAM
  • 低消費電力
  • 低価格(8/16ビットMCUと同等)

8/16ビットMCU置換えを狙う32ビットMCU特徴です。置換え32ビットMCUと言えば、古くからNXP:LPC800シリーズが有名なので、本稿は省略しました。

動作周波数が高くても、Sleepなどの超低消費電力動作時間も長く、実働消費電力は驚くほど小さくなります。また、古い8/16ビットMCUよりも入手性に優れます。

置換え32ビットMCUメリット

旧MCU開発は、周辺回路ドライバなども自主開発することが多く、ドライバとアプリケーションの境界も開発者毎にバラバラでした。最新MCU開発は、ドライバはベンダHAL API生成ツールが自動生成します。

その結果、開発者は、アプリケーション開発に集中でき、ソフトウェア開発費も安くなります。

※HAL API:MCUハードウェアに依存しない(Hardware Abstraction Layer)API。シリーズ/グループが異なっても開発アプリケーション流用が容易。

既に実装済みの旧8/16ビットMCU機能を最新32ビットMCUへ置換える時も、この最新MCU開発環境が使えるため、効率的なソフトウェア開発が可能です。更に、置換えだけでなく、新機能追加、IoTやセキュリティなど高機能アップグレートも容易です。

最新汎用32ビットMCUは、半導体不足にも有効です。紹介したSTマイクロ、ルネサスいずれも、上位MCUへの置換えが可能な基板アートワークができるピン配置を採用しています。

つまり、IoT時代に合わせた開発スキルやソフトウェア発展性があり、基板ハードウェア持続性も期待できるなど、8/16ビットMCU置換え汎用32ビットMCU採用には、多くのメリットがあります。

STM32G0テンプレート、RAベアメタルテンプレート

STM32C0シリーズ開発には、STM32G0Xテンプレート、RA2グループ開発には、RAベアメタルテンプレートがお役に立てます。



FSPベアメタルサンプルのRTOSスレッド化

前投稿FSPベアメタルサンプルコード:sci_uart_fpb_ra6e1_epを、RTOSスレッド化する方法を示します。

多くのルネサスRA公式サンプルコードを活用した効率的なRTOSスレッド開発が本方法で可能です。FreeRTOS、Azure RTOS両方に使えます。

サンプルコードベースRTOSスレッド開発

RTOS開発は、複数スレッドを組合せ全体を動作させます。ベアメタルコードに比べ、個々のスレッドは、独立性や移植性が高い特徴があります。スレッド優先度やセマフォなどのRTOSオブジェクトを適切に設定すると、複数スレッド全体処理としてユーザ所望のシステム動作をします。

スレッドは、勝手に回る歯車、優先度やRTOSオブジェクトは、各歯車をシステム全体で上手く動作させる手段と考えると解りやすいと思います。

スレッドとRTOSの役目
スレッドとRTOSの役目

スレッド設計法は、機能別や処理手順別など様々あり、唯一の方法は無さそうです。しかし、先ずは、歯車となるスレッドを開発し、次に、開発スレッド優先度やRTOSオブジェクトを調整しながら、システム全体動作を仕上げるのがRTOS開発の方法です。

本稿は、スレッド単体開発の1方法として、ルネサスRAファミリ公式FSPベアメタルサンプルコードを活用したサンプルコードベースのRTOSスレッド開発法を示します。複数スレッドを組合せたRTOSオブジェクトの適切な調整や設定に関する内容は、含みません。

公式ベアメタルサンプルコードは、各ベンダエキスパートが開発し、評価ボードで動作確認済みの高信頼ソフトウェアです。また、MCU周辺機能毎に多くのサンプルコードが提供中です。

これらベアメタルコードを活用する本方法は、FreeRTOS/Azure RTOSどちらのRTOSスレッド開発へも使えます。

RTOSスレッド化方法

詳細は、後で説明しますが、先ず、ベアメタルサンプルをスレッド化する手順を簡単に示します。方法全体像が判っていると把握しやすいからです。

  1. スレッド無しで空の新規RTOSプロジェクト作成
  2. g_ioport以外のベアメタルサンプルFSPスタックを、RTOS FSPスタックへImport
  3. hal_entry.c以外のベアメタルサンプルsrcファイルを、RTOSプロジェクトsrcフォルダへコピー
  4. 新しいスレッド:MyThreadをRTOSプロジェクトへ追加後、Gegerare Project Contentクリック
  5. MyThread_entry.cへ、初期設定と無限ループ処理を追記

1で新規作成した空のRTOSプロジェクトへ、2と3で対象ベアメタルサンプルから内容を追加、4でベアメタルmain()相当の新しいMyThreadを追加後、FSPを使ってRTOSプロジェクトを自動生成します。

生成後、5でRTOSプロジェクトのMyThread_entry.c初期設定と無限ループを追記します。追記内容は、ベアメタルサンプルの初期設定と無限ループ処理です。

つまり、1~5手順全てFSPベアメタルサンプルからの単純コピーでRTOSスレッド化が可能です。

次章から、前投稿で用いたベアメタルサンプルコード:sci_uart_fpb_ra6e1_epを、FreeRTOSスレッド化する具体例を使って、各詳細手順を示します。

1. 空の新規FSP freertos_uartプロジェクト作成

スレッド無しで空の新規FreeRTOSプロジェクト作成
スレッド無しで空の新規FreeRTOSプロジェクト作成

スレッド無し空FreeRTOSプロジェクトを新規作成します。新規RTOSプロジェクト名は、freertos_uartとでもしてください。

2. sci_uart_fpb_ra6e1_epのFSPスタックImport

sci_uart_fpb_ra6e1_epのFSPスタックImport
sci_uart_fpb_ra6e1_epのFSPスタックImport

freertos_uartプロジェクトのFSPスタックへ、sci_uart_fpb_ra6e1_epのg_ioport以外のFSPスタックを全てImportします。Importした各スタックプロパティは、オリジナルプロパティと同じに手動で設定してください。

3. sci_uart_fpb_ra6e1_epのsrcファイルコピー

sci_uart_fpb_ra6e1_epのsrcフォルダファイルコピー
sci_uart_fpb_ra6e1_epのsrcフォルダファイルコピー

sci_uart_fpb_ra6e1_epのhal_entry.c以外のsrcファイルを全て、freertos_uartのsrcへコピーします。

4. freertos_uartプロジェクトへ新しいUart Thread追加後、Generate Project

新しいUart_Thread追加
新しいUart_Thread追加

新しいスレッドのSymbolは、Uart_threadとしてください。先頭を大文字にする目的は、FSPが自動生成したファイルやスレッドが使う全小文字表記とユーザ追加のそれらを、大小文字で区別するためです。

Tips:大文字利用は、好みの問題です。RTOS開発は、多数のスレッドやオブジェクトソースが、プロジェクト・エクスプローラのsrcフォルダに表示されます。自分が追加したソース(バグ有り?)と純FSP生成ソースを、一目で区別できるメリットがあります。

最後にGenerate Project Contentをクリックし、FSPによりRTOSプロジェクトを自動生成します。

5. Uart_Thread_entry.cへ初期設定と無限ループ処理追記

RTOSプロジェクトのsrcフォルダ内に、Uart_thread_entry.cが生成されます。

先頭の#include “Uart_thread.h”に、sci_uart_fpb_ra6e1_epのsrcファイルにある#include “common_utils.h”、 #include “uart_ep.h”、 #include “timer_pwm.h”を追記します。
これら4個の#include文は、freertos_uartの全srcファイルに手動で追記します。

Uart_thread_entry.cの初期設定
Uart_thread_entry.cの初期設定

RTOS初期設定は、Uart_thread_entry.c のTODO: add your own code here以下へ、sci_uart_fpb_ra6e1_epの初期設定:hal_entry.cのL41からL93までをコピーします。

sci_uart_fpb_ra6e1_epの無限ループ処理は、コピーした初期設定の後方にあるuart_ep_demo()です。

RTOS無限ループ内には、上図でコメントアウトしたコンテキストスイッチが必要です。そこで今回は、RTOSプロジェクトuart_ep.cのuart_ep_demo()内へ、直接コメントアウトしたFreeRTOSコンテキストスイッチ:vTaskDeley(1)を追記します。

uart_ep.cのuart_ep_demo()へ追記するコンテキストスイッチ
uart_ep.cのuart_ep_demo()へ追記するコンテキストスイッチ

Tips:#include “Uart_thread.h”が、FreeRTOS関連API:コンテキストスイッチ追記を可能にします。

sci_uart_fpb_ra6e1_epとfreertos_uartスレッド同一動作確認

RTOSプロジェクトをビルドし、評価ボードへダウンロード後、実行してください。前稿のベアメタルサンプルコードと全く同じ処理が、開発したfreertos_uartスレッドで確認できます。

FreeRTOS/Azure RTOSスレッド化差

本稿で示したFreeRTOSスレッド化とAzure RTOSスレッド化の差は、コンテキストスイッチのみです。FreeRTOSならvTaskDelay(1)、Azure RTOSならtx_thread_sleep(1)が、コンテキストスイッチです。

Tips:コンテキストスイッチは、FreeRTOS/Azure RTOS開発手法のRTOS処理フローなどを参照してください。

ベアメタルサンプルコードをAzure RTOSスレッド化する時は、手順1で、新規Azure RTOSプロジェクトを作成し、手順5のvTaskDelay(1)の代わりに、tx_thread_sleep(1)を使えばOKです。

Tips:FSP生成スレッドMyThread_entry.cの無限ループ内には、作成RTOSプロジェクトに応じて初めからvTaskDelay(1)、またはtx_thread_sleep(1)が実装済みです。

本方法が、FreeRTOS/Azure RTOSどちらのRTOSスレッド開発へも使えることが分かります。

補足

2023年1月16日、e2 stidioは2022-10のまま、RAファミリFSPがv4.2.0へ更新されました。本稿は、FSP v4.2.0/4.1.0両方で動作確認済みです。