首页 > 其他分享 >详细记录海思相机适配新的sensor(IMX585)(一)——Hi3519DV500

详细记录海思相机适配新的sensor(IMX585)(一)——Hi3519DV500

时间:2024-07-02 21:31:09浏览次数:19  
标签:IMX585 适配 Hi3519DV500 修改 imx515 寄存器 sensor SDK

 一、前言

这几天手里有个任务,组里买了个相机模组,soc是HI3519DV500,配的是IMX585的sensor,但是HI3519DV500的SDK中支持的sensor list没有IMX585,需要进行适配工作。查遍了全网能找到的博客,也咨询了一些博主,进行记录。(海思的坑是真的多,组里也没人搞,所以一个人四处踩坑;衷心感谢每一个帮助过我的博主!欢迎大家在评论区讨论或者私信交流)

声明:工作进行到最后遇到了问题没有调出来,但是适配sensor的流程应该没问题,仅供参考和交流,主要是自我记录和交流解决问题

总体思路:

1.先对SDK中已有的sensor驱动进行修改,此处遵循的原则是非必要不修改,哪怕是名字,因为sensor适配涉及的文件非常多,修改越多越容易犯错,大佬忽略这条

2.对SDK中的sensor驱动的模板修改完毕之后,进行编译产生so文件,然后放到板端运行,在此过程中也需要对板端的配置文件进行修改。

3.使用PQtool来建议适配是否成功

第二篇已经更新:

详细记录海思相机适配新的sensor(IMX585)(二)——Hi3519DV500

二、搭建环境

要做完整个适配工作,需要搭建很多环境,此处先搭建修改sensor的ubuntu环境,采用虚拟机Ubuntu16.04+VScode的形式。

2.1 传送SDK到ubuntu中

首先将官方给的SDK包从PC端传入到虚拟机ubuntu中:

其中带REF的是补丁包,按照readme的说明来把SDK展开和补丁打上。

然后打开SDK包,大概是这些文件夹:

2.2 安装交叉编译链

另外还需要官方给的安装交叉编译链,不然后面可能有问题,千万记得此处安装完之后需要将环境变量生效,不然后面make会提示没有找到命令。

2.3 ssh连接

在ubuntu中使用”ifconfg“查看ubuntu的IP,然后用VScode进行ssh连接,此处这样用是因为虚拟机太卡,不方便使用。

左边显示文件夹,右边上面显示程序,下面显示终端面板。下面就是修改sensor驱动了

三、修改sensor驱动程序

 3.1 找到驱动程序所放的目录

在Hi3519DV500_SDK_V1.0.1.0/smp/a55_linux/source/mpp/cbb/isp/user/sensor/hi3519dv500中

如图所示,支持的sensor驱动都放在各个文件夹中

我们要做的是在imx515的基础上改为imx585的驱动,最好的是直接将sony_imx515文件夹再复制一份,命名为sony_imx585,然后对sony_imx585进行修改。在此我直接对sony_imx515进行修改。在程序中的515非必要不做修改,只修改寄存器数值和一些参数(来自小白的小心翼翼),前提是515和585相差不大。

3.2 程序目录结构

首先查看目录结构,一个驱动文件夹下有五个文件

3.3 修改程序

修改驱动程序这里参考了许多网上的博客,但是大部分博客都比较省略,这也是我头疼的地方,大部分说的是只改了寄存器配置,其他没有改动太多。但是其他部分具体改动了什么,我无从得知。我做的尝试:这部分的修改程序遵循一个原则:通用的部分不动,只动不同sensor可能不同的地方。下面以程序中一些地方举例。

3.3.1 对imx515_cmos_ex.h

对于imx515_cmos_ex.h程序,大部分函数有ISP关键词,应该和isp有关,目标是先出图,出图效果不佳再调isp,所以对imx515_cmos_ex.h没修改

3.3.2 对imx515_cmos.c

ID暂时不变,然后看585的sensor手册宽度和高度也是这个,所以这里不动

寄存器地址根据手册进行修改,这里的GAIN的寄存器是我问博主得到的,店铺给的资料里没有

然后下面的一些函数涉及到ae、awb之类的,先出图,所以这些和isp相关的先不管。

3.3.3 对imx515_coms.h

可能要改的是I2C地址:

这个根据手册看管脚电平

问了客服 都是低电平,那就保持不变

3.3.4 对imx515_sensor_ctl.c

查看手册和sensor寄存器表格,发现起始地址不需要修改

对于镜像和上下反转函数需要修改(原):

因为看手册585只支持一种翻转,改后:

下面就是重点要改的地方(原):

这部分内容需要找索尼要寄存器序列表,然后根据序列表来替换其中的地址和数值。序列表有很多个,代表不同的运行模式,选择其中一个设置:

