当前位置: 首页 > news >正文

Linux中I2C常见问题一

一. 背景
调试i2c设备时经常遇到i2c不通、报错等问题,而原因主要如下:
power电压、reset复位、i2c bus、i2c 地址、硬件贴错;


二. 分析思路
2.1 抓log、看代码;
2.2 看原理图、抓Power up时序、抓I2C波形;
2.3 看模组原理图和PCB图;

三. Power上电
3.1 Power-未上电导致i2c不通:

log:  msm_cci_irq:1779 MASTER_0 error 0x10000000
分析1:

绿色为scl, 蓝色为sda, 可知后8位对应的sda位:101100001=0xB0其中,

1011000(0x58) 0(w) 1(ack) 即无从设备应答响应

8 位地址 查看dtsi中slave_addr: qcom,slave-addr = <0xB0>即设备地址正确;

分析2:cat sys/kernel/debug/regulator/pm8953_l17/consumers

查看原理图知AF power为LDO_17,但是ldo17占用者为dsi-lcm没有camera的,说明驱动未配置;

原因:eeprom使用马达中的otp,需要先给马达模块上电,但实际未上电;

解决:gc13023_lib.h 中添加af上电时序

3.2 Power-dvdd电压过小导致i2c不通

现象:相机概率无法打开、预览彩色条纹
Android log:
E/mm-camera(  728): <SENSOR><ERROR> 590: sensor_write_i2c_setting: failed 01:44:11.975 E/mm-camera(  728): <SENSOR><ERROR> 742: sensor_apply_exposure: failed 

Kernel log: 
[  392.148645] msm_cci_flush_queue:174 wait timeout 
[  392.149064] msm_cci_transfer_end: 548 failed rc -110 
[  392.149079] msm_cci_data_queue: 809 failed rc -110 
[  392.149095] msm_camera_cci_i2c_write_table_cmd: line 219 rc = -110

即主控往sensor写入曝光值发生i2c报错;

原因:
直接:软件设置DVDD电压1.1v ,实测模组的DVDD=1.02v  不符合spec要求1.15-1.3 V;
根本:线路走线太长导致DVDD线损损耗大

解决:
软件设置DVDD电压为1.225 实际前端电压1.18v

3.3 Power-AVDD/DVDD/IOVDD没有全部拉高
现象:相机偶现黑屏、闪退,提示“相机无法打开”

Log:
05-27 10:16:14.931 E/gc5035 2-0037(    0): debug111 __gc5035_power_on 861 value_power:1
05-27 10:16:14.934 E/gc5035 2-0037(    0): gc5035 write reg(0xfc val:0x1) failed !
05-27 10:16:14.934 E/m00_f_gc5035 2-0037(    0): could not set init registers
05-27 10:16:14.934 E/gc5035 2-0037(    0): gc5035 write reg(0xfc val:0x1) failed !
05-27 10:16:14.934 E/m00_f_gc5035 2-0037(    0): could not set init registers

分析:

-》报错时avdd=0 未拉高;

-》采用外部LDO控制AVDD/DVDD/IOVDD输出,且硬件内部做了延时如上。即从完成3路电输出需要4.58ms。

原因:驱动中拉高gpio后,未等3路电都输出后就拉高reset,导致i2c不通;

解决:
从拉高gpio到拉高reset sleep 5ms-5.1ms,保证AVDD/DVDD/IOVDD都输出后再拉高reset

kernel-4.19/drivers/media/i2c/gc5035.c
usleep_range(5000,5100);

http://www.dtcms.com/a/504930.html

相关文章:

  • 龙华网站建设公司阳江网红酒店无边泳池
  • 乐学LangChain(3):多轮对话和批量对话
  • 网站服务器安全配置360网站seo怎么做
  • 网站建设和的注意事项深圳建设行业网站
  • 为了推出企业网站建设cms系统设计
  • flex:1 和 flex:auto 有什么区别?
  • 百度网盘下载太慢怎么破解
  • 晋江网站建设哪家好设计学习网站
  • 网站建设如何投放广告做网站现在可以挣钱吗
  • 兰州公司网站建设收到网站代码后怎么做
  • 自己做的网站如何赚钱建行个人余额查询网站
  • 中国建设银行重庆网站网站图片怎么换
  • 数电基础:二极管构成的门电路
  • 南京网站建设培训班对于职业规划做的好的网站
  • 双指针系列1 - 283. 移动零 和 1089. 复写零
  • 昆明做网站vr企业所得税会计分录
  • 网站建设技术免费简单网页制作成品
  • 网站建设公司推广网站品牌运营网站开发什么
  • 河南网站优化要多少钱台州网站搜索排名
  • 皋兰县建设局网站互联网营销外包推广
  • 网站商城设计方案智能自助建站系统源码
  • c语言14:字符指针
  • 手机怎么制作自己的网站wordpress怎么盈利
  • 网站页面链接怎么做怎么做二维码转到网站
  • 织梦dede建站教程视频郑州区块链数字钱包网站开发方案
  • 东莞网站设计轻量应用服务器可以做网站吗
  • 房产网站建站亚马逊雨林动物
  • 北京网站搜索引擎优化推广seo搜索优化是什么意思
  • matlab构造带通巴特沃斯滤波器进行滤波
  • wordpress建网站缺点公司注册网上查名