概述
【CAMERA SENSOR调试流程】
一、查看原理图,确认camera sensor的通讯接口,一般为MIPI居多。一个camera 类型的MIPI接口也不复杂,由这几个信号组成:
【MIPI部分】
用于给CPU发送图像帧数据,分为高速模式和控制模式,高速模式用于图像帧数据发送,电压很低,功耗略高,电压在200mv左右。控制模式,电压在1.2V左右。又分别叫做HS(high speed)模式和LP(lower power)模式。
MIPI_MCLK MCLOCK时钟信号
MIPI_D0P MIPI数据线第1对LANE的差分信号的P极
MIPI_D0N MIPI数据线第1对LANE的差分信号的N极
... ...
MIPI_D3P MIPI数据线第4对LANE的差分信号的P极
MIPI_D3N MIPI数据线第4对LANE的差分信号的N极
/* 一个MIPI一般带1-4路LANE */
MIPI_CKP MIPI通信的时钟信号P极
MIPI_CKN MIPI通信的时钟信号N极
【IIC部分】
CPU用IIC来操作读写camera sensor的寄存器
IIC_SDA IIC数据线
IIC_SCK IIC时钟线
【电源部分】
用来给camera sensor供电,一般有以下几路电压
AVDD 模拟用电压,一般为2.8v
DVDD 数字电压,一般为1.2V
IOVDD 芯片引脚出来的电压,一般为1.8v
【控制部分】
用来控制camera sensor开关机,复位
RST 复位引脚
PWDN power开关引脚
===========================================================================================
【第一步】先确认IIC 设备地址,不要搞错!然后配置使用了哪一路CSI,配置好CSI的clk id,配置好电源,这个一般是写在dts设备树中,以下是一个例子:
sensor0:sensor@0 {
device_type = "sensor0";
sensor0_mname = "ov9281_mipi";
sensor0_twi_cci_id = <2>;
sensor0_twi_addr = <0xC0>;
sensor0_mclk_id = <1>;
sensor0_pos = "rear";
sensor0_isp_used = <1>;
sensor0_fmt = <1>;
sensor0_stby_mode = <0>;
sensor0_vflip = <0>;
sensor0_hflip = <0>;
sensor0_iovdd-supply = <®_dldo2>;
sensor0_iovdd_vol = <1800000>;
sensor0_avdd-supply = <®_dldo3>;
sensor0_avdd_vol = <2800000>;
sensor0_dvdd-supply = <®_eldo2>;
sensor0_dvdd_vol = <1200000>;
sensor0_power_en = <>;
sensor0_reset = <&pio PE 7 1 0 1 0>;
status = "okay";
};
【第二步】复制当前芯片平台的一个sensor驱动,在该基础上修改自己的sensor配置(各平台接口不一样),主要是修改一下几个方法:
1.寄存器初始化列表,这个可以请sensor fae提供。
2.设置sensor的winsize分辨率信息,像素时钟,MIPI速度等。
3.power接口,参考sensor的规格书上下电时序修改好。
4.stream接口,打开关闭图像数据采集传输,直接查阅规格书,设置相应的寄存器即可。
这两个阶段如果碰到IIC,MIPI不通,可以用示波器确认IIC,MIPI信号是否正常产生,示波器测量的幅值如果是在200mv左右,那么说明已经进入了HS模式,在发送视频帧了。
软件的基本操作就是【上电/power ON】-->【开启视频流/stream ON】。以下举例ov9281_mipi.c驱动代码:
代码参考:sources/kernel/driver/sensor/ov9281_mipi.c
【第三步】安卓camera.cfg配置
这里的配置各个平台方案不一样,主要是配置前置后置,设备节点信息。以下以全志平台为例:
文件参考:sources/kernel/driver/sensor/camera.cfg
最后
以上就是魁梧路灯为你收集整理的摄像头驱动CAMERA SENSOR调试流程的全部内容,希望文章能够帮你解决摄像头驱动CAMERA SENSOR调试流程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复