動作環境
Raspberry Pi 2 Model B (以下RPi)
Raspbian Jessie
Tektronix TDS 2024C (200 MHz, 2GS/s)
I2Cのセンサを使うコードを実装中。
MSP430ではACK応答後のデータ読込で0xFFしか得られない。
こういう場合は別のツールを使うのが良い。ということでRPiを使用。
http://qiita.com/dz_/items/ead14b05879c9acc3507
などを参考に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: -- -- -- -- -- -- -- --
何も表示されない。
センサを外した状態でオシロ(2024C)でSCL, SDAの波形を見たところ、そもそもSCLすら矩形波が表示されない状態だった。
http://blog.xe.bz/archives/51736276.html
を参考に以下を実行した。
$ sudo modprobe -r i2c-bcm2708
$ sudo modprobe i2c-bcm2708 baudrate=50000
これで波形がでるようになった。
オレンジがSCL, 水色がSDAのライン。
センサーを付け戻してi2cdetectしてみたところ、認識した。
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
アドレスは0x28で合っている。
コマンドを実行しながらオシロを調整するのは面倒なので、以下のコマンドでアドレス問合せ作業が2秒置きに実行されるようにする。
$ watch -n 2 sudo i2cdetect -y 1