海思Hi3516新增sensor imx214 笔记
海思平台-------------------------------------------------
本文档简述了如何在海思平台(以原版SDK为例)更换一块新屏幕和新sensor,并完成采集显示;
调试sensor--VI------------------------------------------
阅读手册可知imx214的设备地址为0x20;
1:首先判断主控与sensor IIC通讯是否成功,可以使用i2cdetect -l来查看启用了几路I2C,再对照原理图查看自己的sensor挂载在哪一路总线上;样例挂载在I2C0上,可以读一下设备ID以判断I2C通讯是否正常,Sony的sensor设备id一般存放在0x16和0x17这两个寄存器中--------i2c_read 0 0x34 0x0016 0x0017 2 1,读出正确说明I2C读取没问题
注:如果此处的iic一直通讯不成功可以按如下步骤排查问题
(1)检查sensor上电是否正常;
(2)使用万用表测量空闲时的SCL以及SDA,应都为高电平,因为空闲状态下,SCL和SDA均应为高电平以实现线与;如果不全是高电平,则可能线路断了,可以用万用表测一下线路是否正常;
(3) 如果第一步正常,则在读ID的时候使用示波器测量一下SCL以及SDA的波形,如果仍有波形但依旧读取失败,则对照原理图以及pcb看一下SCL和SDA有没有接错。
补充:在终端直接操作gpio
海思GPIO转化公式:例如GPIO_4_0==>4*8+0=32
cd /sys/class/gpio
echo 32 > export
cd gpio32
echo out > direction
echo 1 > value
cat value
若出现devices busy则cat /sys/kernel/debug/gpio
如果gpio口被占用,则要修改设备树;
2:IIC测试正常后就可以编写驱动程序了,这里需要用到的资料有:
《MIPI使用指南》《HIMPP开发参考》《sensor调试指南》《硬件原理图》;
使用的是sample里的vio例程,路径为:
HI3526_AR/smp/a7_linux/mpp->sample->vio这里选case 9
新增一款imx214
1:首先增加imx214驱动文件,路径为:
/HI3526_AR/smp/a7_linux/mpp/component/isp/user/sensor,
主要修改ctrl.c文件中的寄存器配置,此文件主要是底层控制,使用iic来向sensor的相应寄存器写入相应的数据,cmos.c主要定义上层以及回调函数;
注意:新增sensor后要重新生成新的驱动库,需要修改一下Makefile以及重新make一下生成新的驱动,Make的路径:
/HI3526_AR/smp/a7_linux/mpp/component/isp/user先make clean再make生成驱动;
至此,驱动添加成功。
2:接着修改sample中的vio例程,实质上调用的都是common的的程序,主要修改sample_comm_vi.c以及sample_comm_isp.c;
(1)sample_common.h中添加,以及加载相应的库
(2)首先获得sensor的类型,这里可以看到是从Makefile.param中获取到sensor type的;
Makefile.Param
(3)sample_comm_vi_getsize里添加一个case,sample_comm_sys_getpicsize也自己添加一下(如果有新的分辨率的话)
(4)
sample_comm_vi_startvi-->sample_comm_vi_startmipi-->sample_comm_vi_setmipiattr-->sample_comm_vi_getcomboattrbysns中新增一条case,这里是4lane,标号为0,1,2,3,如果只有2lane则为0,1,-1,-1
(5)sample_comm_vi_startvi-->sample_comm_vi_createvi-->sample_comm
_createsinglevi-->sample_comm_vi_satrtdev-->sample_comm_vi_getattrbysns中新增一个case
(6)sample_comm_vi_startvi中重点看一下sample_comm_createisp函数--->sample_comm_vi_startisp-->sample_comm_vi_getpipesttrbysns添加一个case,这里主要设置管道的属性
接着是sample_comm_isp_getispttrbysns同样添加一条case,主要是isp的一些公共属性
最后是注册一下回调函数
sample_comm_isp_sensor_register_callback-->sample_comm_isp_getsensob;
至此VI部分更改完成。
注意:
1:海思平台的sensor驱动是应用层驱动,目的是为了方便快速更换sensor;
海思Hi3516新增sensor imx214 笔记相关推荐
- 海思HI3516 MIPI屏幕调试笔记
1:参考资料-<HIMPP媒体处理软件开发参考>-<屏幕对接指南>-<屏幕时钟时序计算器>-<京东方屏幕驱动>: 2:采用sample中的vdec例程进 ...
- 关于 海思Hi3516横竖屏Qt使用QGraphicsScene代理窗口强制旋转导致弹窗旋转与阴影不显示的 解决方案
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128592671 红胖子(红模仿)的博文大全:开发技术集 ...
- 海思Hi3516使用srs-librtmp推送视频流至阿里直播平台
srs-librtmp可以直接推送H264格式的rtmp数据流,所以可以将海思HI3516通过VENC编码后的H264裸流数据直接通过srs-librtmp发送到阿里直播平台. 这里需要注意的是srs ...
- 我的内核学习笔记16:海思Hi3516平台PWM使用记录
本文介绍海思平台 Hi3516 的 PWM 使用,包括手册介绍及用户空间控制. 一.PWM 概览 芯片一共提供2路独立的 PWM,分别以 PWM0 和 PWM1 称呼.PWM 时钟有3种选择:3MHz ...
- 我的内核学习笔记15:海思Hi3516平台GPIO使用记录
本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...
- gpio复用 海思_我的内核学习笔记15:海思Hi3516平台GPIO使用记录
本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...
- 海思3559:BT656调试笔记
前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的,但实际上硬件是可以支持接入的.不过前提是只支持逐行方式输入,不支持隔行视频,如果想输入PAL制式的隔行视频,请先用芯片 ...
- 海思HI3516移植使用AP6181 BCM43362
备注 平台:Hi3516dv300 WiFi:AP6181 (AP6XXX应该都差不多,我猜的):SDIO2.0接口(时钟设置在50M左右,其他 SDIO3.0的设置在150M左右,电压设置在1.8V ...
- 海思Hi3516智能分析引擎应用介绍
安防监控正在步入高清化.智能化时代,海思推出的Hi3516正是针对高清IPCamera的一款专业高端SOC芯片,除了1080p@30fpsH.264多码流编码.优异的ISP和编码视频质量优势外,其高性 ...
最新文章
- 关于tomcat无法启动问题详解
- [导入]几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
- webpack增量打包多页应用
- 事件处理之一:两种方式:监听器与回调
- Iptables-Fail2ban处理bind 非法***
- char*转wstring
- spring(四):spring与mybatis结合
- 服务器提交协议冲突 Section=ResponseStatusLine 的解决办法
- 学术词汇 | Ablation Test or Ablation Experiment
- 戴尔完成600亿美元与EMC并购交易 戴尔科技正式成立
- broker druid 查询_即时查询工具| Druid
- 子网掩码,可变长子网掩码,ABC类IP网络地址详解
- mysql删除盘点表_千方百剂系统常见问题及解决方法 0871-64648361
- 各国货币json文件
- .NET中对于日文输入法的控制
- Linux 0.11-shell 程序读取你的命令-43
- 变频电源是否可以节能呢
- docer启动一个容器时的过程
- 为什么利率上升,债券价格下降?
- 计算机科学之父-艾伦·麦席森·图灵的传奇人生
热门文章
- 快速打开命令行方法集合
- 汉堡大学计算机科学,汉堡大学
- 综述笔记-多无人机多目标任务分配1
- http://blog.csdn.net/anxpp/article/details/52108238
- int, long, long long类型的范围
- ip2region 使用总结
- numpy学习笔记:np.zeros应用——生成三通道全黑Mask(蒙版)
- no module named ‘lap‘
- Ls-Dyna 软件简介 (1)
- Qt程序报错:Socket notifiers cannot be enabled or disabled from another thread