海思平台-------------------------------------------------

本文档简述了如何在海思平台(以原版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 笔记相关推荐

  1. 海思HI3516 MIPI屏幕调试笔记

    1:参考资料-<HIMPP媒体处理软件开发参考>-<屏幕对接指南>-<屏幕时钟时序计算器>-<京东方屏幕驱动>: 2:采用sample中的vdec例程进 ...

  2. 关于 海思Hi3516横竖屏Qt使用QGraphicsScene代理窗口强制旋转导致弹窗旋转与阴影不显示的 解决方案

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128592671 红胖子(红模仿)的博文大全:开发技术集 ...

  3. 海思Hi3516使用srs-librtmp推送视频流至阿里直播平台

    srs-librtmp可以直接推送H264格式的rtmp数据流,所以可以将海思HI3516通过VENC编码后的H264裸流数据直接通过srs-librtmp发送到阿里直播平台. 这里需要注意的是srs ...

  4. 我的内核学习笔记16:海思Hi3516平台PWM使用记录

    本文介绍海思平台 Hi3516 的 PWM 使用,包括手册介绍及用户空间控制. 一.PWM 概览 芯片一共提供2路独立的 PWM,分别以 PWM0 和 PWM1 称呼.PWM 时钟有3种选择:3MHz ...

  5. 我的内核学习笔记15:海思Hi3516平台GPIO使用记录

    本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...

  6. gpio复用 海思_我的内核学习笔记15:海思Hi3516平台GPIO使用记录

    本文介绍海思平台 Hi3516 的 GPIO 使用,包括手册介绍及用户空间控制. 一.GPIO概览 Hi3516 芯片支持 12 组GPIO(General Purpose Input/Output) ...

  7. 海思3559:BT656调试笔记

    前言   海思3559a的sdk例子是没有提供BT1120和BT656视频接入的,但实际上硬件是可以支持接入的.不过前提是只支持逐行方式输入,不支持隔行视频,如果想输入PAL制式的隔行视频,请先用芯片 ...

  8. 海思HI3516移植使用AP6181 BCM43362

    备注 平台:Hi3516dv300 WiFi:AP6181 (AP6XXX应该都差不多,我猜的):SDIO2.0接口(时钟设置在50M左右,其他 SDIO3.0的设置在150M左右,电压设置在1.8V ...

  9. 海思Hi3516智能分析引擎应用介绍

    安防监控正在步入高清化.智能化时代,海思推出的Hi3516正是针对高清IPCamera的一款专业高端SOC芯片,除了1080p@30fpsH.264多码流编码.优异的ISP和编码视频质量优势外,其高性 ...

最新文章

  1. 关于tomcat无法启动问题详解
  2. [导入]几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
  3. webpack增量打包多页应用
  4. 事件处理之一:两种方式:监听器与回调
  5. Iptables-Fail2ban处理bind 非法***
  6. char*转wstring
  7. spring(四):spring与mybatis结合
  8. 服务器提交协议冲突 Section=ResponseStatusLine 的解决办法
  9. 学术词汇 | Ablation Test or Ablation Experiment
  10. 戴尔完成600亿美元与EMC并购交易 戴尔科技正式成立
  11. broker druid 查询_即时查询工具| Druid
  12. 子网掩码,可变长子网掩码,ABC类IP网络地址详解
  13. mysql删除盘点表_千方百剂系统常见问题及解决方法      0871-64648361
  14. 各国货币json文件
  15. .NET中对于日文输入法的控制
  16. Linux 0.11-shell 程序读取你的命令-43
  17. 变频电源是否可以节能呢
  18. docer启动一个容器时的过程
  19. 为什么利率上升,债券价格下降?
  20. 计算机科学之父-艾伦·麦席森·图灵的传奇人生

热门文章

  1. 快速打开命令行方法集合
  2. 汉堡大学计算机科学,汉堡大学
  3. 综述笔记-多无人机多目标任务分配1
  4. http://blog.csdn.net/anxpp/article/details/52108238
  5. int, long, long long类型的范围
  6. ip2region 使用总结
  7. numpy学习笔记:np.zeros应用——生成三通道全黑Mask(蒙版)
  8. no module named ‘lap‘
  9. Ls-Dyna 软件简介 (1)
  10. Qt程序报错:Socket notifiers cannot be enabled or disabled from another thread