STM32WB – I²C
Inter-Integrated Circuit
1.0 版

こんにちは。STM32 I2C インタフェース（SAI）のプレゼンテー
ションへようこそ。このプレゼンテーションでは、マイコン、センサ、シリアルインタフェースメモリなどのデバイスを接続するために広く使用されている、この通信インタフェースの主な機能について説明します。

1

概要
STM32WB

2• I2C 通信インタフェースを提供• I2C バス仕様およびユーザマニュアル、リビジョン 3

Cortex® M4• 標準、高速、および高速モードプラス（1MHz）• SMBus 3.0 ハードウェアサポート• PMBus 1.3 互換性
SRAM

センサ
Flash

DMA

I²C
I²C

センサ

アプリケーション側の利点

センサ• 使いやすいイベント管理

アプリケーション
プロセッサ2• 完全にプログラム可能なタイミング値• 低電力 STOP モードで動作可能

I2C インタフェースは、NXP I2C バス仕様およびユーザマニュ
アル（リビジョン 3）、SMBus システム管理バス仕様（リビジョン 3）、PMBus 電力システム管理プロトコル仕様（リビジョン1.3）に準拠しています。
このペリフェラルは、使いやすいインタフェース、非常にシンプルなソフトウェアプログラム、および完全なタイミングの柔軟性を備えています。また、I2C ペリフェラルは、低消費電力の STOP モードで動作可能です。

2

主な機能

VDD

RpRp

SDA
SCL
マスタ 1

マスタ 2

スレーブ
n-1

スレーブn

START
コンディション

STOP
コンディション

3• マルチマスタおよびスレーブ機能• 高速モードプラスでは 20mA 出力の駆動能力• すべての I2C バス固有のシーケンス、プロ
トコル、アービトレーション、およびタイミン
グ値を制御• 7 および 10bit アドレッシングモード• 複数の 7bit アドレスサポート

ACK

ACK

アドレス

データ 1

ACK/NACK

データ n• クロックストレッチオプション

ReStartコンディション

I²C プロトコル
ACK/NACKI2C ペリフェラルはマルチマスタおよびスレーブモードをサポートします。
I2C IO ピンは、オープンドレインモードで設定される必要があります。論理ハイレベルは外部プルアップによって駆動されます。IO ピンは高速モードプラスに必要な 20mA 出力駆動をサポートします。
ペリフェラルは、すべての I2C バス固有のシーケンス、プロトコル、アービトレーション、およびタイミング値を制御します。
7 および 10-bitアドレッシングモードがサポートされ、同じアプリケーションで複数の 7bit アドレスをサポートできます。
マスタモードのペリフェラルは、スレーブクロックストレッチとスレーブ側からのクロックストレッチをサポートします。ペリフェラルのスレーブモード構成では、クロックストレッチをソフトウェアによって無効にできます。

3

主な機能

4

• プログラム可能なセットアップおよびホールド時間• SCL および SDA ラインでのプログラム可能なアナログおよびデジタルノイズフィルタ• アドレス一致時に STOP モードからウェイクアップ• 独立クロックにより、システムクロックから独立した通信ボーレートが可能

セットアップおよびホールド時間は、ソフトウェアによるプログラムが可能です。
データおよびクロックラインのアナログおよびデジタルグリッチフィルタをソフトウェアによって設定できます。
ペリフェラルは、アドレス一致が検出されたとき、MCU をSTOP モードからウェイクアップできます。
ペリフェラルは独立したクロックドメインを持つため、システムクロックから独立した通信ボーレートが可能です。

4ブロック図5

SYSCFG_CFGR1/I2Cx_FMP
SYSCFG_CFGR1/I2C_PBx_FMP

RCC_CCIP2R / I2CxSEL

I²C
クロック制御デジタルノイズフィルタ

アナログノイズフィルタ

データ制御

デジタルノイズ
フィルタ

アナログ
ノイズフィルタ

GPIO
ロジック

SCL

