I2Cを使用してセンサーと通信するにはどうすればよいですか?


29

I²Cインターフェースを介してデジタルセンサーと通信するにはどうすればよいですか?

ハードウェア:
Raspberry PiのGPIOのどのピンを使用できますか?

ソフトウェア:
利用可能なI²Cライブラリは何ですか?

回答:


23

RPiのGPIOに関する多くの情報がここにあります:http : //elinux.org/Rpi_Low-level_peripherals

それに応じて、I²CのGPIOピンをプログラムできますが、次のとおりです。

ピン3(SDA0)およびピン5(SCL0)は、I²Cインターフェースとして使用するためにプリセットされています。したがって、これらのピンにはボード上に1.8キロオームのプルアップ抵抗があります。

また、このWikiページには、さまざまな言語向けの低レベルGPIOコード例が用意されているので、すぐに使い始めることができます。あなたはI²Cが実際にあるかについて復習が必要な場合は、ここでは一つだも考慮にRPIをとります。

特定のI²C制御については、このpythonライブラリが役立つ可能性があります。これは、コードサンプルを含むこのブログ投稿で説明されています。


Edison Sparkfun GPIOピンをI2Cに適応させる可能性についてコメントはありますか?
地理理論

7

これについては多くの議論が行われています。これが私の読書といじりが示すものです:

  1. I2Cサポートは、Debianの「squeeze」ではデフォルトのカーネルに組み込まれていません
  2. カスタムカーネルはi2cspiモジュールでコンパイルする必要があります(GITツリーの抜粋です
  3. これまでに作成されたドライバーは3.2カーネル以降のみであり、作者はセキュリティホールの隙間のために3.1.9+をサポートするつもりはありません(Chris Bootがドライバーについて説明しています
  4. 幸運なことに、現在RasPiのベータ版であるDebian "wheezy"ディストリビューションには、このドライバーが搭載されています。3.2カーネルに付属しています。

2
はい、あなたが言及したように、それは現在標準カーネルに組み込まれています-公式のRaspbianとDebian wheezyディストリビューションの両方。私は従うことは簡単で、ここでいくつかのアドバイスに従って、私は/ devの...に現れてI2Cデバイスを持っているraspberrypi.org/phpBB3/viewtopic.php?f=37&t=15511 必要であれば、もう少し詳しくはこちらあります:robot- electronics.co.uk/files/rpi_i2c_setup.doc
dodgy_coder

、より詳細な取得ウェブリンク上で、ここではなく、データを保持し、これを望んでは、日付の出ていないために:Wheezyに2012年9月18日の画像、あなたの編集のよう/etc/modprobe.d/raspi-blacklist.confのエントリアウトとコメントi2c-bcm2708。次に、編集/etc/modulesして追加しますi2c-dev。その後再起動します。あなたは今持っている必要があり/dev/i2c-0、非常に使いやすいです特別なファイルを、。
ダミアン


2

ハードウェア:

Tapioが述べたように、ハードウェアはhttp://elinux.org/Rpi_Low-level_peripheralsでよく文書化されています

ソフトウェア:

Linuxユーザースペース(#include <linux/i2c-dev.h>)にi2c-devヘッダーがあります。さらに、読むためのキャラクター決定が必要です。これは、正しいモジュールをロードすることで実行できます。i2c_bcm2708低レベルのドライバーとi2c-devバスのキャラクター決定を生成します。適用...

sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>

その場でそれらをロードするため。適用...

sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf

ブラックリストから削除i2c_bcm2708/etc/modprobe.d/raspi-blacklist.confて、恒久的に表示/dev/i2c-0および/dev/i2c-1表示します。

これからは、I²Cdel maestroを自分で使用する方法ヒントに従うことができます。

この方法はプラットフォームに依存しないため、他の方法よりも好みます。linux/i2c-dev.h低レベルのI²Cドライバーが存在する限り、他のデバイスでも使用できます。

よろしく

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.