导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【FAQ】全志R11移植camera senor时报I2C错误如何解决?

    其它全志芯片讨论区
    r11 faq 技术支持
    2
    2
    1957
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 q1215200171 编辑

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

      DEBUG流程

      • 确认sys_config.fex中配置的sensor I2C地址是否正确(sensor datasheet中标注,读地址为0x6d,写地址为0x6c,那么sys_config.fex配置sensorI2C地址为0x6c);

      • 在完成以上操作之后,在senor上电函数中,将掉电操作屏蔽,保持sensor一直上电状态,方便debug;

      • 确认I2C地址正确之后,测量sensor的各路电源电压是否正确且电压幅值达到datasheet标注的电压要求;

      • 测量MCLK的电压幅值与频率,是否正常;

      • 测量sensor的reset、pown引脚电平配置是否正确,I2C引脚SCK、SDA是否已经硬件上拉;

      • 确认I2C接口使用正确并使能(CCI / TWI);

      • 如果还是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将会出错,所以需要在上电之后,加上一定的延时操作。

      附件:FlameGraph.tar.xz

      1 条回复 最后回复 回复 引用 分享 1
      • U
        ubuntu LV 7 最后由 编辑

        @q1215200171 在 【FAQ】全志R11移植camera senor时报I2C错误如何解决? 中说:

        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添加上拉即可。

        奇怪,我的板子上拉也,也出现:START can't sendout!

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策