GPIO
ロジック

SDA

PCLK
SYSCLKI2CCLK

HSI16
予約済み

SYSCFG_CFGR1/I2Cx_FMP
SYSCFG_CFGR1/I2C_PBx_FMP

PCLK

レジスタ

SMBA

APB バス

これは、I2C ブロック図です。レジスタは APB バスを介してアクセスされ、ペリフェラルは APB クロックから独立した I2C ク
ロックからクロック供給されます。I2C クロックは、APB クロック、高速内部 RC オシレータ、およびシステムクロックから選択できます。
SCL および SDA ラインには、アナログおよびデジタルノイズフィルタがあります。20mA の駆動能力は、システム設定レジスタの制御ビットを使用して有効にできます。
さらに、SMBus モードでは SMBus アラートピンが使用可能です。

5I2C プログラム可能タイミング

6

タイミング生成における完全な柔軟性• 送信時の SDA および SCL ライン間のセットアップおよびホールド時間は、I²C タイミン
グレジスタ（I2C_TIMINGR）の PRESC、SDADEL、および SCLDEL フィールドでプログラム可能• SDADEL はデータホールド時間の生成に使用。 tSDADEL = [SDADEL * (PRESC+1) + 1] * tI2CCLK• SCLDEL はデータセットアップ時間の生成に使用。 tSCLDEL = (SCLDEL+1) * (PRESC+1) * tI2CCLK

tSU;DAT データセットアップ時間

tHD;DAT データホールド時間
SDADEL

クロックストレッチ

SCLDELSCL
SDAtSYNC1
SCL 立ち下がりエッジ内部検出

I2C のセットアップおよびホールド時間は、I2C タイミングレジ
スタを介してソフトウェアによって設定できます。
SDADEL および SCLDEL カウンタは、最小のデータホールド時間とデータセットアップ時間を保証するために、送信時に使用されます。
I2C ペリフェラルは、クロックラインの立ち下がりエッジを検出した後、プログラムされたデータホールド時間だけ待ってからデータを送信します。データの送信後、プログラムされたデータセットアップ時間の間、クロックラインはローにストレッチされます。
合計のデータホールド時間は、プログラムされた SDADELカウンタより大きくなります。これは、SCL 立ち下がりエッジが内部で検出されて初めて、SDADEL 遅延が追加されるためです。この内部検出に必要な時間（tSYNC1）は、SCL 立ち下がりエッジ、フィルタによる入力遅延、および内部 SCL と I2C クロックとの同期による遅延に依存します。ただし、セットアップ時間は、これらの内部遅延の影響を受けません。

6

I²C マスタクロック生成

7

マスタクロック生成における完全な柔軟性• I2C_TIMINGR により SCL ローおよびハイ時間をプログラム可能• SCL ローカウンタ：(SCLL+1) * (PRESC+1) * tI2CCLK• SCL の立ち下がりエッジの内部検出後にカウントを開始。
• カウント後、SCL はリリース。

• SCL ハイカウンタ：(SCLH+1) * (PRESC+1) * tI2CCLK• SCL の立ち上がりエッジの内部検出後にカウントを開始。
• カウント後、SCL はローに駆動。

• SCL period = tSYNC1 + tSYNC2 + [(SCLL+1) + (SCLH+1)] * (PRESC+1) * tI2CCLKtSYNC2 SCLH
SCLL

SCL
SDA
tSYNC1

SCL 立ち下がりエッジ内部検出

I2C マスタクロックのローおよびハイレベル時間は、I2C タイミン
グレジスタでソフトウェアによって設定されます。
SCL ローおよびハイレベルカウンタは、SCL ラインのエッジの検出後に開始します。この実装により、ペリフェラルはマルチマスタ環境でマスタクロック同期メカニズムをサポートでき、スレーブクロックストレッチ機能もサポートできます。
したがって、合計の SCL 周期はカウンタの合計より大きくなります。これは、SCL ラインのエッジの内部検出による遅延の追加に関係しています。これらの遅延、つまり、tSYNC1 と tSYNC2 は、SCLの立ち下がりまたは立ち上がりエッジ、フィルタによる入力遅延、および内部 SCL と I2C クロックとの同期による遅延に依存します。

