TI项目问题汇总:AM5728摄像头驱动,VIP问题集锦!!!

写在前头,TI系列的DSP,SoC如果还在生产,官方社区的技术支持会比较到位。

如果遇到问题,第一时间去TI的(英文)官网论坛的对应板块提问一般都会得到满意的答案,当然首先你得把问题描述清楚。

本文记载了我在对接AM5728视频相关模块(VIP,VPE)时遇到的一些问题以及解决方式,问题罗列是按照时间线梳理的。仅供各位看官参考,才学疏浅,大家共同进步!!!

问题1:AM5728开发板对接官网买的摄像头模组无法正常加载驱动

解答1:检测是否加载了正确的驱动(与摄像头是否匹配),AM系列是dts(设备树)的内核机制,会根据树节点去加载对应的驱动,所以一定要保证驱动对应。

参考链接:https://e2e.ti.com/support/processors/f/791/t/612963

知识点:

设备树机制的内核加载过程总的归纳为:

① kernel入口处获取到uboot传过来的.dtb镜像的基地址

② 通过early_init_dt_scan()函数来获取kernel初始化时需要的bootargs和cmd_line等系统引导参数。

③ 调用unflatten_device_tree函数来解析dtb文件,构建一个由device_node结构连接而成的单向链表,并使用全局变量of_allnodes保存这个链表的头指针。

④ 内核调用OF的API接口,获取of_allnodes链表信息来初始化内核其他子系统、设备等。

参考链接:https://e2e.ti.com/support/processors/f/791/t/612963

使用设备树后,驱动需要与.dts中描述的设备节点进行匹配,从而使驱动的probe函数执行,对于platform_device而言,需要添加一个of匹配表。通过of_match_table添加匹配的.dts中的相关节点属性

参考链接:https://blog.csdn.net/zuodenghuakai/article/details/89351977

问题2:修改VIP模块的调试等级后,使用yavta调用内核vip模块没有显示更多log

解答2:使用demsg命令后可以打印

参考链接:https://e2e.ti.com/support/processors/f/791/t/615391

 

问题3是在我写sensor驱动时碰到的,具体的硬件方案是,AM5728直接采集DM8127输出的RGB888数据,但是当时经验不足,开发板的例子是基于某个sensor的写的,所以直接在原sensor的驱动中,bypass了写寄存器的所有操作,相当于跳过了摄像头初始化的过程,直接采集数据。

问题3:采集到的RGB888数据缺少了8位

解答3:内核y4l2的bug,详细补丁可以参考下面的链接

参考链接:https://e2e.ti.com/support/processors/f/791/t/615391

 

问题4:想要修改摄像头的管脚复用,在内核文件中找不到对应的地方。

解答4:AM5728的管脚复用位于uboot里修改。具体位置可参考下面链接

参考链接:https://e2e.ti.com/support/processors/f/791/t/612629

 

问题5:想要修改摄像头的管脚复用,在内核文件中找不到对应的地方。

解答5:AM5728的管脚复用位于uboot里修改。具体位置可参考下面链接

参考链接:https://e2e.ti.com/support/processors/f/791/t/612629

 

问题6:关于VIP支持的pixel format问题

解答6:最新版本的user guide写的很清楚

http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components/Kernel/Kernel_Drivers/Camera/VIP.html?highlight=vip

 

问题7:想要修改摄像头的管脚复用,在内核文件中找不到对应的地方。

解答7:AM5728的管脚复用位于uboot里修改。具体位置可参考下面链接

参考链接:https://e2e.ti.com/support/processors/f/791/t/612629

 

问题8:自己画的板子AM5728 eMMC启动卡死问题

解答8:硬件走线问题,之前SD卡也碰到过速率慢的SD卡可以正常启动,速率快的时常出现无法启动的问题,速率越快对走线的要求一般越大,这时候软件只能配合定位问题。

参考链接:https://e2e.ti.com/support/processors/f/791/t/629097 https://e2e.ti.com/support/processors/f/791/t/642425

 

 

问题9:AM5728采用双摄方案,vin3A和vin4A的画质不同

解答9:由于硬件走线不同,vin3a,vin4a的i/o timing参数也不同,需要根据实际的pinmux进行修改,详细路径见链接。

参考链接:https://e2e.ti.com/support/processors/f/791/t/642765

 

问题10: 使用VPE对采集到的YUV图像进行色彩转换

解答10: 链接里有参考例子。

参考链接:https://e2e.ti.com/support/processors/f/791/t/642369

 

问题11: 使用命令yavta调用/dev/video1时 (即打开该文件时)映射的设备会变

解答11: 原本的节点生成先后取决于内核加载驱动时先注册哪个,但是由于注册顺序会受硬件复位的影响,所以导致video设备号不对应了。

参考链接:https://e2e.ti.com/support/processors/f/791/t/648337

 

问题12: AM5728内核调用opencv引起的cmem分配问题

解答12: 修改对应的cmem插件和参数,参考下面的链接。

参考链接:https://e2e.ti.com/support/processors/f/791/t/648337

结语:最后因为我们硬件方案出的板子功耗太大,散热差(也做了很多措施,降频,关闭没使用的模块,但都没有用。可以去我ti论坛主页看我尝试过的一些方法),现在已经转战海思平台。希望这篇blog能对新解除ti或者类似v4l2架构的人能有些启示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值