i2c-tools是一套OpenSource,透過這個tools我們可以透過i2c 介面與 IC 去作溝通
我們可以到下面的網站去抓整包的SourceCode,然後再透過你的toolchain去編譯出你板子上可以使用的工具,而編譯的方式我這邊就不贅述,我們這篇著重在tool如何使用
Download Path:
https://i2c.wiki.kernel.org/index.php/I2C_Tools
====================================================================
編譯完成後你應該會有i2cdetect、i2cdump、i2cset 這幾個執行檔
i2cdetect ===> 會列出 i2c的 Bus上所有的Device
i2cdump ===> 會列出 Device上所有的 Register值
i2cset ===> 可寫入到某個 Bus上的某個 Device上的 Register值
以下是實際操作的範例:
#./i2cdetect -l ===> 列出總共有幾個 i2c Bus
從上圖我們可以知道,這台設備上總共有 0 ~ 8 個 I2C Bus
另外我們也可以使用 i2cdetect 來確認 Bus上有哪些 Device
#./i2cdetect -r -y 1 ===> 列出 Bus 1上的所有Device
從上圖我們可以知道,這台設備的 I2C Bus1上,有4個Device,位置分別在 0x37, 0x4a, 0x4b, 0x50
接著我們來使用i2cdump來把某個 Register的值列出來吧!
#./i2cdump -f -y 1 0x50 ===> 列出 Bus1 的 Device 0x50的 Register值
最後我們使用 i2cset來更改Register的值吧!
#./i2cset -y 1 0x50 0x36 0x05 ===> 寫入 Bus1 的 Device 0x50的 0x36 Register值 寫入 0x05
註: i2cset的用法:
#./i2cset -y <bus> <device> <register> <value>