T527 camera: AHD摄像头转MIPI

一、AHD        

        常见的摄像头接口一般有MIPI、USB、DVP等等,但是MIPI摄像头受限于高速信号的传输距离问题,导致走线不能太长,这样在安防监控领域、车载等领域,使用就很受限,因此会引入AHD,目的就是提高了传输的距离。

        AHD是模拟摄像头,因此需要AD转换芯片来转换,输出数字信号给到主控进行接收。

二、AHD转MIPI调试

同样的转接芯片的驱动也是基于V4l2框架的,本次调试的是TP系列的TP2815。

TP2815 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 MIPI 数据,从而实现在 T527 端来对数据进行处理和送显。

三、调试方法

1、硬件接口确认

 通信接口:

IO控制口:

 TP2845原理图连接:

从上面原理图分析可知:
1、使用的是 MIPIA 4 lane 的模式。
2、使用的是 PE1,PE2 这一组 TWI2 的通讯接口。使用的 MCLK 是 PE0。
3、RESET 控制接口为 PK11,PWDN 控制接口为 PK23。由于 TP2815 不需要使用 PWDN,所以只需要关心 RESET 脚便可。
4、供电由主机端供给,VCC‑IO‑SOC 为 3.3V,VCC‑5V 为 5V,VCC‑3V3‑EXTSYS 为 3.3V。供电基本都是 DCDC 直接控制,无需软件单独拉起。
从规格书发现,使用的是 27MHz 的 MCLK,而且 TP2815 的设备地址为 0x88。

2、软件修改

2.1、修改设备树

(1)使能 twi2

(2)确认使用的是 PE1 和 PE2,然后确认 twi2 是否正常使能

(3) 确认 io 控制口

由于 PK11 默认便初始化为 mipib 的接口,所以这里需要重定义一下 mipib, 不然直接使用 PK11 会 报错。

(4) 确认使用 mclk id

根据MCSIA-MALK硬件可知引脚为PE0

 

从 sun55iw3p1.dtsi 中得知,PE0 为 mclk0

(5)配置 sensor

(6)配置 pipeline 通路

这里由于默认不使用 isp ,直接使用 isp4 (空的 isp) 便可。mipi 用的是 mipiA , 直接用 0 便可。

注意: 由于 T527 pipeline 支持在线模式和离线模式,所以会有 vinc00, vinc01 … 的节点配置项。我们默 认使用在线模式,只需要对应配置 vinc00 , vinc10, vinc20,vinc30 等便可。

2.2、驱动移植

(1)移植tp2815_mipi.c到longan/bsp/drivers/vin/modules/sensor目录下
(2)修改 Kconfig
(3)修改 Makefile
在bsp/drivers/vin/modules/sensor/Makefile 中添加

四、结果验证

烧录完成 后便会自动注册生成节点, 图像正常显示。

五、常见问题

1、twi 通讯不通
检查电源是否供电正常或者配置 twi 是否正确
2、出现 cci is null 的错误
没有打开 CCI_TO_TWI 的宏(一般不建议使用 cci)
3、驱动加载正常,但是没有出现 video 节点
dts 文件配置出错,需要重新对一下 board.dts 中的配置,可以 cat /sys/kernel/debug/mpp/vi 去 获取通路状态,根据具体情况检查修正
4、图像黑白
检查设置的帧率以及图像格式是否正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/291098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 自学(三) 之序列的应用

目录 1. 序列的含义 2. 序列的索引 P80 3. 序列相加 P81 4. 序列乘法 P82 5. in 关键字 P83 6. 计算序列的最大值max(),最小值min()和长度len() P83 7. 列表的初始化 list() P85 8. 列表元素的添加,…

python的课后练习总结4(while循环)

for循环用于针对序列中的每个元素的一个代码块。 while循环是不断的运行&#xff0c;直到指定的条件不满足为止。 while 条件&#xff1a; 条件成立重复执行的代码1 条件成立重复执行的代码2 …….. i 1while i < 5:print(i)i i 11、使用wh…

多线程基础入门【Linux之旅】——下篇【死锁,条件变量,生产消费者模型,信号量】

目录 一&#xff0c;死锁 1. 死锁的必要条件 2&#xff0c;避免死锁 二&#xff0c;条件变量 同步概念与竞态条件 条件变量——初始化 静态初始化 动态初始化 pthread_cond_destroy (销毁) pthread_cond_wait (等待条件满足) pthread_cond_signal (唤醒线程) ph…

【深度学习:(Contrastive Learning) 对比学习】深入浅出讲解对比学习

对比学习允许模型从未标记的数据中提取有意义的表示。通过利用相似性和不相似性&#xff0c;对比学习使模型能够在潜在空间中将相似的实例紧密地映射在一起&#xff0c;同时将那些不同的实例分开。这种方法已被证明在计算机视觉、自然语言处理 &#xff08;NLP&#xff09; 和强…

见证比亚迪如何引领公交电动化猛进

我刚步入新能源车行业时&#xff0c;电动公交车就已然成为热词。只是当时各家厂商都还在探索阶段&#xff0c;市场环境也不支持电动化模式。如今转眼10年了&#xff0c;见证行业步入快车道。专注此道近10年&#xff0c;我亲身感受到新能源汽车由试验到定型的每一个过程。这次比…

发布订阅模式

1 什么是发布订阅者模式&#xff1a;定义了对象间的一种一对多的关系&#xff0c;让多个观察者对象同时监听某 一个主题对象&#xff0c;当一个对象发生改变时&#xff0c;所有依赖于它的对象都将得到通知。 代码演示&#xff1a;创建一个类&#xff1b;类里面拥有一…

