如何进行RK3399 camera驱动开发


如何进行RK3399 camera驱动开发,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述目前板子上有两路mipi rx,可以接双摄像头。DTS配置1、Enabled isp&isp0{
status=”okay”;
};
&isp1{
status=”okay”;
};
&isp0_mmu{
status=”okay”;
};
&isp1_mmu{
status=”okay”;
};
2、Enabled mipi对应的i2c&i2c1{
status=”okay”;
};
camera驱动(默认为OV9750)1、android 驱动代码路径hardware/rockchip/camera/SiliconImage/isi/drv/OV9750_A2、编译生成的libisp_isi_drv_OV9750_A.so 放置于/vendor/lib/hw3、cp hardware/rockchip/camera/SiliconImage/isi/drv/OV9750_A/calib/ OV9750_A.xml /vendor/etc/4、cp hardware/rockchip/camera/Config/cam_board_rk3399.xml /vendor/etc/cam_board.xmlxml 配置1、根据电路图为camera上电,并配置rst,pdn,以下按mipi0配置电压以及相关gpio,I2C通道(1),mipi phy 通道(0),IO 电压 1.8v、CORE电压1.8v、模拟电压:3.2v,具体请看电路图、以及OV9750 datasheet。概述RK3399Pro toybrick开发板分别带有两个MIPI,一个DVP摄像头接口,MIPI支持最高4K拍照,并支持 1080P 30fps以上视频录制。此外,开发板还支持 USB 摄像头。本文以OV9750摄像头为例,讲解在该开发板上的配置过程。配置原理由以下电路图可知,两路MIPI摄像头连接的是不同的ISP和I2C通道。MIPI0:使用ISP0和I2C1,还需配置MIPI_MCLK0、MIPI_PDN、MIPI_RSTMIPI1:使用ISP1和I2C2,还需配置MIPI_MCLK_T2、JMIPI_PDN2、JMIPI_RST2DTS配置配置isp节点cif_isp0:cif_isp@ff910000{
compatible=”rockchip,rk3399-cif-isp”;
rockchip,grf=;
reg=,;
reg-names=”register”,”dsihost-register”;
clocks=
,,
,,
,,
,,
;
clock-names=
“aclk_isp0_noc”,”aclk_isp0_wrapper”,
“hclk_isp0_noc”,”hclk_isp0_wrapper”,
“clk_isp0″,”pclk_dphyrx”,
“clk_cif_out”,”clk_cif_pll”,
“pclk_dphy_ref”;
interrupts=;
interrupt-names=”cif_isp10_irq”;
power-domains=;
rockchip,isp,iommu-enable=;
iommus=;
status=”disabled”;
};
&isp0{
status=”okay”;
};

&isp0_mmu{
status=”okay”;
};
&cif_isp0 {
rockchip,camera-modules-attached = ;
status = “okay”;
};
设置CPU MCLK引脚功能&pinctrl{
/**/
cam_mclk{
cam_default_pins:cam-default-pins{
rockchip,pins=;
};
};
};
在i2c上配置camera节点,mipi0 camera连接到i2c1上&i2c1{
status=”okay”;/*使能i2c1*/
/*
*一般写成cameraX:camera-module@ID,其中X为序号,ID为camera的7bitI2C地址
*camera0表示节点名,绑定isp节点时,将camera0attach到isp0
*/
camera0:camera-module@10{
status=”okay”;
compatible=”omnivision,ov9750-v4l2-i2c-subdev”;
reg=;/*7bitI2C地址*/
device_type=”v4l2-i2c-subdev”;/*无需修改*/
clocks=;/*无需修改,时钟源选择*/
clock-names=”clk_cif_out”;/*无需修改,时钟源名字*/

pinctrl-names=”default”;/*无需修改,通过pinctrl配置MCLK引脚*/
pinctrl-0=;/*无需修改,与上文的pinctrl定义一致*/

rockchip,pd-gpio=;/*PD管脚分配及有效电平*/
rockchip,rst-gpio=;/*RST管脚分配及有效电平*/

rockchip,camera-module-mclk-name=”clk_cif_out”;/*无需修改*/
rockchip,camera-module-facing=”back”;//前后置配置
rockchip,camera-module-name=”MDG001″;//Camera模组名称
rockchip,camera-module-len-name=”NONE”;//Camera模组镜头
rockchip,camera-module-fov-h=”80″;//模组水平可视角度配置
rock免费云主机域名chip,camera-module-fov-v=”65″;//模组垂直可视角度配置
rockchip,camera-module-orientation=;//模组角度设置
rockchip,camera-module-iq-flip=;//IQ上下翻转
rockchip,camera-module-iq-mirror=;//IQ左右镜像
//以上2个属性控制摄像头的效果参数镜像配置,一般都是设置成0,但是发现以下现象:拍摄白墙,图片的上半部偏色与下半部偏色不一致,或者左右半部偏不一致,即可以将这2个属性置成1。
rockchip,camera-module-flip=;
rockchip,camera-module-mirror=;
//以上2个属性控制摄像头驱动中的镜像配置,如果图像旋转180度,可以将这2个属性修改成相反的值即可旋转180。
rockchip,camera-module-defrect0=;//根据摄像头分辨率进行设置

rockchip,camera-module-flash-support=;//闪光灯支持
rockchip,camera-module-mipi-dphy-index=;//mipi口配置,根据物理连接定义
as-master=;
};
};
驱动说明与摄像头相关的代码目录如下:drivers/media/i2c/soc_camera/rockchip
|–ov9750_v4l2-i2c-subdev.c//OV9750驱动
|–ov_camera_module.c//OV系列公共函数
|–ov_camera_module.h//
|–rk_camera_mclk.c//RKCameraMCLK时钟信号管理
|–rk_camera_mclk.h
|–rk_camera_module.c//RK系列公共函数
`–rk_camera_module_version.h//模块版本信息看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注百云主机行业资讯频道,感谢您对百云主机的支持。

相关推荐: HTML5 Video/Audio播放本地文件的方法

本篇内容主要讲解“HTML5 Video/Audio播放本地文件的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5 Video/Audio播放本地文件的方法”吧! 在得到用户允许后我们还是可以播放本地文…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/13 19:05
下一篇 01/13 20:45

相关推荐