I2C에 연결된 장치를 확인하기 위한 유틸리티로 i2cdetect, i2cdump, i2cset, i2cget 가 있습니다.

사용법은 다음과 같습니다.

1. i2cdetect
   i2c bus 에 연결된 장치의 ID를 읽어 옵니다.

    [root@linux /]# i2cdetect -l
    i2c-0   i2c             OMAP I2C adapter                        I2C adapter
    i2c-1   i2c             OMAP I2C adapter                        I2C adapter


i2c bus 0 에 연결되어 있는 장치를 보기 위해서는 다음 명령을 사용하면 됩니다.

    [root@linux /]#  i2cdetect 0
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-0.
    I will probe address range 0x03-0x77.
    Continue? [Y/n]
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- 48 49 -- -- -- -- -- --
    50: 50 51 52 -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --


2. i2cdump

   i2c bus 에 연결된 장치의 내용을 dump 합니다.

   i2cdump <bus> <chipid>

    [root@linux /]#  i2cdump 0 0x2d
    No size specified (using byte-data access)
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-0, address 0x2d, mode byte
    Continue? [Y/n]
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    20: 8a 8b de bb c9 d8 d0 1d ff ff aa c1 9e c1 9e e3
    30: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
    40: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
    50: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
    60: 8a 8b de bb c9 d6 d1 1d ff ff aa c1 9e c1 9e e3
    70: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
    80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
    a0: 8b 8b de bb c8 d9 d1 1d ff ff ab c1 9e c1 9e e3
    b0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
    c0: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
    d0: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
    e0: 8a 8a de bb c9 d8 d1 1d ff ff aa c1 9e c1 9e e3
    f0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00 



3. i2cget과 i2cset

   i2c bus 에 연결된 장치의 레지스트를 읽어오거나, 설정할 수 있습니다.

   i2cget <bus> <chip> <register>
   i2cset <bus> <chip> <register> <value>


    [root@linux /]#  i2cset 0 0x2d 0x10 0x22



위의 자세한 내용은 http://www.lm-sensors.org/wiki/i2cToolsDocumentation 를 참조하세요.


다음에 위의 유틸리티를 ARM 크로스 컴파일 하는 방법을 해 보도록 하겠습니다.