在调试speaker时,speaker声音过小,查看codec寄存器MX-61[0] 是class amp 功能,但在kcontrol中添加此寄存器后,可以同tinymix调试通路,但没有想过。因此想在运行时是否可以将codec寄存器打印出来。
通过网络查询 i2c-tools可以实现codec的打印功能。
i2c-tools 下载地址:https://download.csdn.net/download/linuxarm521/10153440
.tar.xz的解压命令
$ xz -d ***.tar.xz
$ tar -xvf ***.tar
或者
$ tar xvJf ***.tar.xz
在rk平台上,把此代码的压缩包直接拷贝进源代码的/external/下,然后进入目录,使用mm编译即可。编译成功后在out/target/product/rk3399/system/bin目录下生成4个可执行程序:i2cdetect、i2cdump、i2cget、i2cset
使用
i2cdetect – 枚举I2C bus和上面所有的设备
i2cdump – 打印设备(如 codec,camera)上所有register的值
i2cget – 读设备某个 register的值
i2cset – 设置某个register的值
其他技巧
如果你用i2cset 命令去设置,已经注册的设备(i2cdetect 中显示U的设备)。会出现,总线被占用的错误。 加上-f 的参数,就可强制设置。
-y 是询问时自动选y。例如下面的命令:
./i2cset -f -y 1 0x1a 0x50 1f
i2c-tools工具在Android开发板中测试
a)cloverbox开发板使用usb调试线连接电脑,确保操作系统识别出此设备。如果ubuntu 12.04 64bit系统中没有安装adb,则使用以下方法安装:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb
多数网络资料说须在/etc/udev/rules.d/下创建配置文件等步骤,经试验全志A20 CLOVER BOX开发板不需进行此设置;在终端中输入adb device,如能找到android设备,则说明adb工具安装成功;
b)在虚拟机中打开终端,输入adb remount,将android设备改为可读可写,在使用以下命令将上一步编译生成的4个文件复制到 Android 平台的 /system/bin 目录下:
adb push <要发送文件的路径> /system/bin/
c)在虚拟机终端里输入adb shell,进入android开发板终端,在输入以下代码,对i2cdetect、i2cdump、i2cget、i2cset工具进行测试:
列举 I2C bus:i2cdetect -l
列举 I2C bus i2c-0 上面连接的所有设备:i2cdetect -y 0
显示 i2c-0总线上/地址为0x34的设备大批量 register 的值:i2cdump -y -f 0 0x34
读取 i2c-0总线上/地址为0x34的设备/ register 0x32 的值:i2cget -y -f 0 0x34 0x32 显示结果为0x42
设置 i2c-0总线上/地址为0x34的设备/ register 0x32 的值:i2cset -y -f 1 0x34 0x32 0x6A
使用的哪个i2c 和挂载到i2c哪个地址查看dts中rk3399-excavator-sapphire.dtsi中 rt5640的挂载地址。
i2c-tools应用方式: