• ベストアンサー

PICマイコンによるI2C通信について

私は高専の学生で、マイコンを使う部活に所属しております。 今回の活動で、複数のPICを使用することになり、I2C通信を使おうと思っています。 そこで、ある問題が発生しました。 PICによるI2C通信の解説を行っているとある方のサイトには、 「I2Cの通信方式は+5VにプルアップされたSDAとSCLの各信号線を、それぞれのデバイスがオープンドレイン等によるワイヤードオア接続で信号の操作と共有を行っている関係から、 電気的にはあまり強い環境ではありません。 なので、沢山のデバイスを接続したり、通信距離を長くしたりといったことには不向きなので、 ハードウエアの構築には細心の注意が必要でしょう。」 とあります。 今回の活動で使うPICは、事情により700~800mm程度離れた状態になると思われます。 距離が長い通信には不向きとありますが、この場合は大丈夫なのでしょうか。 また、I2C通信が不可能な場合はどのような通信手段を使えばよいのでしょうか。 知っている方がいらっしゃったら、御回答をよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.3

なんというか、とりあえず動けばいいのか、例えば製品レベルできちんと動かさなければいけないのか、によります。 とりあえず動けばいいなら、1mくらいなら、I2Cでも数百kbpsくらいの速度なら多分動くと思います。 SPIは、I2CのようにワイヤードORの線かはないので、I2Cよりは長距離でも動く可能性が高いです。 ただ、もしかしたらPICのピン直結だと駆動力が足らないので、外に別に駆動用のトランジスタを設けたほうがいいかもしれません。まあ。多分直結でも大丈夫なんではないかと思いますが。 もし、製品レベルできちんと動くものがほしいなら、I2CもSPIも基本的には不適です。(不可能ではないでしょうけど)

ozwind
質問者

お礼

とても具体的な回答ありがとうございます。 ロボットコンテスト用に使う為、I2Cでやってみようと思います。 もしかしたら、オンボードになるかもですし。 御回答ありがとうございました。

その他の回答 (2)

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

1mくらいなら、まあ、そんなに気にしないでも大丈夫という気はしますが。 心配なら、I2Cではなくて、SPIなんかにしたらどうでしょう。(ピン数が増えてしまいますが)

ozwind
質問者

補足

SPI通信の方でも考えてみたのですが、 SPI通信の事を調べる際に参考にした以下のサイト http://www.hi-ho.ne.jp/hida/pic41.htm では、SPI通信による通信もケーブルを使用した通信ではなく 基盤上のデバイス間通信に使うとあります。 SPI通信でも距離的な問題が発生するのではないでしょうか? 未熟者で申し訳ありませんが、御回答をよろしくお願い致します。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

>今回の活動で使うPICは、事情により700~800mm程度離れた状態になると思われます。 I2Cは本来近距離用のシステムですので、5V駆動でシールド線を使用し低速なモードであっても心配が残ります。 >また、I2C通信が不可能な場合はどのような通信手段を使えばよいのでしょうか。 距離が長くなることに対しての信頼性を要求するのであれば、ツイストペアケーブルを使用した差動信号方式の通信を使用すべきです。

ozwind
質問者

補足

ツイストペアケーブルを使用した差動信号方式の通信というのは、 つまりLANを使用するということでしょうか? 研究にあまり時間をかけたくない為、LANによる通信はあまり行いたくありません。 未熟者ですいませんが、詳細をよろしくお願いいたします。

関連するQ&A