精华内容
下载资源
问答
  • i2cdetect/i2cdump

    2013-03-26 09:13:06
    I2C 调试的好工具 包括 i2cdetect/i2cdump/I2cset/i2cget android代码形式
  • 如题,树莓派执行命令 gpio i2cdetect 报错: 其实已经正确安装了 wiringPi库, gpio -v gpio、 readall 等都能正确执行,但是gpio i2cdetect执行报错??? 解决办法: 需要安装i2c-tools这个工具,安装...

    如题,树莓派执行命令 gpio i2cdetect 报错:

    其实已经正确安装了 wiringPi库,

    gpio -v gpio、 readall 等都能正确执行,但是gpio i2cdetect执行报错???

    解决办法:

    需要安装i2c-tools这个工具,安装命令如下:

     sudo apt-get install i2c-tools

    之后,就可以正常执行,gpio i2cdetect了,如下:

    5d也正是所接的i2c传感器(罗姆BM1383气压传感器)的地址。

    展开全文
  • i2cdetect i2cdump i2cget i2cset用法

    万次阅读 多人点赞 2016-12-14 11:58:27
    本博客转载自台湾朋友的文章:http://3sec.kilab.tw/?p=260在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – i2c tools。...i2c-tools中含有四個執行檔i2cdetect

    本博客转载自台湾朋友的文章:http://3sec.kilab.tw/?p=260

    在處理音訊相關的問題時,我通常會找個方法來讀寫codec中register的值。幸好linux上也有這樣的工具 – i2c tools。先到lm-sensors下載soure code,然後cross compile成arm的執行檔,就可以放到板子來試試看了。
    i2c-tools中含有四個執行檔

    i2cdetect – 用來列舉I2C bus和上面所有的裝置
    i2cdump – 顯示裝置上所有register的值
    i2cget – 讀取裝置上某個register的值
    i2cset – 寫入裝置上某個register
    以下是我用beagleboard得到的結果

    root@android:/temp # ./i2cdetect -l
    i2c-1 i2c OMAP I2C adapter I2C adapter
    i2c-2 i2c OMAP I2C adapter I2C adapter
    i2c-3 i2c OMAP I2C adapter I2C adapter
    原來beagleboad上有三組I2C bus。
    i2cdetect也可以用來看bus上有那些裝置

    root@android:/temp # ./i2cdetect -y -r 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: – – – – – – – – – – – – –
    10: – – – – – – – – – – – – – – – –
    20: – – – – – – – – – – – – – – – –
    30: – – – – – – – – – – – – – – – –
    40: – – – – – – – – UU UU UU UU – – – –
    50: – – – – – – – – – – – – – – – –
    60: – – – – – – – – – – – – – – – –
    70: – – – – – – – –
    這表示bus上有四備裝置,位址分別是0×48, 0×49, 0x4a, 0x4b。
    我們要找的是codec,beagleboard上的codec是TI的TPS65950,從technical reference manual可以得知codec在I2C上的位址是0×49。
    然後用i2cdump來看codec中所有register的值
    [

    root@android:/temp # ./i2cdump -f -y 1 0x49
    No size specified (using byte-data access)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00: 00 00 00 00 00 00 00 00 00 00 0f 0f 0f 0f 00 00 ……….????..
    10: 3f 3f 3f 3f 25 00 00 00 00 32 32 32 32 00 00 55 ????%….2222..U
    20: 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 ………..?….
    30: 13 00 00 00 00 79 11 00 00 00 06 00 44 69 02 00 ?….y?…?.Di?.
    40: 00 00 00 00 32 00 00 00 00 00 00 00 00 00 00 1b ….2……….?
    50: 00 00 03 f0 05 00 00 00 1a 1a 00 e1 93 00 00 00 ..???…??.??…
    60: 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?……………
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
    80: 00 00 00 00 00 2f 00 09 10 ff ff ff ff ff ff ff …../.??…….
    90: ff 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 ……..?…….
    a0: 00 00 00 00 00 00 00 00 00 00 04 18 50 01 44 05 ……….??P?D?
    b0: 00 00 00 00 fe ff 03 00 00 00 ff ff 03 00 00 00 ….?.?…..?…
    c0: 03 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 ?….?……….
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
    e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
    f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
    再來我用i2cset來改變headset gain看看會不會改變播放的音量。先用以下的指令來播放wav檔,我是用sample rate 44.1k的檔案,其它sample rate的wav可能無法播放。

    root@android:/temp # ./tinymix 13 1
    root@android:/temp # ./tinymix 45 1
    root@android:/temp # ./tinymix 48 1
    root@android:/temp # ./tinyplay 440.wav
    Playing sample: 2 ch, 44100 hz, 16 bit
    headset gain的register的位址是0×23,在播放的過程中打開另一個adb shell,用i2cset來增加gain

    root@android:/temp # ./i2cset -f -y 1 0x49 0x23 5
    音量果然變大了!

    i2cget的用法類似i2cget,這裡就不多做說明了。

    展开全文
  • 一、下载i2c-tools,交叉编译 1、从开源网站https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/载i2c-tools,我...编译完成后在tools/文件夹下会有如下几个可执行文件,i2cdetect, i2cdump, i2cget, i2.

    一、下载i2c-tools,交叉编译
    1、从开源网站https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/载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寄存器值)

    最近在写一段linux shell脚本,通过I2C控制一颗IC,获取它寄存器的值,它寄存器的值即表示想要获取的电压。

    先解释一下:

    sudo i2cget -y -f 0 0x2a 0x10表示用root权限通过i2cget命令获取地址为0x2a的芯片,0x10寄存器上的值。

    所有shell命令如下所示:

    getVH()

    {
     sudo i2cget -y -f 0 0x2a 0x10
    }
    getVL()
    {
     sudo i2cget -y -f 0 0x2a 0x11
    }
    VH=`getVH`
    VL=`getVL`
    Value=$[$VH*8+$VL]
    Value=$(printf "%.3f" `echo "scale=3;$Value*0.035"|bc`)

    echo "Value:$Value V"

     

    echo ""
    read -n1 -p "按下任意键退出……"
     

     

    展开全文
  • ASUS的i2cdetect tool放在device/asus/Z00L/i2c-tools目录下,用mmm device/asus/Z00L/i2c-tools就会生成相应的bin文件,push到机台的system/bin文件目录下root@ASUS_Z00L_63:/system/bin # ./i2cdetect -l i2c...

    ASUS的i2cdetect tool放在device/asus/Z00L/i2c-tools目录下,用mmm device/asus/Z00L/i2c-tools就会生成相应的bin文件,push到机台的system/bin文件目录下



    root@ASUS_Z00L_63:/system/bin # ./i2cdetect  -l                                

    i2c-0 i2c      MSM-I2C-v2-adapter              I2C adapter
    i2c-4 i2c       MSM-I2C-v2-adapter               I2C adapter
    i2c-5 i2c       MSM-I2C-v2-adapter               I2C adapter
    i2c-6 i2c       MSM-I2C-v2-adapter               I2C adapter

    root@ASUS_Z00L_63:/system/bin # ./i2cdetect  -y -r 0                           
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: UU -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    root@ASUS_Z00L_63:/system/bin # ./i2cdetect  -y -r 4                           
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- 
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    root@ASUS_Z00L_63:/system/bin # ./i2cdetect  -y -r 5                           
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    root@ASUS_Z00L_63:/system/bin # ./i2cdetect  -y -r 6                           
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

    上面每一个 UU都是一个i2c设备的挂载点,对应的就是在这个bus上的slave address。

    如果想要看某个设备里的register的内容则

    1|root@ASUS_Z00L_63:/system/bin # ./i2cdump  -f -y 5 0x38                      
    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 00 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: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
    80: 57 50 19 19 19 70 01 05 0b 1e 00 01 00 00 00 00    WP???p????.?....
    90: 00 89 00 00 00 00 09 00 00 00 00 00 00 00 00 22    .?....?........"
    a0: 01 0a 10 54 01 01 b1 01 61 01 08 00 00 6f 01 09    ???T????a??..o??
    b0: 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 55    .?.............U
    c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    d0: 01 30 1a 00 ff 40 10 20 00 00 64 00 00 05 64 00    ?0?..@? ..d..?d.
    e0: 6c 02 20 10 51 06 8a 00 00 0f 1c eb 08 00 00 00    l? ?Q??..????...
    f0: ff ff ff ff ff ff ff ff ff ff ff ff 01 00 41 ff    ............?.A.


    展开全文
  • i2cdetect: error while loading shared libraries: libi2c.so.0: cannot open shared object file: No such file or directory 2,make clean 3,make USE_STATIC_LIB=1 4,make install 5,O了 ...
  • 驱动版本的i2cdetect

    千次阅读 2017-07-03 18:11:54
    其中先写/proc/i2cdetectall节点,然后读可以探测所有的i2c地址,写节点/proc/i2cdetect然后读可以探测单条总线的i2c地址。对于检测不到的i2c地址,可重新看下芯片手册或者检查硬件电路(如芯片有没有上电(摄像头地址...
  • 然而板子通过i2cdetect -y -r 1命令,显示出的设备地址却是0x50,这个是为什么呢?(PS,其中0x32是另一个device,可不管) 不管我在dts中有没有compatible,或者修改reg,i2cdetect出来的依然是0x50。 ![图片...
  • i2cdetect输出结果重定向   i2cdetect -y -r 2 > a.log i2c检测,输出重定向,因为得到的数被打印的调试信息冲掉了。   另外,网上的资料。 ...
  • 一、下载i2c-tools,交叉编译 1、从开源网站https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/载i2c-tools,我使用的是3.0.2的版本。 2、解压后的目录结构如下: 最有用的是tools/文件夹,接下来...
  • 1.确认工具链是否正确。 2.确实是否缺少动态库。
  •  1、在网上搜索一个i2cdetect工具包。我下载的是i2c-tools-3.0.2.tar.bz2。放到windows与ubuntu共享目录。  tar -xvf i2c-tools-3.0.2.tar.bz2  2、进入根目录: zhd@ubuntu:~$ sudo su [sudo] password fo
  • /sys/class/i2c/下有相应设备,但/dev/i2c-[0-9]都没有。 原来问题在于将 CONFIG_I2C_CHARDEV 作为模块编译了,而开机后又没自动加载 i2c-dev.ko modprobe i2c-dev 即可 ...
  • ./i2cdetect -y 2 运行后,提示无效怎么回事? Error: Can't use SMBus Quick Write command on this bus 别的总线到时没有这个问题。难道?是我已经insmod i2c-2 的缘故?
  • 如上篇文章所说,用户空间“免设备驱动”读写i2c设备的前提是内核里面配置了i2c-dev,由于i2c-tools工具与上一篇《参考内核文档(Documentation/i2c/dev-interface)编写自己的测试程序》的本质都是一样的(注意:有...
  • 运行 ./i2cdetect: line 1: syntax error: unexpected word (expecting ")") 怎么回事?奇葩啊,再看看
  • 我用 i2cdetect -y -r 1 读取一个rtc时钟芯片,可以正常读出id为68, 在用echo m41t00 0x68 >/sys/bus/i2c/devices/i2c-1/new_device 注册i2c设备后, 再用 i2cdetect -y -r 1 去读,id显示为UU, 请问这是为什么...
  • i2cdetect i2cdumpi2cgeti2cset 1.1 i2cdetect # i2cdetect BusyBox v1.29.3 (2020-08-19 10:46:53 CST) multi-call binary. Usage: i2cdetect -l | -F I2CBUS | [-ya] [-q|-r] I2CBUS [FIRST LAST] ...
  • I2C TOOLS

    千次阅读 2018-03-09 10:05:19
    i2cdetect 常用指令 i2cdetect -l //检测有几组i2c总线在系统上 i2cdetect -r -y [num] //检测i2c-num上的挂载情况 名字 i2cdetect -- 检测I2C芯片 语法 i2cdetect [-y] [-a] [-q|-r] i2cbus [first ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,046
精华内容 418
关键字:

i2cdetect