hongwazi

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi  发布于  2016-11-03 18:45:10
采纳率 0%
14个问答
7521

海思 ISP sensor驱动

 
本帖最后由 hongwazi 于 2016-11-4 09:01 编辑

我的平台:hi3519v100

最近看了3天hi3519 ISP驱动整个架构,现在已经是云里雾里了,特整理了一些问题,望各位好心人指点一二!


1.如果设置sensor帧率 /分辨率?
cmos_set_image_mode(ISP_CMOS_SENSOR_IMAGE_MODE_S *pstSensorImageMode)
    函数从已经配置好的数组选出一组配置(width,heigth,fps),然后把该模式设置给一个全局变量。文档中说返回值为0,那么将重新调用sensor_init函数,这样配置就可以配置到sensor。但是这个pstSensorImageMode是谁初始化?

cmos_fps_set(HI_FLOAT f32Fps, AE_SENSOR_DEFAULT_S *pstAeSnsDft)
    这个函数的输入参数f32Fps,只是修改了pstAeSnsDft->f32Fps = f32Fps这样一个全局变量,根本就没有去执行sensor配置。它这个帧率是如何生效的?以及这个f32FPS到底是谁传给这个函数的?用户如何配置sensor帧率?难道也是重新执行sensor_init?



2.回调函数设置的结果如何生效?
对于xxx_set_xxx(*)函数,如果输入参数是指针,那么可以将设置到值带回给ISP,如果不是一个指针,那么最终设置的值是怎么告诉ISP的?
   比如cmos_gains_update(HI_U32 u32Again, HI_U32 u32Dgain)



3.sensor寄存器功能如何告诉ISP是什么功能的?
cmos_get_sns_regs_info(ISP_SNS_REGS_INFO_S *pstSnsRegsInfo)
把sensor的寄存器告诉给ISP,但是ISP怎么知道每个寄存器是什么功能呢?


有没有人呀,熟悉的可以请教下,不熟悉的大家一起讨论嘛?谢谢!!!
我来回答
回答7个
时间排序
认可量排序

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi 2016-11-04 11:04:48
认可0
有人对这个ISP整个架构比较清楚的吗?

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi 2016-11-04 11:05:22
认可0
大家一起讨论下呀,:lol:lol:lol:lol

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi 2016-11-04 11:46:20
认可0
hisi isp sensor驱动如何去设置帧率以及分辨率的问题解答如下:
以imx117为例:
1.首先在imx117_cmos.c里面定义一个全局的模式数组
const IMX117_VIDEO_MODE_TBL_S g_astIMX117ModeTbl[IMX117_MODE_BUTT] = {
   
    {72000000, 0x3E8, 0x249F00, 2400, 30,  "4K2K_8CH_12BIT_30FPS"  },
    {72000000, 0x339, 0x2746B0, 3120, 28,  "12M_8CH_12BIT_28FPS"   },
    {72000000, 0x23C, 0x24A860, 4200, 30,  "4K2K_8CH_12BIT_30FPS"  },
    {72000000, 0x15E, 0x4950C,  858,  240, "720P_10CH_10BIT_240FPS"},
    {72000000, -1,    -1,       -1,   -1,  "NOT SUPPORT"           },
    {72000000, 0x16c, 0x4950C,  825,  240, "720P_8CH_10BIT_240FPS" },
    {72000000, 0x214, 0x92040,  1120, 120, "1080P_8CH_12BIT_120FPS"},   
};

2.然后在定义一个全局的模式变量HI_U8 gu8SensorImageMode = IMX117_MODE0;从中选出用户期望的模式

3.在imx117_sensor_ctrl.c中定义一个模式和寄存器的数组
static const HI_U16 gs_au16SensorCfgSeq[][IMX117_MODE_BUTT+1] = {
//    M_0    M_0A   M_1   M_1D    M_2  M_4A    M_11A    ADDR            
    { 0x11,  0x11,  -1,   0x00,   -1,  0x11,   0x11,    0x0003 },           
    { 0x80,  0x00,  -1,   0xb8,   -1,  0x48,   0x40,    0x0004 },
    { 0x07,  0x47,  -1,   0x81,   -1,  0x21,   0x15,    0x0005 },
    { 0x00,  0x00,  -1,   0x00,   -1,  0x00,   0x00,    0x0006 },
    { 0x00,  0x00,  -1,   0x00,   -1,  0x00,   0x00,    0x0007 },

然后根据上面的模式变量可以选中需要初始化的寄存器序列,在sensor_init中初始化为期望的模式

hang150

0个粉丝

0

问答

0

专栏

0

资料

hang150 2016-11-11 14:54:48
认可0
:handshake:handshake sample_comm_isp.c里面有部分配置,我也云里雾里,不清楚怎么配置其他demo中没有的格式

hongwazi

2个粉丝

14

问答

0

专栏

8

资料

hongwazi 2016-11-18 13:45:53
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=41166&ptid=13244]hang150 发表于 2016-11-11 14:54[/url]
sample_comm_isp.c里面有部分配置,我也云里雾里,不清楚怎么配置其他demo中没有的格 ...[/quote]

是呀,我现在在调试其他东西,后期等到摄像头回来才调试,后期可以一起交流下!

stoneLinux

0个粉丝

3

问答

0

专栏

0

资料

stoneLinux 2018-09-16 18:20:13
认可0
感谢楼主的无私奉献和辛勤付出!
快2年了,楼主对ISP sensor驱动这些东西应该很熟悉了吧,楼主有最新的大招传授一下么?

qn1551776174

0个粉丝

1

问答

0

专栏

0

资料

qn1551776174 2019-04-18 14:05:40
认可0
各位大神问一下,是不是HI3531DV100没有ISP部分呢
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区