网站设置关键词,广西建设领域证书查询官方网站,怎么看网站开发者页面,国内做免费视频网站有哪些这篇文章主要想介绍一下再RK3288平台上面调试BT656 video in的注意事项。以RN6752转接芯片#xff0c;android10平台为例进行介绍。
目录
1. RK3288 VIDEO INPUT 并口
2. 驱动调试
2.1 RN6752 驱动实现
①rn6752_g_mbus_config总线相关配置
②rn6752_querystd配置制式
…这篇文章主要想介绍一下再RK3288平台上面调试BT656 video in的注意事项。以RN6752转接芯片android10平台为例进行介绍。
目录
1. RK3288 VIDEO INPUT 并口
2. 驱动调试
2.1 RN6752 驱动实现
①rn6752_g_mbus_config总线相关配置
②rn6752_querystd配置制式
③rn6752_g_skip_top_lines可以设置跳过头部的几行
2.2 DTS配置
①rn6752配置
②cif节点的配置
③pinctrl配置
3. 注册安卓camera
4. 调试手段
4.1 开启数据流
4.2 抓图像
4.3 查看是否注册camera成功
5. 总结 1. RK3288 VIDEO INPUT 并口
RK3288主控支持MIPI接口和DVP并口的图像输入有ISP控制器和CIF控制器RK356X以后该控制器改称为VICAPISP可以处理MIPI和DVP的图像CIF只能支持DVP并口DVP接口只能支持BT656或者BT601不支持BT1120feature如下 2. 驱动调试
以Android10 kernel4.19平台RN6752 CVBS转BT656为例介绍一下驱动调试的关键配置。
2.1 RN6752 驱动实现
RN6752驱动同样基于V4l2框架接口实现输入数据是CVBS PAL制或者NTSC制一般分辨率是720*576或者720*480隔行输入RK3288的CIF控制器支持接收P制或者N制数据并将其奇偶场进行合并输出。驱动代码基于v4l2框架这里仅介绍一下几个关键接口
①rn6752_g_mbus_config总线相关配置
参考配置如下需要设置总线类型极性等等
static int rn6752_g_mbus_config(struct v4l2_subdev *sd,struct v4l2_mbus_config *config)
{config-type V4L2_MBUS_PARALLEL;config-flags V4L2_MBUS_HSYNC_ACTIVE_HIGH |V4L2_MBUS_VSYNC_ACTIVE_LOW |V4L2_MBUS_PCLK_SAMPLE_RISING;return 0;
}
②rn6752_querystd配置制式
该接口需要设置N制或者P制类型CIF控制器会从这个接口获取制式并设置到控制器。注意的是BT601不需要设置这个接口。参考如下
static int rn6752_querystd(struct v4l2_subdev *sd, v4l2_std_id *std)
{struct rn6752 *rn6752 to_rn6752(sd);struct i2c_client *client rn6752-client;dev_dbg(client-dev, %s(%d)\n, __func__, __LINE__);if(rn6752-cvstd_index){*std V4L2_STD_NTSC;dev_info(client-dev, V4L2_STD_NTSC\n);}else{*std V4L2_STD_PAL;dev_info(client-dev, V4L2_STD_PAL\n);}return 0;
}
③rn6752_g_skip_top_lines可以设置跳过头部的几行
该接口可以设置跳过行数有的转接芯片传输的数据有可能会先传几行异常的图像直接收下会导致图像异常这个接口可以设置跳过这些行需要注意的是设置成偶数不然有可能会导致奇偶场颠倒的问题。
#define RN6752_SKIP_TOP 0static int rn6752_g_skip_top_lines(struct v4l2_subdev *sd, u32 *lines)
{struct rn6752 *rn6752 to_rn6752(sd);*lines RN6752_SKIP_TOP;return 0;
}
其余接口与其他的camera sensor驱动基本一致这里不再赘述。
2.2 DTS配置
dts关键配置主要有rn6752配置和iomux的引用。
①rn6752配置
rn6752注册为一个i2c设备配置如下所示 rn6752: rn67522d {status okay;compatible richnex,rn6752;reg 0x2d;clocks cru SCLK_VIP_OUT;clock-names xvclk;//pwdn-gpios gpio2 RK_PB6 GPIO_ACTIVE_HIGH;rockchip,camera-module-index 1;rockchip,camera-module-facing back;rockchip,camera-module-name RN6752;rockchip,camera-module-lens-name Largan;port {rn6752_out: endpoint {remote-endpoint dvp_in_fcam;bus-width 8;pclk-sample 0;};};};
hsync-active/vsync-active不要配置否则v4l2框架异步注册时会识别为BT601pclk-sample/bus-width可选pinctrl需要正确引用后面介绍一下。
②cif节点的配置
基于v4l2框架同样需要配置pipeline这个case的pipeline就是RN6752-CIFCIF节点配置如下
cif_new {status okay;pinctrl-names default;pinctrl-0 isp_mipi isp_dvp_d2d9 isp_dvp_d10d11;port {#address-cells 1;#size-cells 0;dvp_in_fcam: endpoint0 {// bus-type 0;remote-endpoint rn6752_out;vsync-active 0;hsync-active 1;pclk-sample 1;// bus-width 8;};};
};
其中最关键的是pinctrl对应的io需要正确引用。
③pinctrl配置
pinctrl-0 isp_mipi isp_dvp_d2d9 isp_dvp_d10d11;
这里配置的pinctrl如上需要特别注意pinctlr需要跟硬件原理图接法一致需要核对清楚gpio如果配置错任何一个都可能导致无法接收数据。这里的配置是d2-d11,有其他的场景可能是d4-d14或者d0-d7等等。
3. 注册安卓camera
驱动完成之后同样需要注册camera这里注意xml的配置。主要配置如下 如果成功注册camera就可以直接使用camera的apk打开预览。
4. 调试手段
4.1 开启数据流
v4l2-ctl --verbose -d /dev/video0 --set-fmt-videowidth720,height576,pixelformatNV12 --stream-mmap4
4.2 抓图像
v4l2-ctl -d /dev/video0 --set-fmt-videowidth720,height576,pixelformatNV12 --stream-mmap3 --stream-skip4 --stream-to/data/720x576_PAL_nv12.yuv --stream-count5 --stream-poll
4.3 查看是否注册camera成功
dumpsys media.camera
5. 总结
希望这篇文章对RK3288 RN6752 CVBS的调试对正在调试类似case的人有帮助。