00.目次
記事ディレクトリ
01.I2Cの概要
マイクロメータとI2Cシリアルバス間のインターフェイスとして、I2C(Inter-Integrated Circuit)バスインターフェイスが使用されます。これは、すべてのI2Cバス固有のシーケンス、プロトコル、アービトレーション、およびタイミングを制御できるマルチマスターモード機能を提供します。標準モードと高速モードをサポートします。SMBus2.0とも互換性があります。
CRCの生成と検証、SMBus(システム管理バス)、PMBus(電力管理バス)など、さまざまな目的に使用できます。
デバイスによっては、DMA機能を使用してCPUの負荷を軽減することができます。
02.I2Cの主な機能
パラレルバス/ I2 Cプロトコルコンバータ
●マルチマスターモード機能:マスターモードとスレーブモードの両方で同じインターフェイスを使用できます
●I 2 Cマスターモードの特性:
—クロック生成
—スタートビットとストップビットの生成
●I 2 Cスレーブモードの機能:
—プログラム可能なI 2 Cアドレス検出
— 2つのスレーブアドレスに応答できるダブルアドレッシングモード
—ストップビット検出
●7ビット/ 10ビットアドレッシングと一般的な呼び出しの生成と検出
●さまざまな通信をサポート速度:
—標準速度(最大100 kHz)
—高速(最大400 kHz)
●STM32F42xxxおよびSTM32F43xxx用のプログラム可能なデジタルノイズフィルター
●ステータスフラグ:
—送信/受信モードフラグ
—バイト転送終了フラグ
— I 2 Cビジーフラグ
●エラーフラグ:
—マスターモードでのアービトレーションの喪失
—アドレス/データ転送後の応答障害
—スタートビットとストップビットの置き忘れの検出
—クロック延長後のオーバーフロー/アンダーフローの禁止
●2 2つの割り込みベクトル:
—アドレス/データバイト転送イベントの成功によって割り込みがトリガーされます
—エラー状態によって割り込みがトリガーされます
●オプションのクロック延長
●DMA機能を備えた1バイトバッファ
●設定可能なPEC(パケットエラーチェック)の生成または検証:
— Txモードでは、PEC値を最後のバイトとして送信できます
—最後に受信したバイトのPECエラーチェック
●SMBus2.0の互換性:
— 25ミリ秒のクロック低レベルタイムアウト遅延
— 10ミリ秒のマスターデバイス累積クロック低レベル延長時間
— 25ミリ秒のスレーブデバイス累積クロック低レベル延長時間
—ACK制御によるハードウェアPEC生成/ Verification
—アドレス解決プロトコル(ARP)のサポート
●PMBusの互換性
03.I2C機能の説明
このインターフェイスは、データの送受信に加えて、シリアル形式からパラレル形式に、またはその逆に変換することもできます。割り込みはソフトウェアによって有効または無効にされます。インターフェイスは、データピン(SDA)とクロックピン(SCL)を介してI 2Cバスに接続されます。標準(最大100 kHz)または高速(最大400 kHz)のI 2Cバスに接続できます。
モード選択
インターフェイスは、動作時に次の4つのモードのいずれかを選択できます。
●スレーブ送信機
●スレーブ受信機
●マスター送信機
●マスター受信機
デフォルトでは、スレーブモードで動作します。スタートビットが生成されると、インターフェースは自動的にスレーブモードからマスターモードに切り替わり、アービトレーションが失われるかストップビットが生成されると、マスターモードからスレーブモードに切り替わり、マルチマスターモード機能を実現します。
IICブロック図
04.I2C割り込み
05.I2C関連レジスタ
5.1 I2C制御レジスタ1(I2C_CR1)
I2C制御レジスタ1
オフセットアドレス:0x00
リセット値:0x0000
5.2 I2C制御レジスタ2(I2C_CR2)
I2C制御レジスタ2
オフセットアドレス:0x04
リセット値:0x0000
5.3 I2C独自のアドレスレジスタ1(I2C_OAR1)
I2C独自のアドレスレジスタ1
オフセットアドレス:0x08
リセット値:0x0000
5.4 I2C独自のアドレスレジスタ2(I2C_OAR2)
I2C自身のアドレスレジスタ2
オフセットアドレス:0x0C
リセット値:0x0000
5.5 I2Cデータレジスタ(I2C_DR)
I2Cデータレジスタ
オフセットアドレス:0x10
リセット値:0x0000
5.6 I2Cステータスレジスタ1(I2C_SR1)
I2Cステータスレジスタ1
オフセットアドレス:0x14
リセット値:0x0000
5.7 I2Cステータスレジスタ2(I2C_SR2)
I2Cステータスレジスタ2
オフセットアドレス:0x18
リセット値:0x0000
5.8 I2Cクロック制御レジスタ(I2C_CCR)
I2Cクロック制御レジスタ
オフセットアドレス:0x1C
リセット値:0x0000
06.付録
6.1 [STM32] STM32シリーズチュートリアルの概要
ウェブサイト:[STM32] STM32シリーズチュートリアルの概要