RK3288:BT656 RN6752调试
这篇文章主要想介绍一下再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以后该控制器改称为VICAP),ISP可以处理MIPI和DVP的图像,CIF只能支持DVP并口,DVP接口只能支持BT656或者BT601,不支持BT1120,feature如下:

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: rn6752@2d {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框架异步注册时会识别为BT601,pclk-sample/bus-width可选;pinctrl需要正确引用,后面介绍一下。
②cif节点的配置
基于v4l2框架同样需要配置pipeline,这个case的pipeline就是RN6752->CIF,CIF节点配置如下:
&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: endpoint@0 {// 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-video=width=720,height=576,pixelformat='NV12' --stream-mmap=4
4.2 抓图像
v4l2-ctl -d /dev/video0 --set-fmt-video=width=720,height=576,pixelformat='NV12' --stream-mmap=3 --stream-skip=4 --stream-to=/data/720x576_PAL_nv12.yuv --stream-count=5 --stream-poll
4.3 查看是否注册camera成功
dumpsys media.camera
5. 总结
希望这篇文章对RK3288 RN6752 CVBS的调试,对正在调试类似case的人有帮助。
相关文章:
RK3288:BT656 RN6752调试
这篇文章主要想介绍一下再RK3288平台上面调试BT656 video in的注意事项。以RN6752转接芯片,android10平台为例进行介绍。 目录 1. RK3288 VIDEO INPUT 并口 2. 驱动调试 2.1 RN6752 驱动实现 ①rn6752_g_mbus_config总线相关配置 ②rn6752_querystd配置制式 …...
LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment
现在,您已经了解了如何调整和对齐大型语言模型以适应您的任务,让我们讨论一下将模型集成到应用程序中需要考虑的事项。 在这个阶段有许多重要的问题需要问。第一组问题与您的LLM在部署中的功能有关。您需要模型生成完成的速度有多快?您有多…...
Milvus踩坑笔记
本文用于记录在学习 Milvus文档时所遇到的一些Bug或报错及解决方法 参考文章: 官方demo:在Dynamic Schema的集合中插入数据 报错1:auto id enabled, id shouldnt in entities[0] 问题描述 此报错出现在Milvus官方在介绍 Dynamic Schema …...
什么是轴电流?轴电流对轴承有什么危害?
根据同步发电机结构及工作原理,由于定子铁芯组合缝、定子硅钢片接缝,定子与转子空气间隙不均匀,轴中心与磁场中心不一致等,机组的主轴不可避免地要在一个不完全对称的磁场中旋转。这样,在轴两端就会产生一个交流电压。…...
react create-react-app v5配置 px2rem (不暴露 eject方式)
环境信息: create-react-app v5 “react”: “^18.2.0” “postcss-plugin-px2rem”: “^0.8.1” 配置步骤: 不暴露 eject 配置自己的webpack: 1.下载react-app-rewired 和 customize-cra-5 npm install react-app-rewired customize-cra…...
.net中用标志位解决socket粘包问题
以下为wpf中, 用标志位"q" 解决粘包问题 using MyFrameWorkWpf.Entities; using System.Collections.ObjectModel; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.…...
【Ubuntu】Systemctl 管理 MinIO 服务器的启动和停止
要使用 systemctl 来管理 MinIO 服务器的启动和停止,您需要创建一个 systemd 服务单元文件,以便 systemd 能够启动和停止 MinIO 服务器。下面是一般的步骤: 创建 systemd 服务单元文件: 打开终端并使用文本编辑器创建一个新的 sys…...
《golang设计模式》第二部分·结构型模式-07-代理模式(Proxy)
文章目录 1. 概述1.1 角色1.2 模式类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概述 代理(Proxy)是用于控制客户端访问目标对象的占位对象。 需求:在调用接口实现真是主题之前需要一些提前处理。 解决:写一个代理ÿ…...
Jmeter常用线程组设置策略
一、前言 在JMeter压力测试中,我们时常见到的几个场景有:单场景基准测试、单场景并发测试、单场景容量测试、混合场景容量测试、混合场景并发测试以及混合场景稳定性测试 在本篇文章中,我们会用到一些插件,在这边先给大家列出&…...
【Spring】Spring MVC 程序开发
Spring MVC 程序开发 一. 什么是 Spring MVC1. MVC2. Spring、Spring Boot 与 Spring MVC 二. 创建 Spring MVC 项目1. 创建项目2. 用户和程序的映射3. 获取用户请求参数①. 获取单个参数②. 获取多个参数③. 传递对象④. 后端参数重命名(后端参数映射)R…...
如何在企业网站里做好网络安全
在当今数字时代,网站不仅仅是企业宣传和产品展示的平台,更是日常生活和商业活动中不可或缺的一部分。然而,随着网络技术不断发展,网站的安全问题日益凸显。保护网站和用户数据的安全已经成为至关重要的任务,以下是一些…...
windows server 2012 服务器打开系统远程功能
服务器上开启远程功能 进入服务器,选择“添加角色和功能” 需要选择安装的服务器类型,如图所示 然后在服务器池中选择你需要使用的服务器。 选择完成后,在图示列表下勾选“远程桌面服务” 再选择需要安装的功能和角色服务。 选择完成确认内容…...
智能工厂MES系统,终端设备支持手机、PDA、工业平板、PC
一、开源项目简介 源计划智能工厂MES系统(开源版) 功能包括销售管理,仓库管理,生产管理,质量管理,设备管理,条码追溯,财务管理,系统集成,移动端APP。 二、开源协议 使用GPL-3.0开…...
GPT的优势和GPT缺点
GPT,即Generative Pre-trained Transformer,是一种基于人工智能技术的自然语言处理模型。它采用了深度学习算法,可以通过大量的文本数据来学习自然语言的规律,并能够生成流畅、准确的语句。下面我们将探讨GPT技术的优势。 首先&a…...
微信小程序开发缺少中间证书问题(腾讯云、阿里云等做服务器)
项目使用nginx做负载均衡后,不再采用原来直接用jar包的方式直接开启对应端口,所以需要重新从云服务器上下载证书,写入到Nginx读取的证书路径上即可。...
动态代理初步了解
准备案例 需求 模拟某企业用户管理业务,需包含用户登录,用户删除,用户查询功能,并要统计每个功能的耗时。 分析与实现 定义一个UserService表示用户业务接口,规定必须完成用户登录,用户删除,…...
QT国际化
引入 在代码里面写中文就很low,运行时多语言切换是客户端程序都应该具备的。 qt国际化其实就是qt中字符串的字符集编码的设置。当然这个设置不是简单的选择一下什么语言就好,这个需要编程人员来处理的。 通常对于非拉丁字符(主要指latin1字符…...
微信小程序button按钮去除边框去除背景色
button边框 去除button边框 在button上添加plain“true”在css中添加button.avatar-wrapper {background: none}用于去除button背景色在css中添加button.avatar-wrapper[plain]{ border:0 }用于去除button边框...
Neo4j深度学习
Neo4j的简介 Neo4j是用Java实现的开源NoSQL图数据库。从2003年开始开发,2007年正式发布第一版,其源码托管于GitHtb。Neo4j作为图数据库中的代表产品,已经在众多的行业项目中进行了应用,如:网络管理、软件分析、组织和…...
【数据结构C/C++】链式存储与顺序存储结构栈
文章目录 链式存储结构顺序存储结构 下面这篇文章是我大二时候写的比较详细的实现过程,再这篇文章我也会再一次比较简单的再次简述一下链式与顺序存储结构的实现方式。 链式存储结构与顺序存储结构详解 这里我就不使用C再一次实现这两个栈了,有兴趣的也可…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
