MCUであること、そのテンプレート開発も汎用STM32Fxテンプレートと異なること、これら理由を説明します。まとめはじめに内容をまとめた表1と表2、図1を示し、次章からその詳細理由を説明します。MCUテンプレート開発が得策だということです。テンプレート開発方向性。同じメインストリームMCUでもSTM32G0xデバイスは専用性、STM32Fxデバイスは汎用性重視。MCUと従来MCUの最も異なる点は、製造プロセスです。STM32G0xは70nm、STM32Fxは120nmの製造プロセスです。製造プロセスによる性能差は、Intelプロセサでお馴染みだと思います。簡単に言うと、製造プロセスを小さくすると、全く同じMCUでも、動作周波数が上がり、消費電力は下がる、販売コストも下がるなど、良いこと尽くめの効果が期待できます。STM32G0xは、Cortex-M0の電力消費を改良しCortex-M3の良さを取り入れたCortex-M0+コアを採用しています。コアと製造プロセスの両方でCortex-M0のSTM32F0デバイスを上回り、動作周波数をCortex-M3のSTM32F1デバイス72MHzに近い60MHzとしたことで、STM32F1と同程度の高性能なのに超低電力動作します。MCUに相応しい周辺回路を実装しています(3タイプあるデバイスで実装周辺回路を変え、低価格供給中)。STM32G0xデバイスとSTM32F0/F1デバイスのハードウェア差をまとめたのが表1です。STM32G0x出現で、STM32F1/F0デバイスで開発する意味は、低下したとも言えるでしょう。※但し、他デバイスへの移植性・流用性を重視した開発ならSTM32F1/F0デバイスを使い汎用STM32Fxテンプレート使う意味は依然として大きいです。現在はSTMから何のアナウンスもありませんが、STM32G0xと同じ70nm製造プロセスでCortex-M3/≦100MHzの上位デバイスSTM32G1xが発売されれば、なおさら低下します。関連投稿に上記特徴の出典などがあります。Layer)APIを使い、万一性能不足などでデバイスを変える事態が生じても、同じソフトウェアを使えます。従って、STM32F0とSTM32F1の両デバイスで動作するアプリケーションが、ほんの少しの修正で素早く作成できます。これは、HALのおかげです。HALがデバイスや周辺回路差を吸収するため、アプリケーション側は移植性の高いシンプルな記述ができるのです。Layer)に比べ大きくなります。関連投稿:STM32CubeMXの使い方、STM32CubeMXの2種ドライバライブラリの章参照HALを使うと言うことは、たとえデバイスが変わっても開発したソフトウェアとその労力を無駄にせず、流用・応用できることが最大のメリットです。汎用「STM32Fxテンプレート」は、この流用・応用に適したテンプレートです。動作確認評価ボードは、STM32F072RBとSTM32F103RBのみですが、全ての汎用STM32Fxデバイスへ応用できます。ここで示したSTM32G0xデバイスにもこのHALを使う手法は適用可能です。STM32G0x専用のテンプレートです。APIは、使用デバイスにより異なるので専用テンプレートになります。STM32G1xデバイスが持つCortex-M0からCortex-M3までをカバーする広い適用力と超低電力動作を活かすには、ソフトウェア開発にHAL比60~80%の高速処理のLLを使った方が得策と判断しました。MCUテンプレートです。※但し、流用性が高い一部機能には、HAL活用も考慮中です。LLとHALは混在可能です。MCUテンプレートと汎用STM32Fxテンプレートの違いをまとめたのが表2、テンプレート開発の方向性を示したのが図1です。MCUテンプレートの動作確認評価ボードには、Nucleo-G071RB(¥1,203)を予定しています。MCUテンプレート評価ボードの3要件を再掲します。単独ではNGですが、Arduinoコネクタに何らかのIoTサービスシールドを追加することで満たす予定です。評価ボードNucleo-G071RB。64ピンパッケージでも電源供給が2本のみのなのでアートワーク担当者が喜ぶ。Kitや、暗号化処理サービスを示すSTM32G081B-EVALは、両方ともR3要件を満たしますが、価格要件R1<¥3,000を満たさないので利用を断念しました。