立ち上がりエッジは、プルアップレジスタと SCL ラインのキャパシタンスに依存します。立ち下がりエッジは、データシートで定義された I/O ポートのパラメータに依存します。クロック速度を適切に設定するために、これらのエッジを測定または計算できます。
STM32CubeMX ツールで I2C ペリフェラルを適切に設定するために必要であり、その後、タイミングレジスタの設定は、このツールによって自動的に計算できます。

7

スレーブアドレッシングモード

8

多数のスレーブアドレス•

I2C は複数のスレーブアドレスを認識可能。2 つのアドレスレジスタ：•

I2C_OAR1：7 または 10bit モード•

I2C_OAR2：7bit モードのみ。OA2MSK[2:0] により OAR2 の 0～7LSB をマスク可能
OA2MSK [2:0]

アドレス一致条件

000

アドレス [7:1] = OA[7:1]001

アドレス [7:2] = OA[7:2]（ビット 1 は無視）

010

アドレス [7:3] = OA[7:3]（ビット 2:1 は無視）

...
111

I2C 予約済みアドレスを除き、すべてのアドレスが認識されます。

I2C スレーブは複数のスレーブアドレスを認識できます。ス
レーブアドレスは 2 つのレジスタにプログラムされます。自己アドレスレジスタ 1 は、7 または 10bit アドレスでプログラムできます。自己アドレスレジスタ 2 は、7bit アドレスでプログラムできますが、このアドレスの最下位ビットを OA2MSK レジスタを介してマスクし、複数のスレーブアドレスを認識させることができます。2 つの自己アドレスレジスタを同時に有効化できます。

8

アドレス一致時に STOP モードからウェイクアップ

9

I2CCLK クロックが HSI または CSI に設定されているとき、I²C はスレーブアドレスの受信時に MCU を STOP モードからウェイクアップ可能。すべてのアドレッシングモードがサポート。

アドレスが一致する場合

HSI ウェイクアップ時間：SCL ストレッチ

アドレス一致割込み

STM32 ウェイクアップ時間：SCL ストレッチ

SCL
SDA

ACK

STARTコンディション

HSI

HSI OFFSTOP モード

HSI ウェイクアップ時間：SCL ストレッチSCL

HSI ON

RUN モード

アドレスが一致しない場合

SDA

NACK

START
コンディション

HSI

データ転送続行

HSI OFF

マスタによって送信された STOP（または RESTART）コンディション

HSI OFFHSI ONSTOP モード

I2C ペリフェラルは、アドレス一致時の STOP モードからのウェイクアップをサポートします。このためには、I2C ペリフェラルクロックをHSI16 オシレータに設定する必要があります。STOP からのウェイクアップ機能が有効な時には、アナログノイズフィルタのみがサポートされます。すべてのアドレッシングモードがサポートされます。
デバイスが STOP モードのとき、高速内部オシレータはオフになります。 START コンディションが検出されると、I2C ペリフェラルは高速内部オシレータを有効にし、それを使用してバス上のアドレスを受信します。
STOP モードでアドレスが受信された後、アドレスがプログラムされたスレーブアドレスに一致した場合、ウェイクアップ割込みが生成されます。
アドレスが一致しなかった場合、高速内部オシレータはオフになり、割込みは生成されず、デバイスは STOP モードのままです。
I2C ペリフェラルはSTART コンディション後、高速内部オシレータが開始するまでクロックラインをローにストレッチするので、クロックストレッチを有効にする必要があります。プログラムされたスレーブアドレ
スに一致するアドレスを受信した後、I2C ペリフェラルは STM32 デバイスがウェイクするまで、クロックラインをローにストレッチします。

9シンプルなマスタモード管理

10

ペイロードが 255バイト以下の場合、必要な書込み回数は 1 回のみ•••••

START = 1
SADD：スレーブアドレス
RD_WRN：転送方向NBYTES = N：転送されるバイト数
AUTOEND = 1：N データ後、STOP を自動送信
AUTOEND

説明

0：ソフトウェア終了モード

NBYTES バイトのデータが転送された後、転送終了をソフトウェアで制御：転送完了（TC）フラグがセットされ、有効な場合は割込みが生成されます。
RESTARTまたはSTOP コンディションをソフトウェアによって要求できます。

1：自動終了モード

NBBYTES バイトのデータが転送された後、STOP コンディションが自動送信されます。

マスタモードでのソフトウェア管理は非常にシンプルです。1
回の書込みアクションだけで、255バイト以下のペイロードのマスタ転送を処理できます。完全なプロトコルはハードウェアによって管理されます。
マスタモードで転送を開始するには、I2C 制御レジスタ 2 にSTART コンディション要求、スレーブアドレス、転送方向、転送されるバイト数、および転送終了モードを書き込む必要があります。転送終了モードは、AUTOEND ビットによって設定されます。このビットがセットされた場合、プログラムされたバイト数が転送された後、STOP コンディションが自動的に送信されます。
AUTOEND ビットがセットされていない場合、転送終了はソフトウェアによって管理されます。 プログラムされたバイト数が転送された後、転送完了（TC）フラグがセットされ、有効な場合、割込みが生成されます。その後、RESTARTまたはSTOP コンディションをソフトウェアによって要求できます。
データ転送は、割込みまたは DMA によって管理できます。

10

使いやすいイベント管理

11• ペイロードが 255バイトを超える場合：I2C_CR2 の RELOAD ビットをセットする必要あり。
• AUTOEND = 0 は、RELOAD ビットがセットされているときには効果無し。
RELOAD説明

0：リロードなし

NBYTES バイトのデータが転送された後、STOP または RESTART が続きます。

1：リロードモード

NBYTES バイトのデータが転送された後、NBYTES がリロードされ、データ転送が再開されます。
転送完了リロード（TCR）フラグがセットされ、有効な場合は割込みが生成されます。

ペイロードが 255バイトより大きいときには、I2C 制御レジス
タ 2 の RELOAD ビットをセットする必要があります。この場合、プログラムされたバイト数が転送された後、転送完了リロード（TCR）フラグがセットされます。TCR ビットがセットされていると、転送される追加のバイト数がプログラムされ、データ転送が再開されます。TCR ビットがセットされている限り、I2C クロックはローにストレッチされます。RELOAD ビットは、マスタモードではペイロードが 255バイトより大きいときに使用され、スレーブモードでは、スレーブバイト制御が有効なときに使用されます。
RELOAD ビットがセットされているとき、AUTOEND ビットは効果がありません。

11

スレーブモード

12• デフォルト：I2C スレーブはクロックストレッチを使用します。クロックストレッチはソフトウェアで無効可能。
• 受信：認識制御は、RELOAD = 1 のとき、スレーブバイト制御（SBC）モードで選択されたバイトで実行可能。
• SBC = 1 のとき、スレーブモード（Tx および Rx モード）の NBYTES カウンタが有効。
• SBC = 1 は、NOSTRETCH = 0 のときのみ設定可能。
SBC

説明

0：リロードなし

NBYTES バイトのデータが転送された後、STOP または RESTART が続きます。

1：リロードモード

NBYTES バイトのデータが転送された後、NBYTES がリロードされ、データ転送が再開されます。
転送完了リロード（TCR）フラグがセットされ、有効な場合は割込みが生成されます。

