i2c-tools的使用方法及舉例


i2c-tools的使用方法

    最近在調試ADV7401,調試的過程難免要反復修改寄存器,然后看結果現象。傳統的做法是修改驅動代碼寄存器值->編譯->下載->運行->看結果,這一過程比較費時間,而我每次需要改的可能只是1個bit,有沒有更便捷的方法呢?

    在瀏覽TI E2E論壇時發現有人用一個叫i2c-tools的工具,沒有使用過,從官網下載后發現很好用也很便捷,非常適合81xx平台的使用,現簡單介紹使用方法:

一、下載i2c-tools,交叉編譯

1、從開源網站http://dl.lm-sensors.org/i2c-tools/releases/下載i2c-tools,我使用的是3.0.2的版本。

 

2、解壓后的目錄結構如下:




最有用的是tools/文件夾,接下來修改Makefile,主要是修改交叉編譯器,如下圖所示



然后保存退出。直接make,進行編譯。編譯完成后在tools/文件夾下會有如下幾個可執行文件,i2cdetect, i2cdump, i2cget, i2cset。如下圖所示:



將i2cdetect, i2cdump, i2cget, i2cset拷貝到你的nfs調試目錄,就可以進行操作了。

二、使用舉例

1、用i2cdetect檢測有幾組i2c總線在系統上,輸入:./i2cdetect -l



由上圖可知,系統中存在兩組總線分別i2c-1和i2c-2。

 

2、用i2cdetect檢測掛載在i2c總線上器件,輸入 ./i2cdetect-r -y 1(檢測i2c-1上的掛載情況)



由上圖可知,0x18,0x20,0x30,0x34, 0x64地址有掛載。而這幾個分別是0x18(tlv3104),0x20(adv7401), 0x30, 0x34(sii9135),0x64(這個不知道是誰,可能是系統的)

 

3、用i2cdump查看器件所有寄存器的值,這個很有用,輸入 ./i2cdump -f -y 1 0x20 (查看adv7401寄存器值)



這樣就可以對比自己設置的是否一致了。

 

3、用i2cset設置單個寄存器值,用i2cget讀取單個寄存器值,可以在初期調試時發揮很大作用,一旦有預期的現象出現,就可以用i2cdump讀出整個寄存器的值,然后固化到代碼中。


上圖是i2cset和i2cget使用方法:

./i2cset -f -y 1 0x20 0x77 0x3f (設置i2c-1上0x20器件的0x77寄存器值為0x3f)

./i2cget -f -y 1 0x20 0x77     (讀取i2c-1上0x20器件的0x77寄存器值)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM