低消費電力トレンド

MCU開発者は、消費電力に気を配りソフトウェア/ハードウェアを開発します。最近は、顧客の低電力指向が強くなり、全業界で電力不足対策がトレンドとなっています。

ドイツ、米国、日本、有力企業の電力不足対策記事を示し、低消費電力トレンドを活かしMCU開発すれば、顧客に好印象を与え他社差別化に寄与することを示します。

ドイツ)Volkswagen国内工場閉鎖示唆

ドイツ)フォルクスワーゲンの電力消費対策
ドイツ)フォルクスワーゲンの電力消費対策

2024年9月5日、ドイツ最大手の自動車企業Volkswagenが、国内工場閉鎖を検討しているニュースが発表されました。その主要因は、国内調達エネルギーコスト、つまり、電力コストの高騰です。

製造業の製品は、コストパフォーマンスで評価されます。同じパフォーマンスならより安い製品が顧客に売れるのは、当然です。

脱原発方針やロシアのウクライナ侵攻、中東情勢のため、ドイツ国内電力コストが従来比急上昇し、もはやドイツ製造では高いコスパ維持ができないのです。

ドイツ工場を閉鎖、代わりに電力コストの安い国外製造がドイツ)Volkswagenの取組みです。

米国)Microsoft向けスリーマイル原発再稼働

米国)Microsoftの電力対策
米国)Microsoftの電力対策

2024年9月21日、米大手電力コンステレーション・エナジーが、スリーマイル島原発1号機の再稼働を発表しました。Microsoft AIデータセンタへ、20年間電力安定供給のためです。

AIデータセンタ向け電力は、今後急増が予想されます。再生エネルギーやシェール天然ガス発電だけではAI電力需要にまね合わないため、米国各地で原発再稼働の検討が始まっています。

AI新電力需要に対し、既存(休止)設備の再利用で対処するのが米国)Microsoftの取組みです。

日本)NTT光電融合新デバイス開発

日本)光電融合デバイスによる電力対策(出典:NTT R&D Forum 2023)
日本)光電融合デバイスによる電力対策(出典:NTT R&D Forum 2023)

2024年9月20日、NTTは、AIデータセンタ消費電力増大の解決策として光回路と電気回路を組み合わせた、新しい光電融合デバイスの現在到達点と今後の展望公演を発表しました。

光電融合デバイスは、次世代ネットワーク:IOWNだけでなく、コンピューティングへも使えるとNTTは考えています。

AI新電力需要に対し、光電融合新技術で対処するのが日本)NTTの取組みです。

Summary:低消費電力トレンドとMCU開発

ドイツ、米国、日本、有力企業の電力不足の取組みを、最新記事からまとめました。

  • ドイツ)Volkswagen:ドイツ工場閉鎖、電力コストの安い国外拠点で代替
  • 米国)Microsoft:既存(休止)原発再稼働でAI新電力需要を補う
  • 日本)NTT:光電融合の新技術でネットワークとコンピューティング両方の電力不足解消を狙う

これら低消費電力トレンドは、MCU開発やその顧客へも影響を与えます。MCU単体の消費電力は僅かでも、IoT時代は数十億個ものMCUが稼働するからです。

開発MCU消費電力の少なさは、顧客に好印象を与え、他社差別化に大きく寄与します。

Afterword:低消費電力MCU開発

MCU IDEには、電力消費シミュレーションツールが付属しています。従来は、確認程度に使っていました。シミュレーションとはいえ、今後は顧客へのMCU低電力動作例を示すのに使えます。

また、新しい製造デバイスは、従来デバイスよりも高性能で低電力動作です。例えば、40nmプロセスのSTM32G0は、STM32F0/F1の半分以下の電力で高速動作します(弊社STM32G0xテンプレートP2参照)。MCU単体とシステム全体ハードコスト検討も必要ですが、評価価値はあります。

