- 博客(59)
- 收藏
- 关注
原创 RK3588 MIPI-CSI 接收YUV420调试
YUV420有两种排列方式,分别是legacy yuv420 8bit与yuv420 8bit,分别按照如下排列:我们基于V4l2的框架实现,可以看看V4l2框架关于YUV420的定义:MEDIA_BUS_FMT_UV8_1X8是legacy YUV420 8bit的定义,MEDIA_BUS_FMT_Y8_1X8是YUV420-8的定义,我们后续使用MEDIA_BUS_FMT_UV8_1X8来实现。
2025-12-11 18:04:16
791
原创 RK Camera HAL3 工作流程简要分析
RK Camera HAL3 工作流程分析摘要: Rockchip Camera HAL3 是基于Android Camera3 API实现的硬件抽象层,位于框架与硬件之间。系统采用分层架构,包含Camera3HAL、RequestThread、ResultProcessor等核心组件。工作流程分为初始化、流配置、请求处理和结果返回四个阶段。初始化阶段加载模块并创建组件实例;流配置阶段验证参数并绑定硬件;请求处理阶段创建请求对象并调用硬件处理;结果返回阶段通过回调通知上层。关键API调用链清晰展示了各组件间
2025-12-11 16:12:25
705
原创 RK628调试:RK628D/E色偏问题与RK628F/H的优化
之前在调试RK628D HDMI-IN的场景的时候,遇到最多的题就是色偏问题,常见的现象是:笔记本作为信号源,HDMI-IN画面显示出现字体边缘偏色、色块交界处模糊等现象,如下面图所示,可以看到字体边缘有明显的色偏。
2025-11-26 17:25:14
318
原创 RK3576调试:usb camera/mipi camera/hdmi-in冲突解决
调试过程中经常会遇到一个问题就是:主板同时有hdmi-in、usbcamera、mipi camera,系统相机apk经常默认打开的并不是mipi camera或者usb,而是打开hdmi-in画面,需求是hdmi-in打开hdmi-in画面,系统相机只打开mipi/usb camera,不去打开hdmi-in。这篇文章介绍一下如何解决这个问题。
2025-11-24 09:58:40
113
原创 Media Framework解析:SOC V4L2集成开发的利器
Media Framework是Linux内核中用于管理复杂多媒体设备拓扑关系的框架。它解决了现代SoC中多媒体设备间复杂的连接关系和数据流路径问题。Media Framework为复杂的多媒体系统提供了强大的拓扑管理能力,学习Media Framework可以为我们开发camera驱动打下基础,希望这篇文章能够给开发者一些帮助。
2025-10-22 17:06:00
374
原创 V4L2介绍
V4L2(Video for Linux 2)是Linux内核中视频设备驱动的标准框架,它为视频采集、输出、编解码等设备提供统一的编程接口。作为摄像头驱动开发者,理解V4L2至关重要。
2025-10-22 16:51:57
508
原创 Linux 内核IIO sensor驱动
IIO(Industrial I/O)是Linux内核中专门为模拟数字转换器(ADC)、数字模拟转换器(DAC)、惯性测量单元(IMU)以及各种传感器设计的子系统框架。它提供了一套标准化的接口,使得传感器数据能够被用户空间应用程序方便地访问和处理。根据不同的传感器,定义传感器通道,应用层通过不同的通道获取数据。// 通道定义示例 - 三轴加速度计.type = IIO_ACCEL, // 加速度类型.modified = 1, // 使用修改通道。
2025-10-10 17:28:48
574
原创 HDMI-IN调试:热插拔、切分辨率应用逻辑
本文介绍了HDMI-IN通路中热插拔和分辨率切换的实现方案。系统采用RK628F芯片将HDMI信号转换为MIPI接口,并基于Android 14的Camera框架进行开发。驱动层通过V4L2框架上报三种关键事件:分辨率变化事件(V4L2_EVENT_SOURCE_CHANGE)、热插拔事件(V4L2_EVENT_CTRL)和信号丢失事件(RK_HDMIRX_V4L2_EVENT_SIGNAL_LOST)。服务层通过独立的HDMI服务线程监听这些事件,并通过回调通知应用层处理。应用层根据连接状态和分辨率变化进
2025-09-06 16:18:13
837
原创 RK3588 DCPHY问题对接LT6911调试
本文介绍了RK3588/RK3588S芯片DCPHY接口的时序调试方法。DCPHY集成了TX和RX功能,可复用为DPHY或CPHY,但作为RX使用时需满足MIPI时序要求。文章详细说明了DCPHY时序问题判断标准,并提供了TX端trail时间调整和RX端参数调试两种解决方案。通过lp_vol_ref、lp_hys_sw等关键参数可调整各lane的参考电压和延时,确保lane0最晚结束LP11。最后以LT6911UXE为例,展示了实测波形和优化后的参数配置,仅需将lane0推迟1ns即可满足时序要求。
2025-09-03 16:19:26
1084
原创 RK628F HDMI-IN调试:应用接口使用
介绍一下RK628F的驱动都支持哪些接口供应用读取使用,RK628F的接口可以分为V4l2标准接口,RK HDMI-IN的私有接口、RK camera的私有接口。一起来看一下这些接口。
2025-08-02 16:03:11
1007
原创 camera调试:RK cameraHAL配置链路
RK的平台不同的芯片版本其数据链路都不太一样。例如早期的RK3399等平台数据链路为:sensor-> mipi rx dphy -> isp,后面rk3588等平台都是改成了sensor -> csi_dphy -> mipi_csi2 -> vicap -> .... -> rkisp。这篇文章看下rk camera HAL是如何配置链路的。
2025-08-02 11:30:42
1361
原创 HDMI-IN调试:双MIPI支持4K60方案
本文介绍了一种基于RK3588/RK3576平台的4K60 HDMI-IN双MIPI-CSI接收方案。针对现有转接芯片单MIPI接口带宽不足的问题,提出将4K图像拆分为左右两半,通过双4lane MIPI接口传输,并在主控端进行拼接的方案。文章详细说明了硬件设计要求、内核驱动修改、设备树配置方法,并提供了调试命令和常见问题解答。该方案支持RK628F、LT6911UXC等转接芯片,可实现4K60 YUV422/RGB888格式的高清视频输入,解决了单MIPI接口带宽限制的问题。
2025-07-26 11:22:39
1730
原创 camera驱动调试:RK3588S2 兼容配置
根据RK官方的介绍RK3588S有两路DCPHY,一路DPHY,RK后面修改封装推出了RK3588S2版本,将其中的一路DCPHY修改成为DPHY,也就是RK3588S2拥有一路DCPHY,2路DPHY,但软件兼容上面需要注意一些配置的问题。这里分享一下配置的注意点。
2025-07-02 15:16:54
1311
原创 camera调试:AHD/serdes多路摄像头调试说明
本文详细介绍了AHD/SERDES在车载多路摄像头接入场景下的调试补充内容,重点解析了热拔插机制中的VICAP复位实现。文章指出RK356X及以上平台支持多路虚拟通道,并对比了kernel-4.19与5.10/6.1版本在复位机制配置上的差异,包括DTS参数设置和监测模式说明。同时介绍了如何通过external_camera_config.xml屏蔽无用video节点来优化HAL层配置。最后强调该文是对此前驱动移植文章的补充,建议结合关联文章参考使用。
2025-06-30 10:28:56
1832
原创 camera调试:安卓添加xml注册
对接安卓的平台时,需要注册对应的camera设备,供安卓标准api进行操作,rk的平台需要在HAL层配置camera3_profiles.xml文件,适配驱动的信息,进行注册camera设备。该xml对应的内容很多,很多CTS测试问题都是该文件配置导致。对应不同的sensor,建议根据功能更新xml配置。
2025-06-30 09:55:15
1257
原创 camera驱动调试:sensor驱动移植
本文详细介绍了基于V4L2框架和I2C设备的新传感器驱动移植步骤。主要内容包括:1)I2C子设备驱动实现,需完成结构体成员定义和probe函数;2)V4L2子设备实现,需配置核心操作、视频操作和pad操作回调;3)初始化配置序列和上下电时序实现;4)曝光、增益等关键控制寄存器配置方法;5)MIPI时钟与像素时钟设置。文章以具体传感器为例,阐述了驱动开发中的关键点和注意事项,为开发者移植新传感器驱动提供了系统性的指导方案。
2025-06-27 16:48:13
1726
7
原创 camera驱动调试:驱动添加PDAF
本文介绍了在RK平台上支持PDAF(相位检测自动对焦)的方法。PDAF通过在传感器上设置遮蔽像素点检测相位差实现快速对焦。实现步骤包括:1)传感器配置序列支持PD像素输出;2)定义PD像素数据格式与尺寸;3)调整MIPI时钟频率;4)通过ioctl获取VC通道信息;5)DTS配置PD通道参数。文章还分享了调试经验,如原始分辨率需调整为8的倍数以避免数据接收问题。完整实现需要传感器驱动支持PDAF并在RK的AIQ中开启该功能。
2025-06-27 16:05:21
1216
原创 camera驱动调试:驱动添加OTP
部分senor为了校准和优化最佳的图像效果,会烧录OTP的数据。因此sensor的驱动需要支持读取OTP数据,这篇文章简要介绍如何sensor的驱动中增加OTP的读取。由于OTP有不同的烧录规范,调试起来较为麻烦,因此我们要求统一按照RK提供的烧录规范烧录,驱动也基于RK的烧录规范实现。RK的OTP驱动为otp_eeprom.c,实际使用过程中,只需要在DTS使能该设备。在sensor的驱动调用相应的接口获取OTP数据即可。
2025-06-27 11:17:45
548
原创 RK平台camera调试:调整VI的qos优先级
在camera或者某些HDMI-IN的场景下,系统工作负载较高时,可能会出现芯片内部的总线被其他模块抢占,可能会导致接收的图像出现条瑕疵或者出现相关的报错无法收下图像,此时可以考虑提高VI模块在芯片内部总线的优先级。通过TRM可以看到,ISP VICAP相关的qos优先级,默认是2,最高是3.以下以RK3588为例进行介绍。
2025-06-26 09:33:42
349
原创 RK平台HDMI-IN/camera调试:预留CMA内存
CMA内存是物理连续的,不需要再进行映射等操作,iommu物理上不连续,需要映射成连续的地址,因此CMA内存的效率比较高,可以用于sensor的mipi信号不佳或者系统负载较大的时候,接收的图像出现异常:例如出现绿条纹、帧率下降、概率性分屏等等的场景。
2025-06-25 17:32:53
623
原创 RK平台常开PD与CLK的方式
在遇到死机问题时,比较大的可能性是由于某个模块关闭了CLK或者PD,而软件驱动又去访问对应的模块寄存器,因此可以通过修改PD常开与CLK常开进行测试排查。PD、CLK常开也是遇到死机等问题的常用debug手段。以下说明一下如何打开。
2025-06-25 16:59:16
223
原创 RK3576 MIPI-CSI 接收YUV420
RK3576平台的VICAP模块新增对YUV420-8bit格式的支持,包含标准YUV420和legacy两种排列方式。通过驱动代码适配,可直接将YUV420转换为NV12格式,解决了HDMI1.4设备在4K60场景下的信号兼容性问题。相较于RK3588需CPU/GPU转换的方案,RK3576的内置格式转换更具优势
2025-06-20 10:31:39
1265
2
原创 RK3576 HDMI-IN 低延时机制
这篇文章介绍一下HDMI-IN低延时机制的实现,在RK3576平台搭配RK628F等转接芯片实现HDMI-IN的功能中,使用TV框架预览的话,可以有效降低时延,并且RK还在此基础上提供了提前送帧的低延时机制,理论情况还可以再优化一帧左右的延时。这篇文章介绍一下这个低延时的机制。
2025-06-19 15:35:07
1256
原创 RK628F 颜色转换
本文介绍了RK628F芯片在HDMI输入场景下的色彩处理功能,重点解析了三项核心功能:1)图像格式转换,支持YUV422和RGB888输出;2)颜色空间转换,支持XVYCC601/709、BT2020等多种标准;3)色域转换功能,提供FULL/LIMIT/AUTO三种模式选择,并详细说明了不同模式组合下的实际显示效果。
2025-06-19 10:22:06
774
原创 使用addr2line工具排查报错堆栈
内核出现pannic,空指针等问题是会出现堆栈打印,可以通过堆栈来定位具体的代码,这时候我们需要内核编译的 vmlinux,如果重新编译的话,符号表会更新,就无法定位。安卓对应的so库奔溃的话,也可以通过addr2line来定位问题点。
2025-06-18 17:50:43
536
原创 RK平台 安卓12/13/14 HDMI-IN调试
本文介绍了安卓12及以上系统中HDMI-IN功能的实现方式变化。相较于安卓9/10/11版本通过APK轮询实现的旧框架,新版采用事件上报机制,由驱动主动上报热拔插和分辨率变化事件,解决了selinux权限问题。此外,安卓12新增了TV框架支持,可实现比Camera框架更低的显示延迟。文章详细阐述了驱动层如何通过V4L2框架实现事件上报,包括热拔插检测(通过HDMI5V中断)和分辨率变化通知(SOURCE_CHANGE事件)。
2025-06-18 15:19:52
2080
原创 RK628F HDMI-IN调试
本文详细介绍了RK628F芯片实现4K60 HDMI-IN功能的调试过程。RK628F是Rockchip推出的视频桥接芯片,相比前代RK628D支持HDMI2.0、双MIPI-CSI输出,解决了色偏问题,并能实现4K60视频传输。文章从驱动框架、DTS配置、双MIPI功能实现、DSI模式配置等方面进行了阐述,并提供了详细的调试方法,包括寄存器读写、图像抓取等操作命令。通过RK628F搭配RK3588主控可实现低延迟的HDMI输入功能,支持在Camera和TV两种框架下进行视频预览,为开发者提供了完整的解决方
2025-06-18 10:53:29
2366
1
原创 RK 安卓10/11平台 HDMI-IN 调试
本文详细介绍了在RK平台(如RK3399、RK3568等)上实现HDMI-IN功能的开发方法。通过外挂RK628、LT6911等转接芯片,将HDMI信号转换为MIPI-CSI信号输入主控芯片,并基于V4L2框架实现驱动。文章重点解析了功能流程、DTS配置、设备注册以及调试方法,包括热拔插、分辨率自适应等特性实现。针对不同芯片平台(如RK3399使用ISP、RK3568使用ISP/VICAP)分别提供了配置示例,并讨论了性能优化方案,如CMA内存配置和RK3399超频支持4K分辨率。
2025-06-17 16:44:45
1483
原创 RK3576 camera DTS 配置解析
本文详细介绍了RK3576平台上摄像头设备的配置方法。主要内容包括:(1)摄像头设备配置要点,如MIPI和DVP传感器在I2C地址、时钟、电源管理等方面的设置;(2)VCM马达和OTP设备的配置方法;(3)数据链路架构和pipeline配置,展示了不同传感器类型对应的数据流路径;(4)完整的DTS配置示例。文章强调配置时需注意硬件匹配和参数准确性。
2025-06-17 15:16:15
2449
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