FC2カウンター FPGAの部屋 Zynq UltraScale+ MPSoC の I2C ペリフェラルの使用方法
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Zynq UltraScale+ MPSoC の I2C ペリフェラルの使用方法

MicroZed Chronicles: Kria & Raspberry Pi Camera”+ガウシアンフィルタ+メディアンフィルタ+ソーベルフィルタを ikzwm さんの Debian 11 で動作させるために、Zynq UltraScale+ MPSoC の I2C ペリフェラルの使用方法を学ぶ必要が出てきた。ここで、”Zynq UltraScale+ MPSoC TRM 457 UG1085 (v1.4) 2017 年 2 月 2 日”の 458 ページの”第 22 章 I2C コントローラー”を見て、勉強していこう。

Zynq UltraScale+ MPSoC TRM 457 UG1085 (v1.4) 2017 年 2 月 2 日”の 458 ページから引用。
I2C コントローラーの機能について
•プロセッシング システム (PS) は次の機能を持つ I2C デバイ ス をサポート し ています。
• I2C バス規格 Ver. 2
• 16 バイ ト FIFO をサポート
• プログラム可能な通常/高速バス データ レート
• マルチマス ターをサポー ト
• マスター モード
 ° 書き込み転送
 ° 読み出し転送
 ° 拡張アドレス をサポート
 ° プロセッサの処理が低速な場合、 HOLD を許可する こ と によ りクロック ストレッチをサポート
 ° ストールを防ぐための TO 割り込みフラグをサポート
 ° リピート スタートをサポート
 ° スレーブ モニター モー ド
• ス レーブ モード
 ° スレーブ トランスミッター
 ° スレーブ レシーバー
 ° 完全にプ ロ グ ラ ム可能な ス レーブ応答ア ド レ ス
 ° オーバーフ ロー条件を防ぐための HOLD をサポー ト
 ° ストールを防ぐための TO 割 り 込みフ ラ グをサポート
 ° データがすぐに利用でき ない場合、クロックストレッチによ り 通信を遅らせる こ と が可能
• ソフトウェアでステータス をポー リ ングするか、 割り込みで駆動 されるデバイ ス と し て動作
• プログラム可能な割り込み生成

Zynq UltraScale+ MPSoC の I2C ペリフェラルなので、MIO に SDA, SCL を出力するか、もしくは EMIO で PL 経由で SDA, SCL を出力する。

Zynq UltraScale+ MPSoC TRM 457 UG1085 (v1.4) 2017 年 2 月 2 日”の図 22‐2: I2C モジ ュールのブロ ッ ク図を引用する。
Zynq_MPSoC_1_211209.png

I2C モジュールは、インターフェースは APB で、 4 個のレジスタ・セットを持っている。Control FSM と Clock Enable Generator, RX Shift Register を持っている。

Zynq UltraScale+ MPSoC TRM 457 UG1085 (v1.4) 2017 年 2 月 2 日”の 462 ページの”表 22‐2: I2C レジス タの概要”と”表 22‐3: I2C レジスタのまとめ”を引用する。
Zynq_MPSoC_2_211209.png

MicroZed Chronicles: Kria & Raspberry Pi Camera”の helloworld.c のコードに

XIicPs_SetSClk(&iic_cam, IIC_SCLK_RATE);

がある。これは、”Zynq UltraScale+ MPSoC TRM 457 UG1085 (v1.4) 2017 年 2 月 2 日”の”表 22‐29: I2C CLK の取得”の様に設定しているものと思われる。
”表 22‐29: I2C CLK の取得”を引用する。
Zynq_MPSoC_3_211209.png

実際のクロック値 = (入力クロック / (22U x (Div_a + 1U) x (Div_b + 1U))
  1. 2021年12月09日 06:35 |
  2. Zynq UltraScale+ MPSoC
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/5433-6a996e0b
この記事にトラックバックする(FC2ブログユーザー)