I2C调试总结

I2C调试总结:
http://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/
I2C-tools工具源代码
https://blog.csdn.net/weixin_43824344/article/details/120694693
Linux下I2C-tools工具使用
https://blog.csdn.net/childbor/article/details/104308893
i2c时序图的详细讲解

i2cdetect -l    // 查看当前系统的I2C总线
i2cdetect -y 3  // 查看总线3上所有从设备

"--"表示地址被检测到了,但是没有芯片,
"UU"表示地址正在被某一个驱动使用,而16进进制的I2C设备地址号

i2c_detect_loop.sh文件内容如下:
!/bin/bash
while ture
do
    i2cdetect -y 3
	sleep 1
done

把I2C-tools工具push到设备的/system/bin下
然后:
adb push i2c_detect_loop.sh /system/bin/

adb root && adb remount -R
adb root && adb shell i2c_detect_loop.sh // 每个1秒检测一次。

1,先执行i2c_detect_loop.sh脚本,通过i2cdetect扫描每一个总线的所有设备。
2,i2c设备的SCL和SDA pin引脚连接示波器,采集波形图。
示波器的采样率设置为5M,波形稳定后,点击Run/Stop按钮停止。放大观察波形。
对照i2c时序图对比观察SCL和SDA的波形。


i2cdump:查看某个总线上,某个从设备所有寄存器的值。
如:查看i2c3上0x5d设备所有寄存器的值
i2cdump -f -y 3 0x5d

总结:
i2c总线一般速度范围:[100Kb/s~400Kb/s]
i2c设备的VDD电压一般是:1.8V或2.8V等等
SCL和SDA pin引脚电压是:1.8V
(注意:有的tp触摸板设备VDD超过3.0V不工作,通过i2cdetect也检测不到设备地址号,
把VDD改成3.0V一下就正常了)

调试设备:
万用表
烙铁
可调直流电源
示波器
电路板和电路原理图

你可能感兴趣的:(BSP,linux)