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

全志平台移植camera senor时报I2C错误

在移植sensor时,最常遇到的问题是I2C通信失败,下面将就I2C通信失败问题进行相应的debug。

一、DEBUG流程

  1. 确认sys_config.fex中配置的sensor I2C地址是否正确(sensor datasheet中标注,读地址为0x6d,写地址为0x6c,那么sys_config.fex配置sensorI2C地址为0x6c);
  2. 在完成以上操作之后,在senor上电函数中,将掉电操作屏蔽,保持sensor一直上电状态,方便debug;
  3. 确认I2C地址正确之后,测量sensor的各路电源电压是否正确且电压幅值达到datasheet标注的电压要求;
  4. 测量MCLK的电压幅值与频率,是否正常;
  5. 测量sensor的reset、pown引脚电平配置是否正确,I2C引脚SCK、SDA是否已经硬件上拉;
  6. 确认I2C接口使用正确并使能(CCI / TWI);
  7. 如果还是I2C出错,协调硬件同事使用逻辑分析仪等仪器进行debug;

二、经典错误

1、I2C没有硬件上拉
twi_start()450 - [i2c2] START can't sendout!
twi_start()450 - [i2c2] START can't sendout!
twi_start()450 - [i2c2] START can't sendout!
[VFE_DEV_I2C_ERR]cci_write_a16_d16 error! slave = 0x1e, addr = 0xa03e, value = 0x  1

出现上述的问题是因为SDA、SCK没有拉上,导致在进行I2C通信时,发送开始信号失败,SDA、SCK添加上拉即可。

2、没有使能I2C
[VFE]Sub device register "ov2775_mipi" i2c_addr = 0x6c start!
[VFE_ERR]request i2c adapter failed!
[VFE_ERR]vfe sensor register check error at input_num = 0

出现上述的错误,是因为使用twi进行I2C通信但没有使能twi导致的错误。

3、混用 cci 和 twi

通过查看原理图确认,sensor是通过什么接口与主控进行通信的,在确认硬件连接没有问题的情况下,可查看出错时的log信息得知当前使用的接口。

  • 如果当前配置使用 CCI 进行 I2C 通信,出错将会报“[VFE_DEV_CCI_ERR]”或者“[VIN_DEV_CCI_ERR]”;
  • 如果当前配置使用的是 TWI 进行 I2C 通信,出错将会是“[VFE_DEV_I2C_ERR]”或者“[VIN_DEV_I2C_ERR]”;

在出现问题的时候,可以注意 I2C 的错误打印信息,看看是什么标号开头的,这样可以确定,本身应该使用 TWI 的,但却报”[VFE_DEV_CCI_ERR]“错误,这个时候可以检查,是不是关于 cci 的配置没有弄好,相应的配置没有失能或者屏蔽,或者是定义了 USE_SPECIFIC_CCI 宏。

4、sensor上电时序不对

        在sensor的上电过程,加上一定的延时是必要的。在主控输出MCLK、设置电源等操作之后,立刻sensor detect读取I2C,有可能会导致I2C读写失败的。因为这个时候,senor内部硬件没有准备好,这时候读写I2C将会出错,所以需要在上电之后,加上一定的延时操作。


http://www.mrgr.cn/news/61088.html

相关文章:

  • TikTok发展成为非洲第二大社交电商平台,TikTok营销软件
  • 计算机组成原理之CISC和RISC的基本概念、CISC和RISC的主要区别是什么
  • 华为配置手工负载分担模式链路聚合实验
  • 111111
  • 【MySQL】 运维篇—备份与恢复:使用mysqldump进行数据库备份与恢复
  • 云生X易搭云 | 打造全流程透明化法务工作平台
  • SpringBoot技术构建的商场应急响应系统
  • DDIM扩散模型的加速采样(去噪)算法 Denoising Diffusion Implicit Models
  • 商场应急决策支持系统:SpringBoot技术解析
  • 【单机游戏】大富翁游戏攻略
  • Redis-概念、安装、基本配置
  • Docker-在Centos中部署Shell脚本获取镜像并构建容器
  • Vue.js组件开发【基础开发步骤 + 实践】
  • SQL类型转换
  • ssm006基于java的少儿编程网上报名系统(论文+源码)_kaic
  • shodan-5
  • 【Spring面试题】
  • 【linux】fdisk磁盘分区管理
  • RHCE: 例行性工作 at 与 cron
  • Hypermesh如何批量重命名component