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

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

ただいまの
回答率

90.61%

  • Raspberry Pi

    760questions

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

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

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 2,878
退会済みユーザー

退会済みユーザー

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

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+1

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

資料を自力で探せるようにならないと、
通信系含めて、ハードウェア絡みの事を
行おうと思っても、厳しいです。
例えば、
技術・工学 > 電気 > 弱電 > 部品 > 論理素子 > トランジスタ > 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 18:15

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

    キャンセル

  • 2015/05/09 15:06

    退会済みは、残念ですが、人それぞれ

    昨日、秋月(秋葉店)、Aitendo へ買い出しにいって、
    以下秋月
    雷センサー:店内棚上段手前段ボール
    雷センサーデモソフト使用I2C液晶:店頭品
    I2Cマルチプレクサ:非店頭品の様子。
    I2CマルチプレクサICDIP化基盤:店頭品
    Raspberry PI用ブレッドボード接続キット:入口ワゴン
    ※見付らない場合様に、プリントアウトや、型番、通販番号の控の用意は必要。

    以下、aitendo、店内セール中
    GRsakura:aitendo版+LCD付:2999円、:aitendoはやめちゃうのかも。
    Arduino用(びんぼでいいの)と表記のLCD:999円、799円
    Raspberry用タッチ機能付LCD:3500円
    ※見付らない場合様に、プリントアウトや、型番、通販番号の控の用意は必要。

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/06 15: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

    キャンセル

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 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

check解決した方法

-1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Raspberry Pi

    760questions

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