专栏底层软件怎么读取isx031 内参

怎么读取isx031 内参

已解决
zhuqingliang2023-01-10
47
18

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:

2.当前系统镜像版本:

3.当前天工开物版本:

4.问题定位:

如题帮忙提供读取 isx031内参的方法

5.开发的demo/案例:

6.需要提供的解决方案:

底层软件
征程5
评论3
0/1000
  • 只蓝片羽
    Lv.1

    您好:

    isx031内参读取,需要sensor库中实现相应的读取操作:

    sensor_module_t isx031s = {

    .get_sns_params = get_sns_info,

    };

    之后可通过API调用获取:

    int32_t hb_cam_get_sns_info(uint32_t dev_port, cam_parameter_t *sp, uint8_t type);

    此处sensor库内的get_sns_info实现,需根据具体模组内参排布通过读取EEPROM实现,该排布可咨询模组供应商,或标定写入的标准。

    谢谢~

    2023-01-11
    0
    15
    • zhuqingliang回复只蓝片羽:

      ar0820 已经实现了这个接口, 但是读到的参数全为0, 请问是否正常?

      # /app/bin/vps/vpm/vcs_test -m 11 -v /app/bin/vps/vpm/cfg/cicd_a/sen_cim_isp0_pym0_4k_ar0820/vpm_config.json -p0 -c /app/bin/vps/vpm/cfg/cicd_a/sen_cim_isp0_pym0_4k_ar0820/hb_j5dev.json -i0 -h /app/bin/camera_test/cfg/vio_tool/dump_config.json -r0 -V0 -S0 -s10000
      2023-01-11
      0
    • 费小财回复zhuqingliang:

      如果没有数据的话吗,可能是模组厂商并未写入对应的参数,所以全0也是正常的

      如果模组厂商确认写入了,全0就不正常

      2023-01-11
      0
    • 只蓝片羽回复zhuqingliang:

      您好: 您这个命令默认获取的参数类型为0-基础信息,未获取内参,要获取内参,可以用类型1(内参)或3(基础信息+内参),如下:

      /app/bin/vps/vpm/vcs_test -m 11 -v /app/bin/vps/vpm/cfg/cicd_a/sen_cim_isp0_pym0_4k_ar0820/vpm_config.json -p0 -c /app/bin/vps/vpm/cfg/cicd_a/sen_cim_isp0_pym0_4k_ar0820/hb_j5dev.json -i0 -h /app/bin/camera_test/cfg/vio_tool/dump_config.json -r0 -V0 -S0 -s10000 -N3

      另外这里默认配置下可能会获取失败,需增加eeprom_addr的配置:

      vi /app/bin/vps/vpm/cfg/cicd_a/sen_cim_isp0_pym0_4k_ar0820/hb_j5dev.json

      port_0下增加配置:

      "eeprom_addr":"0x50",

      之后应该可以正常获取,谢谢~

      2023-01-11
      0
    • zhuqingliang回复只蓝片羽:
      1 . ar0820配置 "eeprom_addr":"0x50", 后正常读取数据
      2. 但是 isx031 加 -N 1 或 -N3 会 (core dumped) , eeprom_addr 也改成了 0x50

      dmesg

      问题1 : isx031 eeprom_addr 也是 0x50 吗
      问题2 : eeprom 是一个i2c 设备吗, 能不能用 i2cdetect 到? 能不能用 i2ctransfer 命令读写数据?

      问题3 : isx031 为什么读取失败?

      2023-01-12
      0
    • 费小财回复zhuqingliang:

      isx031的配置文件有加下面的吗

      port_0下增加配置:

      "eeprom_addr":"0x50",

      2023-01-12
      0
    • zhuqingliang回复费小财:

      加了

      2023-01-12
      0
    • 只蓝片羽回复zhuqingliang:

      您好:

      1. 这个地址要看你们所用模组的规格书,或咨询模组供应商确认,另外这个也未必就一定是存在eeprom里,上述只是0820上的情况;

      2. eeprom是部分模组内存内参的i2c设备,如果模组是使用eeprom方式存储,那通过i2c是可以detect到,也能命令读取的;

      3. isx031模组可能是通过内部flash方式存储的,而不是这种显性的eeprom。这里crash可通过gdb查看coredump文件追溯一下,看什么地方报错,另外您的系统版本是什么版本?

      谢谢~

      2023-01-12
      0
    • zhuqingliang回复只蓝片羽:

      怎么查看系统版本

      2023-01-12
      0
    • zhuqingliang回复只蓝片羽:
      2023-01-13
      1
    • zhuqingliang回复费小财:

      宽高 也是全0, 应该是没读取到数据

      2023-01-13
      0
    • wangfenfen回复zhuqingliang:

      读取内参最终调用的就是sensor库的get_sensor_info函数,这个函数sensor库要去实现(针对sensor的特性),目前看这个接口没有实现,所以读取的值不对。要实现这个接口,可以参考其他Sensor库的实现。

      2023-01-13
      0
    • 费小财回复zhuqingliang:

      cat /proc/version 或者/etc/version

      2023-01-13
      2
    • 只蓝片羽回复zhuqingliang:

      您好,如果该sensor库内的这个函数为空,那应该就是还未实现内参读取的支持。这个需要根据sensor特性(请参考手册)做定制开发,增加支持之后,对外API及相应case才可用。

      2023-01-13
      0
    • zhuqingliang回复费小财:

      Linux version 5.10.59-rt52 (otp@otp) (aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #2 SMP PREEMPT_RT Wed Nov 23 15:36:56 CST 2022

      2023-01-13
      1
    • 费小财回复zhuqingliang:

      系统的版本是没有问题的,所以你的这个内参的 参数还是要走sensor厂商获取,或者要到方法自己标定获取了

      2023-01-15
      0
  • 费小财
    Lv.5

    您好,

    内参是由模组厂商提供,或者自己标定获取的

    2023-01-10
    0
    0
  • 新手村
    Lv.4

    您好:

    内参一般会在模组规格书上有写,如果没有,就需要问模组厂家;

    2023-01-10
    0
    0