デフォルトでは、I2C スレーブはクロックストレッチを使用します。ク
ロックストレッチ機能はソフトウェアで無効にできます。
受信モードでは、スレーブによる受信バイト認識動作は、スレーブバイト制御モードが選択されていて、RELOAD ビットがセットされているときに設定できます。SBC ビットがセットされているとき、スレーブモードでバイト数カウンタが有効になります。クロックストレッチは、スレーブバイト制御が有効なときに有効でなければなりません。
受信モードでは、スレーブバイト制御が有効であり、RELOAD ビットがセットされていて、転送されるバイト数が 1 のとき、1バイト受信ごとに転送完了リロードフラグがセットされ、SCL ラインがストレッチされます。これは、データ受信後、認識パルス前に行われます。受信バッファノットエンプティフラグもセットされ、データの読出しが可能になります。TCR サブルーチンでは、ACK(認識)またはNACK(非認識)がバイト受信後に送信されるようにプログラムできます。
I2C スレーブトランスミッタモードではバイトカウンタを使用しないた
め、送信時は SBC ビットをクリアすることを推奨します。
SMBus モードでは、スレーブバイト制御モードは、送信時、PEC（パッケージエラーコード）バイトの送信に使用されます。
12

SMBUS13

シームレスな SMBus 2.0 サポート

• ARP（アドレス解決プロトコル）：スレーブモードでは、デバイスのデフォルトアドレス、アービトレーション• ホスト通知プロトコルのサポート：ホストアドレス• アラートのサポート：アラートピンとアラート応答のサポート• タイムアウトとバスアイドルの検出• SBC モードでのコマンドおよびデータ認識制御• パケットエラーチェック（PEC）のハードウェア計算

I2C ペリフェラルは、SMBus のハードウェアサポートを提供します。SMBus アドレス解決プロトコルは、スレーブモードでは、デバイスのデフォルトアドレスとアービトレーションを通じてサポートされます。
ホスト通知プロトコルは、ホストアドレスサポートによってサポートされます。
アラートプロトコルは、SMBus アラートピンとアラート応答アドレスを通じてサポートされます。
SMBus クロックロータイムアウトと累積クロックロー延長時間を、プログラム可能な時間で検出できます。バスアイドル条
件は、プログラム可能な時間で検出できます。
コマンドおよびデータ認識制御は、スレーブバイト制御モードを通じてサポートされます。
パケットエラーコード（PEC）バイトは、ハードウェアによって計算されます。

13

SMBus：PEC（パケットエラーチェック）

14• PEC の自動送信／チェック• NBYTES（データ転送カウンタ）は以下のために使用• 受信時、NBYTES-1バイトの受信後に、パケットエラーコード（PEC）バイトを自動的にチェック• 障害時に、NACK を自動送信• 送信時、NBYTES-1バイトの送信後に、パケットエラーコード（PEC）バイトを自動的に送信• スレーブバイト制御モード（SBC ビット）をスレーブモードにセットして、NBYTES カウンタを有効にする必要あり。

パケットエラーコード（PEC）バイトは、送信時に自動送信され、受信時に自動的にチェックされます。
データ転送カウンタは、NBYTES 値で初期化され、受信時にNBYTES-1バイトを受信した後、PEC バイトを自動的にチェックするために使用されます。受信した PEC バイトが計算に一致しなかった場合、PEC バイト後に NotAcknowledge （NACK）が自動的に送信されます。送信時は、NBYTES-1バイト後に、内部で計算された PEC バイトが自動的に送信されます。NBYTES カウンタを有効にして、PECの自動送受信を可能にするには、スレーブバイト制御モードをスレーブモードで有効にする必要があります。

14

割込みと DMA
割込みイベント

15

説明

受信バッファノットエンプティ

受信バッファに受信データがあり、読出し準備ができているときにセットされます。

送信バッファ割込みステータス

送信バッファが空であり、書込み準備ができているときにセットされます。

ストップ検出

バス上でSTOP コンディションが検出されたときにセットされます。

転送完了リロードRELOAD=1 であり、NBYTES バイトのデータが転送されたときにセットされます。

転送完了

RELOAD=0、AUTOEND = 0 であり、NBYTES バイトのデータが転送されたときにセットされます。