40nm汎用STM32G0シリーズとSTM32F0/F1シリーズの動作電力比較
40nm汎用STM32G0シリーズとSTM32F0/F1シリーズの動作電力比較

全ての弊社マイコンテンプレートは、低消費電力対策にSleep処理を組込み済みです。Sleep有無で消費電力がどの程度変わるか、コメント修正のみで実ハード確認ができます。

MCUプロトタイプ開発に最適、顧客への低電力動作アピールにも適すマイコンテンプレート、ご活用ください。


STM32G0xのLPUART利用法

STM32G0xデバイスは、従来からあるSTM32F0/F1デバイス通信機能USARTに、LPUART(Low Power UART)が新たに加わりました。本稿は、このSTM32G0xのLPUART利用法を解説します。

LPUARTとUSART

オンライントレーニング資料:STM32G0 – USARTのP26にLPUARTとUSARTの機能差分があります。

LPUARTとUSART差分(出典:STM32G0オンライントレーニング資料)
LPUARTとUSARTの差分(説明のため着色しています。出典:STM32G0オンライントレーニング資料)

USART1/2からIrDA:赤外線とLIN:車載通信機能を除いたサブセット版がLPUARTで、USART3/4より8バイトFIFO付きで高機能です。データシート:DS12232 Rev 2から抜粋した各消費電流が下記です。

LPUARTとUSART消費電流(出典:STM32G071xデータシートRev2)
LPUARTとUSART消費電流(出典:STM32G071xデータシートRev2)

LPUARTは、USART1/2とUSART3/4の中間、USART2.5/3.5が名前として適当かもしれません。API名を考慮し、USART1/2よりもLow Powerという特徴のLPUARTにしたのでしょう。

LPUARTサンプルプロジェクトは1個

前稿STM32G0xのADC利用法STM32G0xのADC利用法で示したように、LPUARTの実践的使い方習得には、AN5110記載のLPUARTサンプルプロジェクト理解が近道です。

しかし、現状の「LPUART」サンプルプロジェクトは、Examples_LLにあるLPUART_WakeUpFromStopの1個のみ、しかも、STM32CubeMXで生成できません(STM32G0x v1.1.0、STM32CubeMX v5.1.0)。
※HAL APIを使うExampleにも、LPUARTサンプルプロジェクトは現状なしです。
※4月末リリースSTM32G0x v1.2.0、STM32CubeMX v5.2.0でも状況は同じです。

一方、STM32CubeMXで生成できるLL API利用「USART」サンプルプロジェクトは多数あります。サンプルプロジェクト流用や活用で自分のソフトウェアを開発する場合、このような需要と供給のミスマッチは良くあります。

このミスマッチ対処方法を以下に示します。

供給USARTサンプルプロジェクトから需要LPUARTプロジェクト作成

初めに示したように、LPUARTはUSART1のサブセット版です。PCとのVirtual COMポート利用なら機能差はありません。従って、以下の手順でUSARTサンプルプロジェクからLPUARTプロジェクトを作成します。

USARTサンプルプロジェクからLPUART プロジェクト作成手順
USARTサンプルプロジェクからLPUART プロジェクト作成手順。簡単な変換作業で新プロジェクト作成ができる。

STM32CubeMXのLow-Layer API利用法 (1)で示したAPIユーザマニュアル:UM2319を見ると、ユーザソースコードAPIのUSART部分をLPUARTに変更すれば、API変換ができることも解ります。

この手順の良いところは、2と3が、簡単にできることです。

STM32CubeMXで生成できるサンプルプロジェクさえあれば、2と3は簡単で、しかもミスなくできます。つまり、サンプルプロジェク活用・流用がより簡単・正確にできます。筆者が、AN5110記載サンプルプロジェクトの中で、STM32CubeMX生成アイコン付きにこだわる理由がこれです。

1. USART_Comminication_Tx_Initサンプルプロジェクト動作確認

