目錄
- 概述
- i2c-tools移植
- 掃描I2C設備
- 讀I2C暫存器
- 寫I2C暫存器
概述
除錯I2C總線之前,我們可以i2c-tools工具,掃描I2C總線上的所有I2C設備、讀寫I2C暫存器,該工具使得I2C設備的除錯非常方便,
如果嵌入式Linux環境中不帶有i2c-tools,需要自行移植到檔案系統中,
i2c-tools移植
1.獲取原始碼:https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.1.tar.xz
2.解壓原始碼:tar xvf i2c-tools-4.1.tar.xz
3.進入檔案:cd i2c-tools-4.1
4.指定交叉編譯器:export CC=arm-linux-gcc
5.編譯:make
編譯結束過后在tools目錄下生成i2cdetect、i2cdump、i2cget、i2cset、i2ctransfer工具,

將生成的工具拷貝到檔案系統/bin目錄下,將原始碼中的/lib目錄下的libi2c.so、libi2c.so.0、libi2c.so.0.1.1拷貝到檔案系統的/lib目錄下(運行指令所需庫檔案),
重啟系統過后則可以使用i2c-tools的操作指令,
掃描I2C設備
若總線上掛載I2C從設備,可通過i2cdetect掃描某個I2C總線上的所有設備,可通過控制臺輸入i2cdetect -y 2,結果如下所示,
ubuntu@tegra-ubuntu: $ sudo i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – -- – -- – -- – -- – -- – -- –
10: – -- – -- – -- – -- – -- – -- – -- – --
20: – -- – -- – -- – -- – -- – -- – -- – --
30: – -- – -- – -- – -- – -- – -- – -- – --
40: – -- – -- – -- – -- – -- – -- – -- – --
50: 50 – -- – -- – -- 57 – -- – -- – -- – --
60: – -- – -- – -- – -- – -- – -- – -- – --
70: – -- – -- – -- – --
說明1:-y為一個可選引數,如果有-y引數的存在則會有一個用戶互動程序,意思是希望用戶停止使用該I2C總線,如果寫入該引數,則沒有這個互動程序,一般該引數在腳本中使用,
說明2:此處I2C總線共掛載兩個設備——PCF8574和AT24C04,從機地址0x50為board configure,從機地址0x57為AT24C04,
暫存器內容匯出
通過i2cdump指令可匯出I2C設備中的所有暫存器內容,例如輸入i2cdump -y 2 0x50,可獲得以下內容:
讀I2C暫存器
pi@raspberrypi:~$ i2cget -y 2 0x50 0x00
0x13
如果從I2C從設備中讀出某位元組,可輸入執行i2cget -y 2 0x50 0x00,可得到以下反饋結果
-y 代表曲線用戶互動程序,直接執行指令
2 代表I2C總線編號
0x50 代表I2C設備地址,此處選擇AT24C04的低256位元組內容
0x00 代表存盤器地址
寫I2C暫存器
如果向I2C設備中寫入某位元組,可輸入指令i2cset -y 2 0x50 0x00 0x13
-y 代表曲線用戶互動程序,直接執行指令
2 代表I2C總線編號
0x50 代表I2C設備地址,此處選擇AT24C04的低256位元組內容
0x00 代表存盤器地址
0x13 代表存盤器地址中的具體內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290853.html
標籤:其他
上一篇:關于Keil 5 下載及安裝教程