アドレス一致

受信したスレーブアドレスが有効なスレーブアドレスの 1 つと一致したときにセットされます。

NACK 受信

1バイト送信後に NACK を受信したときに、ハードウェアによってセットされます。

• 受信バッファがノットエンプティのとき、または送信バッファがエンプティのとき、DMA リクエストを生成可能。

いくつかのイベントが割込みをトリガします。
受信バッファノットエンプティフラグは、受信バッファに受信データがあり、読出し準備ができているときにセットされます。
送信バッファ割込みステータスは、送信バッファが空であり、書込み準備ができているときにセットされます。STOP 検出フ
ラグは、バス上でSTOP コンディションが検出されたときにセットされます。
転送完了リロードフラグは、RELOARD bitがセットされていて、NBYTES バイトのデータが転送されたときにセットされます。
転送完了フラグは、RELOAD および AUTOEND ビットがクリアされ、NBYTES バイトのデータが転送されたときにセットされます。
アドレス一致フラグは、受信したスレーブアドレスが有効なスレーブアドレスの 1 つと一致したときにセットされます。
NACK 受信フラグは、1バイト送信後に Not Acknowledge（NACK）が受信されたときにセットされます。
受信バッファノットエンプティまたは送信バッファエンプティフラ
グがセットされたとき、DMA リクエストを生成できます。
15

エラー割込み
割込みイベント

16

説明

バスエラー検出

START または STOP コンディションの誤配置が検出されたときにセットされます。

アービトレーション喪失

アービトレーション喪失のイベントでセットされます。

オーバーラン／アンダーランエラー

スレーブモードで NOSTRETCH = 1 の場合、前のバイトがまだ読み出されていない間に新しいデータを受信したとき、または新しいデータがまだ書き込まれていない間に新しいデータを送信する必要があるときにセットされます。

SMBus：PEC エラー

受信した PEC が PEC レジスタの内容に一致しないときにセットされます。

SMBus：タイムアウトエラー

タイムアウトまたは拡張クロックタイムアウトが発生したときにセットされます。

SMBus：アラートピン検出

SMBHEN = 1（SMBus ホスト設定）、ALERTEN = 1 であり、SMBA ピンで SMBALERT イベント（立ち下がりエッジ）が検出されたときにセットされます。

いくつかのエラーフラグが生成されます。
バスエラー検出フラグは、START または STOP コンディションの誤配置が検出されたときにセットされます。アービトレーション喪失フラグは、アービトレーション喪失時にセットされます。オーバーランまたはアンダーランエラーフラグは、スレーブモードでクロックストレッチが無効な場合、オーバーランまたはアンダーランエラーが検出されたときにセットされます。
SMBus モードでは、PEC エラーフラグは、受信した PEC が計算された PEC レジスタの内容に一致しないときにセットされます。タイムアウトエラーフラグは、タイムアウトまたは延長クロックタイムアウトが検出されたときにセットされます。アラートピン検出フラグは、SMBus ホスト設定で、アラートが有効であり、SMBA ピンで立ち下がりエッジが検出されたときにセットされます。

16低電力モード
モード

17

説明

RUN／低電力 RUN

アクティブ

SLEEP／低電力 SLEEP

アクティブ。ペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

STOP 0 / STOP 1

I2C レジスタの内容は保たれます。WUPEN = 1 かつ I2C が内部オシレータ（HSI16）によってクロック供給されている場合：アドレス認識が機能します。I2C アドレス一致条件によって、デバイスは STOP 0/1 モードから復帰します。WUPEN=0：STOP 0/1
モードに入る前に I2C を無効にする必要があります。

STOP 2I2C レジスタの内容は保たれます。STOP 2 モードに入る前に I2C 1 を無効にする必要があります。
WUPEN = 1 かつ I2C3 が内部オシレータ（HSI16）によってクロック供給されている場合：I2C3アドレス認識が機能します。I2C3 アドレス一致条件によって、デバイスはSTOP 2 モードから復帰します。WUPEN=0 の場合：STOP 2 モードに入る前に I2Cを無効にする必要があります。

