zoukankan      html  css  js  c++  java
  • rk3566 ov8858摄像头调试

    1.硬件

    首先了解基本硬件,就是摄像头的供电

     接着是上电时序

     这里需要注意的是,XSHUTDN就是reset引脚,低电平复位,正常工作的时候,应该是高电平

    PWDNB是和复位脚差不多功能的,给寄存器复位,所以这两个,比较关键,我这里是使用了DOVDD和XSHUTDN连接的情况,所以驱动中power_on处理的时候,拉高reset以后,不延时,直接拉高pwdn,然后延时,才能让模块上电

    dvdd  avdd  iovdd上电时序其实要求并不严格,之前我一直读取不到模块id,就是因为我们分开供电XSHUYDN和PWDNB,而驱动中是先拉低reset然后拉高延时2Ms再拉高pwdn,所以导致系统一直没有工作起来,去读i2c的时候返回-5

    这里rk也有案例

    实际上很简单,驱动中probe以后,就开始检测获dts配置,然后就power_on执行上电流程,上电以后,第一步就是check_id,也就是读取摄像头id,如果i2c通信异常,那么久无法进行下面的工作,直接return

     

    经过一番折腾,i2c正常读取id,解决了前面最关键的一步

    切记:如果i2c读取不到,确保硬件电压,时钟正常,然后基本上就是时序了

    如果硬件都没问题,但是读取的时候没有一直错,可能先考虑给一个for循环,循环发送0x00-0xff,看看有没有回应,避免因为地址错误这种低级错误

    2. DTS配置

     

     下面是我关于ov8858的配置,其实可以直接参考文档,在rk工程源码下

    RKDocscommoncameraHAL3

      先记录到这里,基本的到这一步,就可以读取id,进行mipi传输

  • 相关阅读:
    约瑟夫问题的JAVA实现(借鉴别人的代码+自己分析理解)
    ubuntu 与windows双系统记录
    重装windows7
    浏览器专题之缓存url请求
    js实现函数重载
    用python实现网上书店
    flex与bison应用实例
    前端小游戏之拼图功夫熊猫
    细说javascript的对象
    [LeetCode 1712] Ways to Split Array Into Three Subarrays
  • 原文地址:https://www.cnblogs.com/ChenChangXiong/p/14919931.html
Copyright © 2011-2022 走看看