说明:使用龙讯LT8918芯片将bt1120信号转换为mipi信号输入到rk3288,不需要i2c通信.

注意:如果能正常打开任意一款mipi camera,那么kernel的配置不需要改动,否则请先找一款市面上常用的mipi摄像头调试,然后再进行后续工作。如果kernel已配置好,那么整个调试过程只需要修改hardware。

开始调试:

因为传输的是mipi yuv信号,所以我们参照OV2685_MIPI_YUV驱动去做。该驱动所在位置/hardware/rockchip/camera/SiliconImage/isi/drv/OV2685_MIPI_YUV。

一、不用i2c,那么屏蔽掉i2c通信的地方

1./hardware/rockchip/camera/CameraHal/CameraHal_board_xml_parse.cpp

int camera_board_profiles::RegisterSensorDevice(rk_cam_total_info* pCamInfo)方法中

err = ioctl(camsys_fd, CAMSYS_I2CWR, &i2cinfo);修改为err = 0;

2./hardware/rockchip/camera/SiliconImage/isi/drv/OV2685_MIPI_YUV/OV2685_PARREL.c 中

OV2685_IsiCheckSensorConnectionIss、OV2685_IsiRegReadIss、OV2685_IsiRegWriteIss这三个方法直接return 0;

二、定义自己的分辨率等参数1920x1080, 30fps, 4lane, mipi freq:200M

1.在OV2685_tables.c文件中先定义自己的分辨率,不需要操作寄存器,给个定义就行:

const IsiRegDescription_t OV2685_g_1920x1080[] =
            {
                {0x0000 ,0x00,"eTableEnd",eTableEnd}//为啥只有这一行,请看其他分辨率是怎么定义的!

};

2.在OV2685_PARREL.c中设置分辨率

extern const IsiRegDescription_t OV2685_g_1920x1080[];//引用上面的定义

static uint16_t g_suppoted_mipi_lanenum_type = SUPPORT_MIPI_FOUR_LANE;
            #define DEFAULT_NUM_LANES SUPPORT_MIPI_FOUR_LANE//定义lane数

OV2685_IsiGetCapsIssInternal该函数中选择分辨率:

if(mipi_lanes == SUPPORT_MIPI_FOUR_LANE){            
                        switch (pIsiSensorCaps->Index) 
                        {
                            case 0:
                                        {
                                                pIsiSensorCaps->Resolution = ISI_RES_TV1080P30;//我们的分辨率
                                                break;
                                        }
                            default:
                                        {
                                                result = RET_OUTOFRANGE;//这个值不要改
                                                goto end;
                                        }
                            }

}

3.OV2685_SetupOutputWindow中定义mipi freq并设置对应分辨率

pOV2685Ctx->IsiSensorMipiInfo.ulMipiFreq = 200;//mipi freq

switch ( pConfig->Resolution ){

case ISI_RES_TV1080P30:
                            {
                            if((result = IsiRegDefaultsApply((IsiSensorHandle_t)pOV2685Ctx,OV2685_g_1920x1080)) !=                                             RET_SUCCESS){
                                                TRACE( OV2685_ERROR, "%s: failed to set  ISI_RES_TV1080P30 \n", __FUNCTION__ );
                                            }else{
                                                TRACE( OV2685_INFO, "%s: success to set  ISI_RES_TV1080P30  \n", __FUNCTION__ );
                                            }
                                        break;

}

}

三、配置cam_board.xml

主要强调两个地方,一是<SensorGpioPwen ioname="RK30_PIN2_PB1" active="1" delay="1000"></SensorGpioPwen>,power使能脚配置。二是<SensorPhy phyMode="CamSys_Phy_Mipi" lane="4"  phyIndex="0"  sensorFmt="CamSys_Fmt_Yuv422_8b"></SensorPhy>(lane数,phyIndex:0或1,根据硬件配置)

只要硬件没问题,基本上按照上述修改配置,使用系统自带camera apk就可以打开了,注意打开的是/dev/camsys_marvin这个节点。

检测3288是否有接收到mipi信号,可在adb或串口中输入io -4 -l 0x100 0xff911c00

查看ff911c10: 00000000 00000000 00000000 0000001e这一行,0000002b表示isp识别到为raw ,0000001e 表示识别到yuv数据 如果其他表示识别异常。
全部调试文档可以参照附件:源码下载

rk3288 android6.0平台bt1120信号转mipi调试相关推荐

  1. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...

  2. [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有网友遇到调试touch的时候能触发中断,但无法获取坐标点 具体可参考文章 [RK3288][An ...

  3. [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 之前文章 [RK3288][Android6.0] 调试笔记 - AndroidTool两 ...

  4. [RK3288][Android6.0] 设置中通过Sensor旋转显示画面小结

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Settings -> Display有个选项控制旋转屏幕时内容是否跟着旋转 这个功能是通过 ...

  5. [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前文章[RK3288][Android6.0] 调试笔记 - 伪电池驱动添加 阐述了如何添加一个 ...

  6. [RK3288][Android6.0] RK3288和RK3288-W版本说明

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 RK3288不同版本: RK3288-W丝印标记: RK3288-W功能更新: RK3288-W软件兼 ...

  7. rk3288 android 6.0固件,[RK3288][Android6.0] 使用SD卡升级固件到eMMC

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 使用SD升级固件到eMMC比较方便, 插卡后完全自动升级,不需要连到PC端,省时省力. a. 编译整个 ...

  8. [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参 ...

  9. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  10. android 避免cpu降频,[RK3288][Android6.0] 调试笔记 --- CPU温度降频控制

    rk3288平台关于温度调节cpu频率有个bug. 在rk3288.dtsi中,有: temp-limit-enable = <1>; target-temp = <80>; ...

最新文章

  1. D3.js、HTML5、canvas 开发专题
  2. 实在不好意思,最近写个项目,一直没时间来灌水
  3. leetcode算法题--零钱兑换
  4. Android Studio - HPROF文件查看和分析工具
  5. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
  6. Java基础day8
  7. Demo能为游戏带来什么?
  8. 对jquery的conflict方法的解读
  9. Mybatis源码之与Spring集成包
  10. Linux 基础命令讲解--加密解密
  11. php如何设计一个网站,如何设计一个优质的外贸网站?
  12. 基于vue-cli 将webpack3 升级到 webpack4 配置
  13. web of knowledge分析文献引用情况(引)
  14. 数据库系统是采用数据库技术的计算机系统,1数据库系统是采用了数据库技术的计算机系统.doc...
  15. 全自动高清录播服务器,全自动高清录播服务器 高清录播系统
  16. search_web_resources
  17. web开发字体图标制作
  18. 电子邮件签名模板_15个网站下载免费的电子邮件通讯模板
  19. 生成时间序列每月月初月末
  20. 云生态系统的构成、运行与平衡协作

热门文章

  1. android os 2.2刷机包,N1内置CoreELEC9.2.2、安卓7.1.2双系统刷机包,全功能刷机包V2.2...
  2. 腾讯翻译君 VS 谷歌翻译
  3. Barcode模块管理条码扫描识别
  4. 《机械基础》记忆性内容总结
  5. 基于交比不变性的太阳定位算法的研究
  6. 跟华为悦盒V9U机顶盒拼了
  7. oracle random函数用法,Oracle随机函数的用法
  8. (六)Java垃圾回收机制(附带代码示例)
  9. 半导体丨索尼推出世界最小监控用CMOS图像传感器IMX415
  10. 看图识WAF-搜集常见WAF拦截页面