1. 簡介
i2c-tools 是linux的一個工具,使用他,可以在命令行進行 i2c/SMBus 設備的用戶層訪問。
2. 實例
2.1 查看某總線上所有 i2c adapter:
> i2cdetect -l
2.2 羅列出每個 adapter 上設備地址的有效性
> i2cdetect -y <num>
這個例子中 標記UU 的,表示這個地址上有個設備是有效的。即,當向這個地址發送詢問時有應答。
這個例子中有三個地址是有效的,0x1b、0x40、0x41
2.3 讀取一個 7位地址 的器件的寄存器
> i2cget -f -y <num> <i2cbus chip address> <data address>
> i2cget -f -y 0 0x40 0 (這個器件地址是0x40,讀 0寄存器)
2.4 給 一個 7位地址 的器件中的寄存器 寫值
> i2cset -f -y <num> <i2cbus chip address> <data address> <data>
> i2cset -y 0 0x50 0x00 0x10 (往0地址上寫0x10)
2.5 給一個 10位地址 的器件 寫值 (驅動中是16位地址模式),這個命令只有在i2c-tools4.0之後纔有
> i2ctransfer -y -f 0 w2@0x1d 0x00 0x20 r3
w2, 寫入兩字節,就是在數據線上要傳輸的字節數量
0x1d, 是器件地址,
0x00 0x22, 共同組成0x0020這個寄存器的地址
r3,表示讀3字節
> i2ctransfer -y -f 0 w4@0x1d 0x00 0x02 0x77 0x77
w4,表示數據線上傳輸4字節
0x00 0x02,表示寄存器地址
0x77, 第一個數據
0x77, 下一個地址上寫