8つのMPU-9150を1つのArduino Mega 2560に繋げて同時に用いることを考えています。MPU-9150は:
http://www.switch-science.com/catalog/1183/
です。
I2Cのアドレスを分ければ同時に繋げれるとのことらしいですが、センサーであるMPU-9150にそれぞれ異なるアドレスを指定することはできるのでしょうか?
もし指定できない場合、I2C Muxの以下のような製品で4つまで繋げることを知りました:
http://www.dsscircuits.com/index.php/i2c-multipl …
これは4チャンネルまでなのですが、このように別の方法で8つのMPU-9150を繋げれる方法があればそれでもいいです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
#2補足
PCA9548Aと考え方は同じです、すでに製品化されていたとは!勉強不足です
PCA9548AはI2Cコマンドで8っのI2Cバスを切り換えることが出来ますが、PCA9306はそれぞれのENにI/Oポートを繋ぎ制御するしかありません(OUTPUTポート4ヶ必要)
PCA9548Aを使えれば回路が簡単になり、制御もしやすいと思います
MPU-9150 2ヶを(AD0=L/AD0=H)に設定してPCA9306 3.3V側に接続 それを4組作製(3.3V側プルアップ抵抗はOFF)
PCA9306 5V側は4っ束ねてArduino SDA SCLにつながります (5V側プルアップ抵抗は1っのみ有効にする)
I2Cレベル変換で調べてみました、内部は単なるFETで切り換えしているようです、製作例もありました。
この回答への補足
PCA9306のデータシートを読んでみました。ボルテージ・レベル・トランスレータなので、(下にも書きましたが)アドレスを振り分けることは無理です。4組作製してENにI/Oポートを繋ぎ制御しても、Arduino側にとってはMPU-9150のAD0=L/AD0=Hの2つのアドレスが各4つあるだけので同時に扱うことは不可能なようです。PCA9548Aか、アドレスを分けて2つのPCA9544Aを用いれば、両者ともMuxなので出来そうです。
補足日時:2014/05/15 21:57No.2
- 回答日時:
#1補足
MPU-9150をそれぞれAD0=L/AD0=H(GNDパターンカット3.3VCC接続)設定することによりI2Cバスに2っ接続することが出来ます
Arduino Mega 2560は5Vで動作してるので、MPU-9150 3.3V を接続するにはSDA,SCLのレベル相互変換が必要になります
Arduino Mega 2560 3.3V電源は、50mA MAX です外部に5V→3,3Vレギュレータを設けたほうが無難
1) 内蔵I2C機能を使用しない場合 Wireライブラリは使えません、独自にライブラリを作成する必要があります
参考 http://s2jp.com/2013/01/tiny10-i2c-master/
2) PCA9306にMPU-9150を2っ(AD0=L/AD0=H)接続 これを4組で計8ヶMPU-9150が接続でき
あとはPCA9306のEN イネーブル機能でI2Cバスを切り換えて制御します (電気的に切り離されます)
3) MPU-9150はAD0のGNDへのパターンをCUTすることにより外部AD0ピンにてアドレスセレクトが可能
入力トレラントの3.3V 74VHC138で各AD0をセレクトする SDA SCL はPCA9306でレベル変換
http://www.semicon.toshiba.co.jp/contact/faq/pro …
http://www.marutsu.co.jp/shohin_14701/
MPU-9150はI2Cプルアップ内蔵なので、PCA9306のプルアップ機能は不要です
他に、3,3V動作のArduino mega 2560の互換ボードもあります、これならばI2C 5V-3.3Vレベル変換 3.3V電源レギュレータは不要です (5V系シールドは使用できなくなります)
http://www.switch-science.com/catalog/947/
有難うございます。質問ばかりで恐縮です。
> 2) PCA9306にMPU-9150を2っ(AD0=L/AD0=H)接続 これを4組で計8ヶMPU-9150が接続できあとはPCA9306のEN イネーブル機能でI2Cバスを切り換えて制御します (電気的に切り離されます)
MPU-9150をそれぞれAD0=L/AD0=H設定することによりI2Cバスに2つ接続することが出来ることと、PCA9306を5V→3,3Vレギュレータとして用いることは納得できました。PCA9306にMPU-9150を2つ(AD0=L/AD0=H)接続する部分がよく分かりません。まずこの4組のI2Cのアドレスをどのように振り分けれるかが疑問です。次にMPU-9150をPCA9306の3.3V側に繋げるのは理解できるのですが、もう一つは5V側に繋げるという意味でしょうか?さらに同時に使いたいのでPCA9306のENイネーブル機能でI2Cバスを切り換えていては同時使用は不可能となるのではないでしょうか?
PCA9306を調べている時にたまたま見つけたのですが、むしろPCA9548Aを使って8チャンネルのI2Cを使ってはどうかと思いました...(これに関してはまだ調べている最中です)。
http://www.nxp.com/documents/data_sheet/PCA9548A …
よろしくお願いします。
No.1
- 回答日時:
MPU-9150のアドレスセレクトがAD0のみなので、同一バス上に2つまで接続できます
MPU-9150は3.3V電源I/Oのみなので5V系に接続する場合は信号レベルの変換が必要になりますhttp://akizukidenshi.com/download/ds/akizuki/m54 …
1) 内蔵I2Cモジュール以外に、ソフトウェアでI2C信号を作成しを他のI/Oピンに接続する
2) PCA9306のEN機能でI2C信号を切り替える(プルアップ抵抗を重複させないこと 供給電圧 VREF1<VREF2)
3) MPU-9150のADOをチップセレクト信号として使用する (セレクトするチップのみADO=L 他はADO=H に設定し AD0=0 でのみI2Cアクセスを行う 但しMPU-9150が対応しているか調べる必要があります)
私的には、PCA9306を4ヶ使い順次I2C信号を切り換えてアクセスするのが良いと思います
実際に試した訳ではありません、検証は自己で願います。
https://strawberry-linux.com/catalog/items?code= …
ありがとうございます。いろいろ調べてみましたが、分からない部分が出てきたのでよろしくお願いします。
>MPU-9150のアドレスセレクトがAD0のみなので、同一バス上に2つまで接続できます
I2CアドレスLSB設定用はんだジャンパあり 、I2Cスレーブアドレス:初期値1101000。ジャンパーにより、1101001への切り換え可能、の部分のことでしょうか?
> MPU-9150は3.3V電源I/Oのみなので5V系に接続する場合は信号レベルの変換が必要になりますhttp://akizukidenshi.com/download/ds/akizuki/m54 …
Arduino Mega 2560の3.3Vから直接繋ぐことは可能でしょうか?
> 1) 内蔵I2Cモジュール以外に、ソフトウェアでI2C信号を作成しを他のI/Oピンに接続する
Wireライブラリを用いずに、I2CのためのNewSoftSerial(これはシリアル用)のようなライブラリを作りSCLとSDA以外でも繋げるようにする、という意味でしょうか,,,?
>2) PCA9306のEN機能でI2C信号を切り替える(プルアップ抵抗を重複させないこと 供給電圧 VREF1<VREF2)
この場合、2つのI2Cを同時に用いることは可能でしょうか(もし意味を取り違えていたらすみません)?
> 3) MPU-9150のADOをチップセレクト信号として使用する (セレクトするチップのみADO=L 他はADO=H に設定し AD0=0 でのみI2Cアクセスを行う 但しMPU-9150が対応しているか調べる必要があります)
物理的にジャンパで切り替えなければならない場合、可能でしょうか?(アナログのロジックゲートでArduinoから選択することも少し考えたのですが)
よろしくお願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ログについて
-
リモートデスクトップと動的IP...
-
リモートデスクトップがつなが...
-
サンダーバードメールが送受信...
-
Wi-Fi って、お店で使っている...
-
IPv6 over IPv4 接続
-
IISのftpサーバでユーザ登録方...
-
外部から接続できない(WindowsX...
-
VBからネットワーク接続の制御(...
-
VPSにVNCで接続できない。
-
MacとWinのLAN接続
-
タブレット(OCN sim)使用...
-
SSH接続が切れてしまいます
-
VPNでyahooが見れない
-
インターネットVPN接続について
-
windows98からwindows2000の共...
-
あるサイトから悪意のある攻撃...
-
ポリシー等で特定のサイトだけ...
-
IEのみで接続ができません(DNS...
-
wifiの設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポリシー等で特定のサイトだけ...
-
VPN接続時のドメイン参加について
-
リモートデスクトップと動的IP...
-
Ruby on railsをrails sで立ち...
-
TERATERMだけSSH接続できない
-
VPN接続確立後、Pingが通らない
-
iphoneを遠隔操作したい
-
ApacheとTomcatについて
-
特定のクライアントPCからssh接...
-
特定の中国のサイトに日本から...
-
リモートデスクトップができない件
-
ログについて
-
リモートデスクトップ接続のア...
-
macです。サーバに接続できません…
-
FTPサーバに外部から接続で...
-
TeraTermマクロでlistboxを使い...
-
VB2008 で外部のMySQLに接続で...
-
今日、楽天光が950kbpsになった...
-
VBからネットワーク接続の制御(...
-
ログオン画面表示前に無線LA...
おすすめ情報