[STM32]詳細なI2C

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シリーズチュートリアルの概要

07.声明

おすすめ

転載: blog.csdn.net/dengjin20104042056/article/details/109033077