专栏底层软件J5的rx0/rx1通道的抓取mipi数据的demo程序

J5的rx0/rx1通道的抓取mipi数据的demo程序

已解决
Leonard2023-01-13
39
29

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

1.硬件获取渠道:地平线J5板

2.当前系统镜像版本:Linux version 5.10.59-rt52 (rk3568@ubuntu) (aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #39 SMP PREEMPT_RT Thu Dec 8 15:56:33 CST 2022

4.问题定位:我可以跑通rx0和rx1接相机的案例,我的问题是有demo程序可以直接抓取rx0/1到isp的数据么?是不是只有vcs_test这个?

5.开发的demo/案例:森云_isx031进96712给J5再tx1给96717后9296解析出来显示。硬件测量到了9296给J5的mipi数据波形

6.需要提供的解决方案:给个抓9296-rx0-isp的isx031_1536yuv的demo程序,soc内部链路复杂,vpm不太好搞。
底层软件
征程5
评论8
0/1000
  • 新手村
    Lv.4

    你的实际场景是什么,能画个模块图说明一下吗,另外你现在碰到什么问题了? ISX031是YUV sensor,走RX0/1只能online给PYM,不能到ISP

    2023-01-13
    0
    16
    • Leonard回复新手村:

      kaikai你好:

      场景是bypass功能的实现。 我目前想两种方案,一种是yuv数据,一种是raw数据。

      1.解析我ar0233->96712->rx1->tx0->96717f->9296->rx0[[解串器接收解析后回传soc(9296或者96712)]].我通路应该是通的可以测量到9296输出给soc的mipi数据波形,但是用vcs_test抓取数据是报-5001

      2.森云isx031->96712->rx3->tx1->9296->rx0,可以测量到9296输出给soc的mipi数据波形,抓取数据又错误,判断我vpm不对,在想怎么按你说的改。

      3.森云isx031->96712->rx3->tx1->96717f->另一个板子的96712->rx3.这个在调试中

      2023-01-15
      1
    • 新手村回复Leonard:

      1.-5001是ISP获取数据报错,所以可以执行cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/fps看下,RX0有收到数据,如果有,就查下ISP的json配置;

      2023-01-15
      0
    • 新手村回复Leonard:
      2. 是yuv通路,先执行cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/fps,看看RX0有没有收到数据,这路抓取数据的话,需要从pym获取;把rx0的那里修改json配置如下:
      2023-01-15
      0
    • 新手村回复Leonard:

      3. RX3 bypass出去再loopback rx3,同一个RX bypass之后再loopback回来,我们内部应该也没验证过这种通路,所以没办法给你很好的建议,请知悉;

      2023-01-15
      0
    • Leonard回复新手村:

      是用的两块板子,一个J5的rx3收到后poc线传给另一块的des解析进入rx3。接收的那个板子目前报这个错误。

      I/ ( 2296): [16741.328125]mgr create done! pipeline_id = 0, buffer_type = 23

      I/ ( 2296): [16741.328125][cim_dma hal]:cim_dma_capture_buf_mgr_init done.

      I/ ( 2296): [16741.328125][cim_dma hal]:pipe(0) cim_dma_entity_init out.

      I/ ( 2296): [16741.328125][hb_i2c]:[hb_vin_i2c_init][58]bus 1 cam_bus_cnt[bus] 2 cam_fd[bus] 7

      I/ ( 2296): [16741.330078][cam utility]:/dev/port_0 success sensor_info->sen_devfd 17===

      E/ ( 2296): [16741.330078][vin_gpio]:[vin_gpio_export][40]write fail! export gpio fail! ret = -1

      E/ ( 2296): [16741.330078][isx031]:gpio export fail

      I/ ( 2296): [16741.330078][mipi host]:mipi host3 init begin

      I/ ( 2296): [16741.330078][mipi host]:mipi host3 init end

      I/ ( 2296): [16741.330078][hb mipi]:hb_vin_mipi_init 3 end

      I/ ( 2296): [16741.330078][VIN]:[hb_vin_init][1063]vps cam init done.Time cost(6)ms.

      I/ ( 2296): [16741.330078][VIN]:[hb_vin_start][1156]cam port0 start begin

      I/ ( 2296): [16741.330078][cim_dma hal]:pipe(0)cim_dma_entity_start in !

      I/ ( 2296): [16741.335938][cim_dma hal]:pipe(0)cim_dma_entity_start CIM_IOC_STREAM Done !

      I/ ( 2296): [16741.335938][mipi host]:mipi host3 start begin

      E/ ( 2296): [16744.335938][mipi host]:!!! host3 MIPIHOSTIOC_START error, ret = -1

      E/ ( 2296): [16744.335938][hb mipi]:!!!Can't start mipi host3 -2000

      E/ ( 2296): [16744.335938][VIN]:[hb_vin_start][1207]!!!hb_vin_mipi_start -2000

      2023-01-15
      0
    • Leonard回复新手村:

      您好,我目标是想显示tx->96717f后出去的数据,目前没有车机就想着用解串器再解析回soc。

      2023-01-15
      0
    • 新手村回复Leonard:

      2个J5的RX3,那可以的,我之前以为是loopback,同一个J5;

      2023-01-15
      0
    • 新手村回复Leonard:

      你这个报错是RX3没检查到sensor输出信号,也就是说没收到数据;是B板J5用来接收bypass之后的log吧?A板带isx031 sensor的能正常跑起来吧,cim.json看下,我看看是否打开了bypass配置

      2023-01-15
      0
    • Leonard回复新手村:

      我确定是开了的,可以测量到tx1给到96717f的mipi数据波形。如下是A板的cim_config.json

      "pipeline0":{

      "cim_dma": {

      "input": {

      "mipi": {

      "enable": 1,

      "width": 1920,

      "height": 1536,

      "format": 30,

      "vc_index": 0,

      "rx_index": 3,

      "raw16_splict": 0,

      "dbg_clear": 0,

      "y_uv_swap": 0,

      "tag_enable": 0,

      "function": {

      "enable_frame_id": 1,

      "enable_DMA": 1,

      "pack_mode": 0,

      "enable_bypass": 1,

      "enable_id_decoder": 0,

      "set_init_frame_id": 1,

      "set_bypass_channels": 1

      }

      }

      },

      "output": {

      "ddr": {

      "enable": 1,

      "format": 30,

      "width": 1920,

      "height": 1536,

      "buf_num": 6,

      "cached": 0,

      "use_ispbuf": 0

      }

      }

      }

      },

      2023-01-15
      0
    • 新手村回复Leonard:

      看着A板这边的cim配置确实打开了bypass,但就目前的log来看,B板没收到数据信号;

      2023-01-15
      0
    • 新手村回复Leonard:

      对了,你是A板,先运行,然后再运行B板的吧?

      2023-01-15
      0
    • 费小财回复Leonard:

      -2000的错误,mipi没数据接收呢,通路上确定有数据吗

      2023-01-15
      0
    • 费小财回复Leonard:

      #define HB_VIO_ISP_INVALID_DATATYPE (5001)

      5001是数据格式不对的,你要是想通过ISP收YUV的数据的话应该也要当raw传递再下ddr后解析把

      2023-01-15
      0
    • 新手村回复Leonard:

      另外,麻烦你提供一下B板的配置,hb_j5dev.json,我看下配置对不对

      2023-01-15
      0
    • 新手村回复Leonard:

      B板不应该在初始化isx031,设置一个dummy sensor,把deserial配置一下应该就可以;

      2023-01-15
      0
    • Leonard回复新手村:

      Hi kaikai:

      我想实现bypass功能:(板子A)舜宇ar0233->96712->rx1->tx1->96717f->(板子B)9296->rx0

      先在A板手动配置完96717f的reg,再B板手动设置完接收的9296的reg。后启动相机的json,tx1有数据波形。96717f有pclkdet,9296有videolock,能测量到波形。先用如下命令抓取数据

      /app/bin/vps/vpm/vcs_test -m8 -v ./vpm_config.json -p 0 -c ./hb_j5dev.json -i 0 -C 1 -D 1 -d1 -h /system/etc/vio_tool/dump_config.json,

      报-5001错误码,关键log如下。

      ( 1774): [2101.358643][VPM pipeline]:[vio_pipeline_get_data][998]isp get buf failed type(11)

      请指导我用程序抓取J5_tx串化后解串的数据在哪里?

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

    你好, Rx0 rx1的话,确实只能走Isp下ddr dump raw,又是yum sensor 所以我们并没有官方的demo.只能靠你自己来实现,理论可行,只要在接受isp数据的时候,再做一些pixel排列就可以了

    2023-01-13
    0
    3
    • Leonard回复费小财:
      你好,我目前想解析我舜宇ar0233->96712->rx1->tx0->96717f->9296->rx0[[解串器接收解析后回传soc(9296或者96712)]].我通路应该是通的可以测量到9296输出给soc的mipi数据波形,但是用vcs_test抓取数据是报-5001.
      请帮忙支持下
      2023-01-15
      1
    • 费小财回复Leonard:

      有对应的日志吗?5001看着是ISP的报错的,我需要出错时刻的dmesg的信息

      2023-01-15
      1
    • 费小财回复费小财:

      5001

      #define HB_VIO_ISP_INVALID_DATATYPE (5001)

      看上去是数据格式不对的

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

    您好:

    raw sensor 连RX0/1 ,只能从ISP抓取raw数据,目前只有vcs_test支持;

    2023-01-13
    0
    2
    • Leonard回复新手村:

      ok。这个我是了解的

      2023-01-15
      0
    • 新手村回复Leonard:

      那你现在碰到什么问题了

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

    另外,你为啥不走rx2/rx3的通路呢,这样可以直接走cimdma的方式获取的,修改最少

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

    之前讨论的篇幅有乱,我总结一下目前现状和结论;

    场景1:ar0233->96712->rx1->tx0->96717f->9296->rx0出现-5001错误;表示ISP get data异常,异常原因大概率是ISP配置异常,要想找到根因:

    1. 请提供-5001前后的错误log;

    2. 执行如下命令,查看当然通路的运行状态;

    cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/470c0000.isp/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/47110000.isp_hw1/fps

    2023-01-15
    0
    0
  • 新手村
    Lv.4
    场景2:isx031->96712->rx3->tx1->9296->rx0,现状出现抓取数据异常,所以请按照如下步骤:

    1.提供抓取数据异常的log;

    2.执行如下命令,查看当然通路的运行状态:

    cat /sys/devices/platform/soc/47010000.cam_sys/47060000.cim/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/47180000.cim_dma/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/470e0000.pym/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/47130000.pym/fps

    cat /sys/devices/platform/soc/47010000.cam_sys/47190000.pym/fps

    2023-01-15
    0
    0
  • 新手村
    Lv.4
    场景3:森云isx031->96712->rx3->tx1->96717f(A板)->B板的96712->rx3,现状是B板出现mipi信号检查失败的错误;建议如下:

    1.确认启动顺序:A板先启动,然后再启动B板;

    2.提供B板hb_j5dev.json配置或者更改B板配置成dummy sensor;

    dummy sensor配置参考如下json文件:/app/bin/vps/vpm/cfg/tx/tx0_rx0raw4_rx3_cim_cimdma_isp01_pym01_1280p_sync/hb_j5dev.json

    "port_4":{

    "dev_port":4,

    "bus_type":0,

    "bus_num":3,

    "entry_num":3,

    "serial_addr":"0x40",

    "sensor_addr":"0xff",

    "sensor_name":"dummy",

    "reg_width":16,

    "extra_mode":420,

    "width":1920,

    "height":1280,

    "config_index":3,

    "sensor_mode":1,

    "fps":30,

    "resolution":1280,

    "format":335544588,

    "deserial_index":1,

    "deserial_port":0,

    "data_path":"/app/bin/vps/vpm/cfg/tx/tx0_rx0raw4_rx3_cim_cimdma_isp01_pym01_1280p_sync/cim_config.json",

    "config_path":"/system/etc/cam/hb_mipi_vpgr_raw12_%dfps_%dP.json"

    },

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

    场景1:ar0233->96712->rx1->tx0->96717f->9296->rx0出现-5001错误;表示ISP get data异常,异常原因大概率是ISP配置异常,要想找到根因: 1. 请提供-5001前后的错误l,这个配置问题可能需要先检查配置文件,再看看日志信息的

    2023-01-16
    0
    0