Prometheus配置Grafana监控大屏

简介 Grafana是一个跨平台的开源的度量分析和可视化工具&#xff0c;可以通过将采集的数据查询然后可视化的展示&#xff0c;并及时通知。 主要特点 展示方式&#xff1a;快速灵活的客户端图表&#xff0c;面板插件有许多不同方式的可视化指标和日志&#xff0c;官方库中具有丰…

RK3568驱动指南|第九篇 设备模型-第106章 为什么注册总线之前要先注册设备实例分析实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

数据分析可被划分为4个重要的类别

1、描述型&#xff1a;发生了什么&#xff1f; 全面、准确、实时的数据有效的可视化 2、诊断型&#xff1a;为什么会发生&#xff1f; 能够深入了解问题的根本原因隔离所有混淆信息的能力 3、预测型&#xff1a;可能发生什么&#xff1f; 通过历史数据来预测特定的结果通过…

中国5米分辨率坡度数据

中国5米分辨率坡度数据 坡度是地表单元陡缓的程度&#xff0c;通常把坡面的垂直高度和水平距离的比值称为坡度。坡度的表示方法有百分比法、度数法、密位法和分数法四种&#xff0c;其中以百分比法和度数法较为常用。 中国5米分辨率坡度数据集&#xff0c;利用5米分辨率DEM数据…

【C初阶——指针1】鹏哥C语言系列文章,基本语法知识全面讲解——指针(1)

长城之上是千亿的星空&#xff0c;星空之上是不畏的守望。 本文由睡觉待开机原创&#xff0c;转载请注明出处。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言&#xff0c;共同进步&#xff01; 文章目录 前言1.内存和地址2.指针变量和地址2.1指针…

探索LinkedIn:使用TypeScript和jsdom库的高级内容下载器

概述 LinkedIn是一个专业的社交网络平台&#xff0c;拥有超过7亿的用户和数以亿计的职位、公司和教育机构的信息。对于数据分析师、市场营销人员、招聘人员和其他对LinkedIn数据感兴趣的人来说&#xff0c;能够从LinkedIn上获取和分析这些信息是非常有价值的。 因此&#xff0…

java设计模式学习之【策略模式】

文章目录 引言策略模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用计算示例代码地址 引言 设想你正在玩一个策略游戏&#xff0c;每一个决策都会导致不同的游戏结局。同样地&#xff0c;在软件开发中&#xff0c;我们常常需要根据不同的场景或条件选择不同…

centos7.9安装ftp服务(vsftpd)

准备工作 1、centos 卸载vsftpd 删除原有的vsftpd [rootlocalhost ~]# systemctl stop vsftpd [rootlocalhost ~]# rpm -aq vsftpd [rootlocalhost ~]# rpm -aq vsftpd [rootlocalhost ~]# vsftpd-2.0.5-16.el5_5.1 2、验证是否删除完成warning: /etc/vsftpd/user_list sa…

【管理】如何正确与员工沟通

目录 一、沟通5个层次二、沟通4个要素三、沟通5个技巧系列文章版本记录 一、沟通5个层次 1、我不说你不问距离 2、我问了你不说隔阂 3、我问了你说了尊重 4、你想说我想问默契 5、我不问你说了信任 二、沟通4个要素 1先讲对方想听的话 2再讲对方听得进的话 3然后讲你应该讲的话…

Windows 下用 C++ 调用 Python

文章目录 Part.I IntroductionChap.I InformationChap.II 预备知识 Part.II 语法Chap.I PyRun_SimpleStringChap.II C / Python 变量之间的相互转换 Part.III 实例Chap.I 文件内容Chap.II 基于 Visual Studio IDEChap.III 基于 cmakeChap.IV 运行结果 Part.IV 可能出现的问题Ch…

银河麒麟桌面版开机后网络无法自动链接

下载并上传nm_3.0.1-1kylin77_arm64.deb 包。 下载链接&#xff1a;链接: https://pan.baidu.com/s/1rGPD8qJfjRui6lCC6QjHVw?pwdeeaf 提取码: eeaf 使用管理员命令运行安装sudo dpkg -i nm_3.0.1-1kylin77_arm64.deb 然后运行重启网卡命令sudo systemctl restart NetworkM…

react / antd ProTable - 高级表格 合并行,子表头

ProTable - 高级表格 合并行,以及ProTable的用法 key React.key 确定这个列的唯一值,一般用于 dataIndex 重复的情况 dataIndex React.key | React.key[] 与实体映射的 key,数组会被转化 [a,b] => Entity.a.b valueType ProFieldValueType 数据的渲染方式,我们自带了一部…

《深入理解C++11:C++11新特性解析与应用》笔记六

第六章 提高性能及操作硬件的能力 6.1 常量表达式 6.1.1 运行时常量性与编译时常量性 大多数情况下&#xff0c;const描述的是运行时常量性&#xff0c;也即是运行时数据的不可更改性。但有时候我们需要的却是编译时的常量性&#xff0c;这是const关键字无法保证的。例如&am…

「许战海战略文库」佳隆股份:2亿级别的调味品公司如何应对增长难题

自2002年以来&#xff0c;佳隆食品逐步向集团化方向发展&#xff0c;2010年11月2日在深圳证券交易所成功挂牌上市。 2009年-2022年&#xff0c;公司营收增长并不明显&#xff0c;基本维持在2-3亿之间。尤其是2022年&#xff0c;营收出现亏损的情况&#xff0c;在运营和增长战略…