完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
说明:使用龙讯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 主要强调两个地方,一是 只要硬件没问题,基本上按照上述修改配置,使用系统自带camera apk就可以打开了,注意打开的是/dev/camsys_marvin这个节点。 检测3288是否有接收到mipi信号,可在adb或串口中输入io -4 -l 0x100 0xff911c00 查看ff911c10: 00000000 00000000 00000000 0000001e这一行,0000002b表示isp识别到为raw ,0000001e 表示识别到yuv数据 如果其他表示识别异常。 原作者:空~。 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
613 浏览 1 评论
rk1126实现BT601输入,输入不带IIC接口的驱动程序
2175 浏览 0 评论
1832 浏览 1 评论
3111 浏览 3 评论
RK3568 Android11让系统ntp校准时间生效,需要设置些什么
3489 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-31 19:09 , Processed in 0.615195 second(s), Total 68, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191