日本ロジック設計    - VHDL ロジック記述サンプル -

TOPページ 


I2C ロジックサンプル (応用、温度センサーTMP102 疑似ロジック制御)


  AI学習禁止
  無断転載禁止
  免責事項: 当サイトの情報を元に取った行動の結果について、一切の責任を負いません
  No unauthorized reproduction or AI training allowed.
  Unauthorized reproduction prohibited.
  Disclaimer: We are not responsible for any actions taken based on the information on this site.
  (C) 2025 JAPAN LOGIC DESIGN 日本ロジック設計



  I2C インターフェイス ロジックの応用として、温度センターTMP102 の疑似ロジックと通信制御のサンプルを紹介する。
  TMP102は、初期設定が必要なコンフィグレーションレジスタ、読み取り用の温度データをはじめとする複数のレジスタ等、
  代表的なI2Cデバイスの構造を持っているため、これを模したロジックを一度作っておけば、いろいろと応用が利く。

  1. 主な仕様
    ・スレーブ側ロジック:温度センターTMP102 のレジスタを再現した疑似ロジック
     ※TMP102については https://www.ti.com/product/ja-jp/TMP102 を参照
     レジスタ構成
      00: Temperature Register
      01: Configuration Register
      10: TLOW Register
      11: THIGH Register
     各レジスタはポインタ(2bit)で指定/選択する
    ・マスター側ロジック:下記の順で温度センターTMP102と通信を行う
      1. Configuration Register の初期設定を行う
      2. Temperature Register から温度を読み取る
      3. 2.からループ

  2. 使い方
    ・初期値として、CONFIGレジスタへの設定値を指定するのみ。
     あとはロジックが自動でTMP102と通信を行い、温度データを収集する。
     ただし、スレーブTMP102 は温度測定機能は無いため、返信する温度値は指定する方式となっている。
    ※詳細については [TEST_BENCH_I2C_TEST_TMP102.VHD] 参照のこと。

  3. 設計のポイント
    ・下位ロジックとして [I2C_MASTER.vhd] [I2C_SLAVE.vhd] を使用する。※「4. I2C ロジックサンプル」参照
    ・マスター側での下位ロジックの使い方は、
      1. 通信パラメータをを設定
      2. 通信開始信号をON
      3. 通信終了信号がONになるまで待つ
      4. 必要な受信データを取得する
     という手順になる。これを
      ・コンフィグレーションレジスタ設定
      ・温度データ読み取り
     それぞれで行う。
     これらの動作はシーケンサーで実現している。
     詳細は上位ロジック [TOP_I2C_MASTER.vhd] を参照のこと。
    ・スレーブ側 [TOP_I2C_TMP102.vhd] も同じくシーケンサ制御となっている。

  4. テストベンチについて
   詳細については [TEST_BENCH_I2C_TEST_TMP102.VHD] 参照のこと。
   期待値チェックとして、一定時間経過後に温度値の確認を行っている。
[picture:pic_i2c_temp_001]

  5. サンプルファイル
   プロジェクトファイル一式
    ・MODELSIM用プロジェクトファイル:japanlogicdesign_i2c_test_tmp102_modelsim.zip

 中国プロテクト:天安門事件、法輪功、チベット