STANDBY/SHUTDOWN

パワーダウン状態。STANBY または SHUTDOWN モード終了後にペリフェラルを再初期化する必要があります。

これは、特定の低電力モードでの I2C のステータスの概要です。
I²C ペリフェラルは、RUN および SLEEP モードでアクティブです。STOP モードでは、I²C レジスタの内容が保持されます。
I²C アドレス認識は STOP 0 と STOP 1 で機能し、アドレス一致によってデバイスは STOP モードから復帰します。
STOP 2 では、I2C3 アドレス認識のみが機能し、デバイスをウェイクアップできます。STANBY または SHUTDOWN モードでは、ペリフェラルはパワーダウン状態になり、STANBY ま
たは SHUTDOWN モードからの復帰後に再初期化する必要があります。

17デバッグ情報

18• DBG_I2Cx_STOP：コア停止時、I2Cx SMBUS タイムアウトカウンタは停止。

各 I²C ペリフェラルについて、MCU デバッグコンポーネント
で 1bitをデバッグ目的に使用でき、これを使用して、コアが停止したときに SMBUS タイムアウトカウンタを停止することができます。

18

アプリケーション例

19

センサハブ

• SLEEP モードの I2C マスタがセンサと通信• I²C スレーブはアプリケーションプロセッ
サと通信

STM32WB

Zzz

Cortex® M4
SRAM 2
SRAM 1

センサ
FlashDMA

センサ

I²C

センサ

I²C

アプリケー
ションプロ
セッサ

19

これは、いくつかの I2C ペリフェラルを必要とするセンサハブ
アプリケーションの例です。
1 つ以上の I2C マスタが外部のセンサとのインタフェースに使用されます。I²C スレーブはアプリケーションプロセッサと通信するために使用されます。

19

STM32WB インスタンス機能
I2C1

I2C3

7-bitアドレスモードXX

10-bitアドレスモード

X

X

標準モード（最大 100kbit/s）

X

X

高速モード（最大 400kbit/s）

X

X

20mA 出力駆動 I/O 搭載高速モードプラス（最大 1Mbit/s）

X

X

SMBus

X

独立クロックX

X

アドレス一致時に STOP0/STOP1 からウェイクアップ

X

X

I²C の機能20

X

アドレス一致時に STOP2 からウェイクアップ
X：サポートSTM32WB マイクロコントローラは 2 つの I2C ペリフェラルを内蔵しています。I2C3 は SMBus 拡張ハードウェア機能をサポートせず、アドレス一致時の STOP 2 からのウェイクアップをサポートする唯一のものです。

20

関連ペリフェラル

21• 詳細については、このペリフェラルにリンクしている以下のトレーニングを参照してください。
• システム設定コントローラ（SYSCFG）• リセットおよびクロックコントローラ（RCC）• 電源コントローラ（PWR）• 割込み（NVIC および EXTI）• ダイレクトメモリアクセス（DMA）コントローラ

このペリフェラルに関する詳細については、以下のトレーニン
グも参照してください。
• システム設定コントローラ• リセットおよびクロックコントローラ• 電源コントローラ• 割込みコントローラ• ダイレクトメモリアクセスコントローラ

21

参照

22

• 詳細については、以下の Web ページを参照してください。
• www.nxp.com :• UM10204 I2C-bus specification and user manual• www.sbs-forum.org• System Management Bus (SMBus) Specification• http://www.powersig.org/• PMBusTM Power System Management Protocol Specification

詳細については、NXP Web サイトから、I2C バス仕様およびユーザマニュアルを参照してください。
SMBus 仕様については、Smart Battery Systemimplementers forumを参照してください。
PMBus 電力システム管理プロトコル仕様については、
Power Management Bus implementers forumを参照してください。

22