I2C実験 その1(ハードの準備)
I2Cの実験をBeagleBoneBlackでしてみる。
アクセスする対象は安いデバイスということで、EEPROMにしてみる。
値段は秋月でIC一個50円。
部品
接続
購入した24FC64は、8個の端子があるIC。方針は以下の2点。
1.A0、A1、A2はGNDへ接続する。
2.WPをGNDへ接続する。
接続図
実際に、接続する先は、BBBのマニュアル(SRM)より、I2C2はコネクタP9で、
pin19 -> I2C2_SCL
pin20 -> I2C2_SDA
となっている。P9はピンソケットなので、ブレッドボードで使うジャンパーワイヤーの片方を切って、基板に直接はんだ付けした。
赤=Vcc
黒=GND
青=SCL
黃=SDA
A0〜A2, Vss, WPの接続はジャンパで。
BeagleBoneBblackとの接続は以下。
Vcc -> P9 pin3 (DC 3.3V)
GND -> P9 pin1 (GND)
SCL -> P9 pin19 (I2C2_SCL)
SCA -> P9 pin20 (I2C2_SDA)
これで、I2C-1の先にデバイスが接続される。
デバイスの見えるアドレスは、データシートより、
1 0 1 0 A2 A1 A0
で、今回、A2=A1=A0=0なので、
1 0 1 0 0 0 0
となり、 0x50として認識される。
i2cdetectコマンドで見ると、認識されているのがわかる。
debian@beaglebone:~$ i2cdetect -r 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
0x50が認識されている。ブログ上の表示で、縦横がずれているが、実際は揃って表示される。