STM32CubeMXでUSART_Comminication_Tx_InitをSW4STM32用に生成します。評価ボードCN10#21とJP6のRX、CN10#33とJP6のTXを配線します。起動後USER BOTTONを押すとHyper Terminal(Tera Term)にメッセージが出力されLD4が点灯します。

※STM32CubeMXのSW4STM32用の使い方は、前稿ADC利用法のADC_SingleConversion_TriggerSW_InitのSW4STM32へのインポートの章を参照ください。

USART_Comminication_Tx_Initサンプルプロジェクト動作確認ができました。

USART_Comminication_Tx_Initサンプルプロジェクト実行結果
USART_Comminication_Tx_Initサンプルプロジェクト実行結果

2. STM32CubeMXでUSARTをLPUARTへ変更しコード生成

STM32CubeMXのPinout viewで、USART1をMode: Disable、LPUARTをMode: Asynchronous、115200bps/8Bits Word Lengthに設定します。LPUART1はProject Manager>Advanced SettingsでデフォルトのHALからLLへ変更します。GENERATE CODEでコード生成します。

STM32CubeMXでUSART1をLPUARTへ変更しコード生成
STM32CubeMXでUSART1をLPUARTへ変更しコード生成

3. SW4STM32でユーザコードをUSART APIからLPUART APIへ変更

生成されたSW4STM32の/* USER CODE BEGIN … */~/* USER CODE END … */の間のユーザコードは、コード再生成してもそのまま上書きされます。

従って、ソースコードで旧USART APIが残っているのは、この上書きユーザコード部分だけです。これ以外は、STM32CubeMXがコード生成時にLPUART APIへ変更済みです。

USART_Comminication_Tx_Initの場合は、下図赤線部分などです。これを青線のLPUART APIへ変更します。SW4STM32のFind/Replace機能を使うと、変更がミスなく簡単にできます。

ユーザコードのUSART API(赤線)からLPUART API(青線)へ変更
ユーザコードのUSART API(赤線)からLPUART API(青線)へ変更

4. LPUART変更後のプロジェクト動作確認

USARTからLPUARTへ変更したので、評価ボードCN10#16とJP6のRX、CN10#18とJP6のTXを配線します。起動後USER BOTTONを押すとHyper Terminal(Tera Term)にメッセージが出力されLD4が点灯します。LPUART変更プロジェクトの動作確認が出来ました。
※出力メッセージは、“LPUART project creation …”に変更しました。

作成したLPUARTプロジェクト実行結果
作成したLPUARTプロジェクト実行結果

手順1~4で作成したLPUARTプロジェクトから、LPUARTは、USARTと同じ使い方ができ、40%低電力(Table 33の数値比較)なサブセット版であることが解りました。

STM32G0xデバイスの新通信機能としてLPUARTを積極的に活用したいと思います。

※本章は、LPUARTの細かな使い方は、ソースコードを読めば解るという前提で説明しています。ソースコードの具体的な読み方は、前稿:STM32G0xのADC利用法のmain.cソースコードの読み方の章などを参考にしてください。

STM32G0xの実践的LPUART利用法まとめ

実践的に周辺回路利用法を習得するには、サンプルプロジェクト理解が近道です。

現状のSTM32G0x v1.1.0、STM32CubeMX v5.1.0は、LPUART習得に使えるサンプルプロジェクはLPUART_WakeUpFromStop の1個のみで、STM32CubeMXを使って生成はできません。
※4月末リリースSTM32G0x v1.2.0、STM32CubeMX v5.2.0でも状況は同じです。

一方、現状でもSTM32CubeMXで生成できるUSARTサンプルプロジェクトは多数あるので、これらを利用し、求めるLPUARTプロジェクトを作成する簡単でミスの少ない手順を示しました。

作成したLPUARTプロジェクトから、LPUARTは、USART1/2と同じ使い方で40%低消費電力な新通信機能であることが解りました。