修改完毕

到这基本改完了。下面就是生成so文件,然后测试,放在下一篇文章里。

这里的修改不一定全面,主要是突出适配的整个流程,欢迎大家为我指错和提建议,多多交流。

你的关注和点赞收藏是我更新的动力!

标签:IMX585,适配,Hi3519DV500,修改,imx515,寄存器,sensor,SDK
From: https://blog.csdn.net/HI_DMXB/article/details/139992763

相关文章

  • NWIFI.SYS 的底层原理主要围绕着操作系统驱动程序模型的实现,确保无线网络适配器与操作
    NWIFI.SYS是一个Windows操作系统中的驱动程序文件,其底层原理涉及操作系统与硬件之间的交互和数据处理。以下是其底层原理的一些关键点:驱动程序功能:NWIFI.SYS主要负责管理和控制无线网络适配器。它通过操作系统提供的驱动程序接口(DriverInterface)与硬件通信,执行一系列操作,......
  • Diffusers代码学习:加载适配器
    有几种用于个性化扩散模型以生成特定主题的图像或特定风格的图像的训练技术。每种训练方法都会产生不同类型的适配器。一些适配器生成一个全新的模型,而其他适配器只修改一组较小的嵌入或权重。这意味着每个适配器的加载过程也不同。DreamBooth仅在一个主题的几个图像上微调整......
  • Android14适配编译问题
    问题:AAPT2processunexpectedlyexit.Erroroutput:aapt2W06-2609:56:2382808280LoadedArsc.cpp:682]Unknownchunktype‘200’.解决:将Gradle版本升级至8.0.1以上问题:Task:app:shrinkReleaseResFAILEDExecutionfailedfortask‘:app:shrinkReleaseRes’.A......
  • 速学设计模式 - 适配器模式
    废话写在前面吧(应届生或在校生看):当还是应届生的时候,找到好工作的机会是远大于后面的。所以现在毕业季,各位应届生,多去向上尝试。如果你已经在一家公司实习,你有更好的机会,就不要觉得不好意思,也不要被领导的饼唬到,到你手上的才是真实的。正文:适配器模式是一种结构性设计模式,它......
  • HarmonyOS NEXT - 从TypeScript到ArkTS的适配指导
    一:ArkTS语法适配背景二:从TypeScript到ArkTS的适配规则三:适配指导案例ArkTS语法适配背景 ArkTS在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序开发期能检测更多错误,提升程序稳定性,并实现更好的运行性能。本文将进一步解释为什么......
  • 海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(23)SS928/SD3403推理y
    今天抽空测试了一下3403跑yolov8的速度,源码还没改完,后处理还是先用CPU来跑了,这样速度会拖慢一点,先看看效果。实际用的是4T算力的,里面是有两个NPU,一个叫SVP_NNN,一个叫NNN,用的方式还不一样,分别用SVP_ACL接口和ACL接口。我是没有时间去研究ACL,用的SVP_ACL的方式。下面是对比。......
  • 海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(22)hi3516dv500/19dv5
     最近太忙更新不及时,SS928跑yolov8的文章各位朋友不要催,最近在测试自己魔改的yolov8,测完有结论了跟大家分享。魔改的yolov8在dv500系列里有些小问题,能正常运行,但是优化报错,在做更细致的测试。 先分享一下最近对比RK3588做的测试结果。RK3588算是嵌入式AI里的顶配级别存在......
  • Android 屏幕适配
    目录一、目的二、环境三、相关概念3.1屏幕尺寸(screensize)3.2屏幕分辨率(Resolution)3.3像素(pixel)3.4ppi3.5dpi3.6dp/dip3.7sp四、Q&A4.1为啥dpi=160?4.2为啥Android要引入dp概念?五、代码仓库地址六、参考资料一、目的        最近在调试一款设备,发现视......
  • 大学专业选择的岔路口:计算机相关专业的前景与适配性
    随着2024年高考落幕,数百万高三学生即将面临人生中的重要抉择:选择大学专业。在这个关键节点,计算机相关专业是否仍是“万金油”的选择?在过去很长一段时间里,计算机科学与技术、人工智能、网络安全、软件工程等专业一直以来是炙手可热的存在,吸引了大批学生前往。然而,随着行业竞争......
  • 设计模式之适配器模式
    设计模式中的适配器模式一、概述适配器模式(AdapterPattern)是一种结构型设计模式,它用于将一个类的接口转换成客户端所期望的另一个接口,使原本因接口不兼容而无法协同工作的类能够一起工作。适配器模式分为类适配器模式和对象适配器模式两种。二、主要角色目标接口(Target):客......