专栏底层软件cim ipi0 width error

cim ipi0 width error

已解决
ghy05042022-11-28
48
16

程序运行几秒钟后,产生错误 -6504,dmesg :cim ipi0 width error 。hbplayer 能看见图像,但是图像有明显的错位。颜色也不对。如果把绿线左边的移动到图片最右边,图像应该就正确了。求助:如何检测实际接收到的width值? imx390 厂家确定是 1920*1080

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

    您好:

    请问您这边是使用的RX几?上述答复中已有所描述:

    从截图与描述上看cim报width error,可参考《J5-Sensor接入开发手册》中8.4节。

    此处首先怀疑是sensor的实际输出分辨率与CIM上配置width不匹配,"imx390厂家确定是1920*1080",可让厂家提供寄存器直接查看确认。

    上述cim/cimdma的dump辅助查看命令需要在您的case运行时,另起窗口同时查看,查看的值为动态变化值,可多次cat查看最大分辨率辅助确认。

    谢谢~

    2022-11-28
    0
    4
    • ghy0504回复只蓝片羽:

      谢谢回复!那应该就是0x780*0x438 也就是 1920*1080了。也就是说sensor的分辨率是没有错的 ?那又是哪里出错了呢?麻烦指导下

      2022-11-28
      0
    • 只蓝片羽回复ghy0504:

      您好:

      您这个命令是查看CIM配置的(json中读取后配置的),要看收到的,应该grep DBG,如下:

      cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/regdump && dmesg -c |grep DUMP |grep IMG |grep IPI

      该值为动态(读时的瞬时),请多次查看可能找到最大值接近实际分辨率,辅助定位。
      2022-11-28
      0
    • 只蓝片羽回复只蓝片羽:

      抱歉,更正: cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/regdump && dmesg -c |grep DUMP |grep DBG |grep IPI

      2022-11-28
      0
    • ghy0504回复只蓝片羽:

      运行起来确认 是 0x781, 也就是1921. 如果这样是否就说明是sensor 输出有问题呢? 很奇怪的是,这个款相机 再有9295和9296的时候,我们是调通过的。现在没有加串器和解串器就一直不通。

      2022-12-06
      0
  • 路大isss
    Lv.1
    请检查下图红色框住的项目,另外操作图2看一下。
    2022-11-28
    0
    3
    • ghy0504回复路大isss:

      谢谢回复!你们回复的真快啊!

      如下:该怎么修改呢 ?

      2022-11-28
      0
    • ghy0504回复路大isss:

      我分别接RX0 和RX3,分别运行

      cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/regdump && dmesg -c |grep DUMP |grep IMG |grep IPI

      cat /sys/devices/platform/soc/47010000.cam_sys/47180000.cim_dma/regdump && dmesg -c |grep DUMP |grep DBG |grep IPI

      横坐标 最大值都是 0x781,也就是1921 ,这里会不会有问题?我看文档embeded 的时候会比实际值多1,会不会与embeded 有关系呢 ?

      2022-11-28
      0
    • 只蓝片羽回复ghy0504:

      您好,此处通过dump查看得实际收到数据宽为0x781(1921),一般embedded data是会行数据多1,此处是行像素多1,应该主要还是排查Sensor输出实际分辨率的配置,看是否为sensor配置有误。

      2022-12-05
      0
  • 费小财
    Lv.5

    您好,

    上面你看都是配置的信息,实际上接收的数据cim通路只能通过ISP来查看的,

    ISP查看需要确认你的设备接入通路和ISP的通路,还是麻烦提供下这些参数,方便给你提供对应的寄存器来查看

    2022-11-28
    0
    3
    • ghy0504回复费小财:

      谢谢!由于模组自带isp 输出的是yuv422,所有我就认为可以不用isp,不知道这么理解对不对?以下是cim配置:

      {

      "pipeline0":{

      "cim": {

      "input": {

      "mipi":

      {

      "enable": 1,

      "width": 1920,

      "height": 1080,

      "format": 30,

      "rx_index": 0,

      "vc_index": 0,

      "channels": 1,

      "raw16_splict": 0,

      "dbg_clear": 0,

      "y_uv_swap": 0,

      "tag_enable": 0,

      "function": {

      "enable_frame_id": 1,

      "enable_bypass": 0,

      "enable_pattern": 0,

      "hdr_mode": 0,

      "set_init_frame_id": 1,

      "set_bypass_channels": 1

      }

      }

      },

      "output": {

      "pym": {

      "pym0_en": 1,

      "pym1_en": 0

      },

      "isp0": {

      "isp_ch0": 0,

      "isp_ch1": 0,

      "isp_ch2": 0,

      "isp_ch3": 0

      },

      "isp1":{

      "isp_ch0": 0,

      "isp_ch1": 0,

      "isp_ch2": 0,

      "isp_ch3": 0

      }

      }

      }

      }

      }

      还是说必须加上ISP0?

      2022-11-28
      0
    • 费小财回复ghy0504:

      cim不能下ddr的,你要是接在rx0 rx1的话,是必须要走ISP的,0/1可以随便选择的

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

      建议的通路是不走ISP的,走cimdma下ddr

      2023-01-15
      0
  • 新手村
    Lv.4
    你好:
    CIM这边只能只能报height或者width error,cnt计数是实时,没办法准备获取到真正接收的height和width值;ISP支持active width和height值的计数,因此你可通过ISP寄存器进行查看;
    2022-11-28
    0
    1
    • 新手村回复新手村:

      之前忘记说了,CIM的debug寄存器是实时记录收到的行数和列数,如果是width error,可以直接读debug寄存器知道收到width数值,多读几次就能获取准确的值,但是height就没办法了;

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

    您好,

    你用的是ISP0,还是ISP1的

    你看看 cat /proc/hb_isp 或者cat /proc/hb_isp_hw1

    然后根据你的ISP 通过devmem来获取对应接收到的寄存器值

    具体的信息要跟你跑的通路来查,你可以先share cat /proc/hb_isp 或者cat /proc/hb_isp_hw1 这个结果

    2022-11-28
    0
    0