没有合适的资源?快使用搜索试试~ 我知道了~
首页高通camera senseor驱动参数介绍
驱动常见问题)sensor不下电的方法 一般camera很受温度的影响:参考文档80_NL239_33SC 方法1.找到msm_sensor.c文件--------msm_sensor_power_down函数,然后将return msm_camera_power_down(power_info, sensor_device_type, sensor_i2c_client); 改成return 0; 然后找到对应的sensor_lib.h驱动文件:将下电都干掉。这样就可以一直上电,量到sensor的电压了 方法二: 找到msm_sensor.c文件--------msm_sensor_power_up函数,然后for (retry = 0; retry < 3; retry++) 将这里的3改成一个很大的数 值,这样就可以不停的调用msm_camera_power_up与msm_sensor_check_id两个函数。 驱动准备工作需要: IMX376 sensor spec, sensor settings, application notes imx376的application note,register map的资料以及min line cnt 、vert offset、max line cnt等相关参数 驱动中常见错误sof错误: 1.mipi通道错误。 2.settle_cnt值 3.时钟问题vt_pixel_clk,一般是这个值设置太小了。 4.开流过早、关流不彻底问题。
资源详情
资源评论
资源推荐
(驱动常见问题)sensor不下电的方法
一般camera很受温度的影响:参考文档80_NL239_33SC
方法1.找到msm_sensor.c文件--------msm_sensor_power_down函数,然后将return msm_camera_power_down(power_info,
sensor_device_type,
sensor_i2c_client); 改成return 0;
然后找到对应的sensor_lib.h驱动文件:将下电都干掉。这样就可以一直上电,量到sensor的电压了
方法二:
找到msm_sensor.c文件--------msm_sensor_power_up函数,然后for (retry = 0; retry < 3; retry++) 将这里的3改成一个很大的数
值,这样就可以不停的调用msm_camera_power_up与msm_sensor_check_id两个函数。
驱动准备工作需要:
IMX376 sensor spec, sensor settings, application notes
imx376的application note,register map的资料以及min line cnt 、vert offset、max line cnt等相关参数
驱动中常见错误sof错误:
1.mipi通道错误。
2.settle_cnt值
3.时钟问题vt_pixel_clk,一般是这个值设置太小了。
4.开流过早、关流不彻底问题。
驱动注意事项:
1. 前置默认cameraid 为2 后置默认cameraid 为0和1
black level校准: 打开chromatix软件,
然后生成header--生成header 这样的话然后找到common的文件:搜索关键词:/* Black Level Subtract & Scale */ 在他的上面就是
black level生成的值,然后将其生成的值拷贝到自己的效果文件当中去。
如何核对out_info信息:
adb logcat | find "camif"
下面是对sensor的讲解:
/*============================================================================
Copyright (c) 2014-2015 Qualcomm Technologies, Inc. All Rights Reserved.
Qualcomm Technologies Proprietary and Confidential.
============================================================================*/
#include <stdio.h>
#include "sensor_lib.h"
#include <utils/Log.h>
#define SENSOR_MODEL_NO_OV5670_30010A3 "ov5670_chenhl"
#define OV5670_30010A3_LOAD_CHROMATIX(n) \
"libchromatix_"SENSOR_MODEL_NO_OV5670_30010A3"_"#n".so"
static sensor_lib_t sensor_lib_ptr;
#define SNAPSHOT_PARAM 1
#define PREVIEW_PARAM 1
#define VIDEO_1080P_PARAM 0
#define LOG_TAG "OV5670"
/*问题一:SENSOR_I2C_MUX不知道是什么;
msm_sensor_power_setting结构体有四个成员:供电的类型,供电的引脚,供电的值,延时时间。
*/
static struct msm_sensor_power_setting ov5670_30010a3_power_setting[] = {
{
.seq_type = SENSOR_VREG, //PMIC供电
.seq_val = CAM_VIO, //上的是VIO这一路电(IO数字)
.config_val = 0, //值为0
.delay = 1, //延时为1ms
},
{
.seq_type = SENSOR_VREG, //PMIC供电
.seq_val = CAM_VANA, //模拟电压
.config_val = 0, //值为0
.delay = 1,
},
{
.seq_type = SENSOR_VREG,
.seq_val = CAM_VAF, //马达的电压
.config_val = 0,
.delay = 5,
},
{
.seq_type = SENSOR_GPIO, //GPIO控制电压
.seq_val = SENSOR_GPIO_STANDBY, //
.config_val = GPIO_OUT_LOW, //输出为低
.delay = 1,
},
{
.seq_type = SENSOR_GPIO,
.seq_val = SENSOR_GPIO_STANDBY,
.config_val = GPIO_OUT_HIGH,
.delay = 5,
},
{
.seq_type = SENSOR_GPIO,
.seq_val = SENSOR_GPIO_RESET, //复位引脚
.config_val = GPIO_OUT_LOW,
.delay = 5,
},
{
.seq_type = SENSOR_GPIO,
.seq_val = SENSOR_GPIO_RESET,
.config_val = GPIO_OUT_HIGH,
.delay = 10,
},
{
.seq_type = SENSOR_CLK, //时钟信号
.seq_val = SENSOR_CAM_MCLK, //
.config_val = 24000000, //一般高通平台供电都是24Mhz
.delay = 10,
},
{
.seq_type = SENSOR_I2C_MUX, //i2c线
.seq_val = 0,
.config_val = 0,
.delay = 0,
},
};
/*问题二是sensor ID,datasheet 72页不对应 地址为两个字节*/
static struct msm_camera_sensor_slave_info sensor_slave_info = {
/* Camera slot where this camera is mounted */
.camera_id = CAMERA_0, //引用的dtsi中的camera_0
/* sensor slave address */
.slave_addr = 0x6D, //从机通信的地址是0x6d
/* sensor i2c frequency*/
.i2c_freq_mode = I2C_FAST_MODE, //i2c频率是快速模式,可达400kbit/s
/* sensor address type */
.addr_type = MSM_CAMERA_I2C_WORD_ADDR,//地址类型是word型,两字节
/* sensor id info*/
.sensor_id_info = { //sensor的id信息
/* sensor id register address */
.sensor_id_reg_addr = 0x300b, //sensor ID的寄存器的地址
/* sensor id */
.sensor_id = 0x5670, //ID
},
/* power up / down setting */
.power_setting_array = { //上电
.power_setting = ov5670_30010a3_power_setting,
.size = ARRAY_SIZE(ov5670_30010a3_power_setting),
},
.is_flash_supported = SENSOR_FLASH_SUPPORTED,//是否支持闪光灯
};
/*sensor初始化参数,camera的类型(2D或者其他),位置(前置或者后置),挂载的角度(90代表后置)*/
static struct msm_sensor_init_params sensor_init_params = {
.modes_supported = CAMERA_MODE_2D_B, //支持的模式是2D
.position = BACK_CAMERA_B, //后置
.sensor_mount_angle = SENSOR_MOUNTANGLE_90,//后置的都是90,前置的是270
};
/*输出的格式,数据传输方式,原图输出的raw格式*/
static sensor_output_t sensor_output = {
.output_format = SENSOR_BAYER, //Bayer格式图像
.connection_mode = SENSOR_MIPI_CSI, //通过MIPI传送数据
.raw_output = SENSOR_10_BIT_DIRECT, //数据格式是10位
};
/*问题三:在数据手册82页查到有两个地址该怎么选?*/ //同上,两个字节的
static struct msm_sensor_output_reg_addr_t output_reg_addr = {
.x_output = 0x3808, //有效宽度
.y_output = 0x380a, //有效高度
.line_length_pclk = 0x380c, //HTS
.frame_length_lines = 0x380e, //VTS
};
/*曝光控制:问题四:前面两个成员是什么意思,见datashet66页*/
static struct msm_sensor_exp_gain_info_t exp_gain_info = {
剩余17页未读,继续阅读
weber00
- 粉丝: 4
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1