Document

当你觉得迷茫的时候,那就多学习

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工程源码下

RKDocs\common\camera\HAL3

 

 

 

 

 

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

 

接下来就是使用v4l2去抓图,如果抓图正常,才能保证驱动已经加载正常

 

抓图命令

 

v4l2-ctl -d /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=BG10 \
--stream-mmap=3 --stream-skip=10 --stream-to=/sdcard/gc5035.raw --stream-count=1 --stream-poll

 

posted @ 2021-06-22 19:05  陈昌雄  阅读(3371)  评论(0编辑  收藏  举报
Document

联系方式

qq: 2224505189

微信: 1935442635

奖励博主