質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

4回答

6484閲覧

I2Cのアドレス0へのアクセスの可否について

退会済みユーザー

退会済みユーザー

総合スコア0

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2015/05/03 16:37

RaspberryPi(以下、RPi)でI2Cデバイスを使用するときに、I2Cアドレスを選択します。
RPiでi2cdetectコマンドを用いると、使用できる(使用中の)デバイスのアドレスを表示することが出来ます。

lang

1$ sudo i2cdetect -y 1 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 300: -- -- -- -- -- -- -- -- -- -- -- -- -- 410: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 520: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 630: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 740: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 850: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 960: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1070: -- -- -- -- -- -- -- --

アドレスの00,01,02は使え無さそうに見えます。
実際に使えないのでしょうか?
手元に、I2Cアドレス00番地固定のセンサーがあるのですが、困っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

直接の回答ではありません。

資料を自力で探せるようにならないと、
通信系含めて、ハードウェア絡みの事を
行おうと思っても、厳しいです。
例えば、
技術・工学 > 電気 > 弱電 > 部品 > 論理素子 > トランジスタ > IC(集積回路) > 技術用語
I²C
http://www.wdic.org/w/SCI/I%C2%B2C
インターフェイス ⇒ アドレス
などは、適切に検索を行っていれば、見つけることが出来るはずです。
I2Cといっても、I2Cの規格に則った物、
電気的、物理的に、I2Cでも、
I2Cの通信プロトコルに則っていない物があります。
そこいら辺を加味して、RaspberryPI / PI2 では
I2Cをどうやって実現しているか、を調べ、ドライバーの作り込みを調べたり、
チップを使っているのであれば、スペックシートを読み、解析したり、
事例検索をしてみたり、します。

同一アドレスのデバイスを、複数使用したい場合は、
I2Cマルチプレクサ
の使用や、
別のボードをI/Fとして使ったり
を考えます。
また、コードが書けるのであれば、自前実装のドライバを考えます。

I2C自体は、1.8V / 2.5V / 3.3V / 5.0V の系があるようですから、
混在しないように注意します。
トレラントになっていない、GPIOを使用する場合には、
I2Cバス用双方向電圧レベル変換モジュール
http://akizukidenshi.com/catalog/g/gM-05452/
の様な物が必用になる場合もあります。

リセット付き8chI2Cバスマルチプレクサ PCA9547D
http://akizukidenshi.com/catalog/g/gI-09098/
同メーカー、他メーカーで、2CH / 4CH / 8CH 品等があります。
入手は、RSオンライン、DigiKey、Mouser、共立、秋月、他様々。
古くは、maxim からも。

STM32 Nucleo Board STM32F401
http://akizukidenshi.com/catalog/g/gM-07723/
I2CデバイスとのI/Fを別ボードでやらせたり、
RspberryPI / PI2 とはシリアルやら、使いやすい方法でやら。

トレラント:5Vトレラントなど
Raspberry PI / PI2 のI2Cの電圧は、何ボルトか、仕様はどうなっているか、
I2Cのポートとして、GPIOを使っている場合は、GPIOの仕様なども、調べます。

自前用のI2Cコード例は、事例がネット上にあります。
I2C用のポートと、通常のGPIOポートで実現した場合の違いは、
少なくはないのですが、趣味の範囲では
GPIOを使って、ソフトウェアだけでのI2Cマスタ、スレーブの実装をされた方もいらっしゃいます。

同じメーカーで、I2Cもどき品、I2C品の例
1チップ温度・湿度センサ [SHT-11]
https://strawberry-linux.com/catalog/items?code=80001
Sensirion 1チップ温度・湿度センサ [SHT-71]
https://strawberry-linux.com/catalog/items?code=80004
SHT-21 1チップ温度・湿度センサ・モジュール
https://strawberry-linux.com/catalog/items?code=80021
SHT-25 高精度1チップ温度・湿度センサ・モジュール
https://strawberry-linux.com/catalog/items?code=80025

投稿2015/05/04 02:03

編集2015/05/04 02:44
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daive

2015/05/04 09:15

>そこらへんは熟知しているつもりでございます。 熟知していると思っているだけで、きちんと表現できていないから、 掲示の様な質問になるのですが? >その上で、i2cdetectによる00,01,02の空白をどうするか >皆様のご意見を伺ってみたく質問したわけです。 なら、その様に書かないと、 貴方の頭の中が、覗けるわけでは無いのですよ? で、 I2Cの規格に則ったデバイスならば、 0000 000 0000 001 0000 010 0000 011 の、デバイスアドレスは、定義され得ない、 特に 0000 000 は、ゼネラルコールなので、、 (そこらへんは熟知しているつもりでございます。らしいから) 後省略
daive

2015/05/09 06:06

退会済みは、残念ですが、人それぞれ ’ 昨日、秋月(秋葉店)、Aitendo へ買い出しにいって、 以下秋月 雷センサー:店内棚上段手前段ボール 雷センサーデモソフト使用I2C液晶:店頭品 I2Cマルチプレクサ:非店頭品の様子。 I2CマルチプレクサICDIP化基盤:店頭品 Raspberry PI用ブレッドボード接続キット:入口ワゴン ※見付らない場合様に、プリントアウトや、型番、通販番号の控の用意は必要。 ’ 以下、aitendo、店内セール中 GRsakura:aitendo版+LCD付:2999円、:aitendoはやめちゃうのかも。 Arduino用(びんぼでいいの)と表記のLCD:999円、799円 Raspberry用タッチ機能付LCD:3500円 ※見付らない場合様に、プリントアウトや、型番、通販番号の控の用意は必要。
guest

0

私も雷センサー買いました。アドレスが 0x00 はエーっと思いましたが、一応 raspi からアクセスできましたよ。どうも、0x00 はチップのバグを回避するため仕方がない仕様のようです。
root@raspberrypi:/home/pi# i2cdetect -y -a 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

投稿2015/06/07 19:11

spo

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それが、有ったから困ったわけでした。
具体的には、雷センサーなのですが、00がスレーブに割り当てられていて、AS3935のADC0,1もGNDに落とされていて、基板を改修し用にもそんな手間をかけるなら・・・・ともなり、
Arduinoでのサンプルプログラムがあるのですが、これでよいのかとも思え、
ジェレラルコールアドレスやスタートバイトは知っていますし、上方の領域にリザーブが有るのもわかります。
RPiの場合にどうやって、アドレス0を使うようなデバイスの対応をしているのか(本来はダメなのはわかります)という話でしたが、AS3935を使った基板をオリジナルで作ることにしますので、それが自己解決ということになるでしょうね。

投稿2015/05/06 02:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daive

2015/05/06 06:41

私が確認するのであれば、 まずは、素直に、 Arduinoで動作テスト。 次は、 STM32F401 など や、 GRsakura で、違いがないかテスト。 その上で、 「wiringPiを使う」「Raspberry Piでデバイスを駆動する」 の、手法で、wiringPi で、デモソフト相当の機能を組込して、 確認可能かどうか、 ’ 現在、該当ボードは、持っていないので、 面白そうなボードですから、買って遊んでみます。 ' 参考になるかもしれないサイト Raspberry Piで湿度を測ってみる:i2cget / i2csetで動かないデバイスで、WiringPi http://www.zukeran.org/shin/d/2015/03/13/raspberry-pi-humidity/ Raspberry Piでデバイスを駆動する これがソースである。Arduinoのライブラリイからの移植になる。 http://memo.tank.jp/archives/8252 >Rasberry PIのI2Cコマンド詳解 http://www.hogetan.net/note/memo/pi_i2ccmd.html
guest

0

ベストアンサー

ご回答ありがとうございます。お手間を取らせてしまいましたね。
そこらへんは熟知しているつもりでございます。
その上で、i2cdetectによる00,01,02の空白をどうするか皆様のご意見を伺ってみたく質問したわけです。
RPiのi2c-devの振る舞いを、もちろん、ソースから追いかければ(H/Wもドライバソフトもふくめ)、多分、ここ(teratail)で行う質問はなくなるでしょう。
ということで、時間をかけて調べてみることにします。
あまり、自己解決はしていませんが、teratail向きではなかったかもしれませんね。
すみませんでした。

投稿2015/05/04 08:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問