I2C実験 その1(ハードの準備)

I2Cの実験をBeagleBoneBlackでしてみる。

 

アクセスする対象は安いデバイスということで、EEPROMにしてみる。

値段は秋月でIC一個50円。

 

部品

 

接続

 購入した24FC64は、8個の端子があるIC。方針は以下の2点。

 1.A0、A1、A2はGNDへ接続する。

 2.WPをGNDへ接続する。

接続図

f:id:mffukui:20190802101610j:plain

eeprom

 実際に、接続する先は、BBBのマニュアル(SRM)より、I2C2はコネクタP9で、

 pin19  -> I2C2_SCL

 pin20  -> I2C2_SDA

となっている。P9はピンソケットなので、ブレッドボードで使うジャンパーワイヤーの片方を切って、基板に直接はんだ付けした。

f:id:mffukui:20190802103450j:plain

接続1

赤=Vcc

黒=GND

青=SCL

黃=SDA

f:id:mffukui:20190802103712j:plain

接続2

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が認識されている。ブログ上の表示で、縦横がずれているが、実際は揃って表示される。