Forum Discussion

YFuji17's avatar
YFuji17
Icon for New Contributor rankNew Contributor
6 years ago

I2CスレーブIPを使う時の端子のIO規格や内部クロックの推奨は?

I2C Slave to Avalon-MM Master Bridge のIPを使用していますが、

時々I2Cによる読み書きが誤動作する事があり困っています。

デバイス外部の状況としては、プルアップをあまり強くできない

事情がありSCL/SDAの​立上りがややゆっくりとなっています。

起きている現象を解析すると、スレッショルド付近でラッチした値が不安定な期間が数サイクル続き、

その時にたまたまHigh3サイクル、Low3サイクルというパターンが来るとSCL​のエッジを誤検出してしまっています。

そこで質問ですが、

・IPの内部クロックはどれぐらいの周波数が想定されているでしょうか?

(現在100MHzを使用しています)

​・SCL/SDAのI/O Standardはどれを選択するのが推奨されますか?

(現在3.3-V LVCMOSを選択しています)​

・信号変化のヒステリシスを見ている部分がIP内部のソースコードにありますが、

 altera_i2cslave_to_avlmm_bridge.v のlocal param IC_DEFAULT_FS_SPKLENが現在2となっているのを

増やすとこの問題が起きなくなりそうに思えますが

Qsysから生成されたソースを直接編集する方法は問題ないですか?​

以上です。​

3 Replies

  • YFuji17's avatar
    YFuji17
    Icon for New Contributor rankNew Contributor

    すいません、追記で質問です。

    実際にIPのソースコードを書き換えてコンパイルを始めたところ、

    以下のエラーが出て​コンパイルできませんでした。

    Error (10228): Verilog HDL error at altera_i2cslave_to_avlmm_bridge.v(15): module "altera_i2cslave_to_avlmm_bridge" cannot be declared more than once

    同じモジュールを2回宣言しようとしている、と言われていますが単にソースを書き換えただけなので​そんなはずはありません。

    書き換えたソースコードは、Qsysの大きいモジュールのフォルダの下の /synthesis/submodules にあるものです。

    ​対処法がありましたらご教示ください。

    なお、Quartus のバージョンは16.1です。

    使用している他のIPが​17以降でサポート対象外になる関係でツールのアップデートはできません。

  • JonWay_altera's avatar
    JonWay_altera
    Icon for Frequent Contributor rankFrequent Contributor

    Hi @YFuji17

    ・IPの内部クロックはどれぐらいの周波数が想定されているでしょうか?

    (現在100MHzを使用しています)

    ==> Do you mean 100kHz? I dont think it supports up to 100MHz. Normally in kHz range.

    ​・SCL/SDAのI/O Standardはどれを選択するのが推奨されますか?

    (現在3.3-V LVCMOSを選択しています)

    ==> 3.3-V LVCMOS is ok

    Qsysから生成されたソースを直接編集する方法は問題ないですか?​

    ==> We do not recommend manually modifying the generated files.

    • YFuji17's avatar
      YFuji17
      Icon for New Contributor rankNew Contributor

      Thank you for replying.

      But I don't mean SCL (I2C's clock) is 100MHz.

      I mean that the Clock Input of IP "Altera I2C Slave to Avalon MM Master Bridge" is 100MHz.

      This clock is used to latch SCL and SDA input.

      I asked about the recommended frequency of the clock.