PDG2で生成されるI2C通信関数について

PDG2が生成するI2C通信の送信関数"R_PG_I2C_MasterSend_CX"について、第二パラメータのスレーブアドレスに0x55を設定してもSDAのラインでは0x54で通信してしまうようです。
EEPROMへの通信は最後尾ビットがLowで間違いないかと思うのですが、他I2Cデバイスに対応できるようにする方法はないでしょうか?
PDG2が生成するI2C通信関数はEEPROM用途でしか考慮されていないのでしょうか?

Parents
  • PDG2のマニュアルには以下のように書かれています。

     「 スレーブアドレスは、7ビットアドレスの場合は指定した値の7~1ビットが出力されます。

    スレーブアドレスが0x55なら、0xAAを指定するという事です。

    I2Cのスレーブアドレス指定ではLSBはアドレスフェーズのRnWビット用に空けてある事が多いのでこういう仕様なのだと思います。

  • 御回答有難うございます。もう一度データシートを読み直します。
  • Samuraiさん、こんにちは。NoMaYと申します。

    以前に私が関わったスレッドでボッシュさんのBMP180気圧センサのデータシートを見たことがあるのですが、以下のようになっていました。もし差支えが無いようでしたら、ご使用予定のデバイスの名前やデータシートのURLなど教えて頂くことは出来ませんか?

    BMP180データシートPDF - Bosch
    画面コピー


Reply Children
  • Samuraiさん、こんにちは。NoMaYです。

    すみません。必ずしもSamuraiさんが御使用予定のデバイスでなくても、具体的なデバイスを自力で探せばよかったことに気付きました。ググってみたところ、NXPさんの加速度センサMMA8491Qが見付かりました。これが、このスレッドに役立ちそうだと思いましたので、引用してみました。

    MMA8491QデータシートPDF - NXP
    画面コピー


  • チョコです。
    何を使うかはあまり気にする必要はなく,Samuraiさんが,0x55が7ビットでのアドレスならば,単純にこの後に
    0を追加して,0xAAを設定すればいいのではないでしょうか。
    ちなみに,EEPROMは通常上位4ビットが0xAのようです(ビット3-1は内部のアドレスで使用したり,複数使いの
    選択用に使用しています)。
    ところで,MMA8491Qの[7:1]Device Addressが「01010101」と8ビットあるのはおかしいですね。ここは,「1010101」
    が正しい記述でしょうね。