This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] J722SXH01EVM:如何使用 J722S 调试 MIPI 器件(非摄像机)

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1445077/j722sxh01evm-how-to-use-j722s-to-debug-mipi-devices-non-camera

器件型号:J722SXH01EVM

工具与软件:

您好、TI 专家!

我有一个任务。 我有一个使用 MIPI (CSI2)接口的射频雷达、我想在 J722S 上运行它。使用的接口为 CSI-Rx_IF0/dhy0。 有两个具有挑战性的方面。
1如何确认我是否已收到数据。 或者、CSI-RX_IF0/phy0的 FIFO 数据地址在哪里? 我是否可以使用 devmem2来读取它并检查数据的准确性。
2 DSP 如何从通过 DMA 传输到单个存储器的高速缓存 FIFO 中检索和处理数据。

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好  

    遗憾的是、没有任何 FIFO 可以从此处读取捕获的数据并确认其工作。 数据将使用 DMA 保存在 DDR 中、我们需要检查中断回调以确认其正常工作。 捕获到数据后、可以使用 IPC 将捕获的数据发送到 DSP。  

    此致、

    Brijesh   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、专家

    我提到了摄像头的逻辑并设置了通用设置寄存器、但我仍然看不到数据输出。 我不知道这些寄存器的值是否设置正确。 您能帮我确认吗?

    器件:

    CLK:400M

    数据格式:RAW8

    通道编号:4

    寄存器:

    root@j722s-evm:/home/testApp ./devmem2_info.ch
    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    ++++ CSI:0x30101000:cfg Set++\n
    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    CSI2RX_DEVICE_CFG_REG:0x30101000
    /dev/mem 打开。
    存储器映射在地址0xff99af5000处。
    在地址 0x30101000 (0xffffff99af5000)处读取:0x8421164C
    CSI2RX_SOFT_RESET_REG:0x30101004
    /dev/mem 打开。
    已在地址0xffaa0da000处映射存储器。
    在地址 0x30101004 (0xffffffaa0da004)上读取:0x00000000

    CSI2RX_STATIC_CFG_REG:0x30101008
    /dev/mem 打开。
    存储器映射在地址0xff8ed2d000。
    在地址 0x30101008 (0xffffff8ed2d008)处读取:0x43210400

    csirx_dphy_lan_control:0x30101040
    /dev/mem 打开。
    存储器映射在地址0xff9df5c000处。
    在地址 0x30101040 (0xffffff9df5c040)处读取:0x0001F01F

    CSI2RX_STREAM_CTRL_REG:0x30101100
    /dev/mem 打开。
    存储器映射在地址0xff99d52000处。
    在地址 0x30101100 (0xffffff99d52100)处读取:0x00000001

    csirx_stream0_status:0x30101104
    /dev/mem 打开。
    在地址0xffffff103000上映射了存储器。
    在地址 0x30101104 (0xffffff103104)处读取:0x80000111

    CSI2RX_STREAM_DATA_CFG_REG:0x30101108
    /dev/mem 打开。               
    在地址 0x30101108 (0xffffff9320e108)处读取:0x000100AA

    CSI2RX_STREAM_CFG_REG:0x3010110C
    /dev/mem 打开。
    存储器映射在地址0xff88c4c000处。
    在地址 0x3010110C (0xffffff88c4c10c)处读取:0x00000100

    CSIRX_STREAM0_MONITOR_CTRL:0x30101110
    /dev/mem 打开。
    在地址0xffad5db000处映射存储器。
    在地址 0x30101110 (0xffffffad5db110)上读取:0x0C008010

    --- csi2检查信息------- \n
    csirx_monitor_irqs_mask_cfg:0x30101110
    /dev/mem 打开。
    存储器映射在地址0xff984fc000处。
    在地址 0x30101018 (0xffffff984fc018)上读取:0x00000000

    csirx_monitor_irqs_mask_cfg:0x30101110
    /dev/mem 打开。
    已映射地址0xffffb90cb000处的存储器。
    在地址 0x3010101C (0xffffff90cb01c)处读取:0x000000FF

    csirx_info_iqs:0x30101020
    /dev/mem 打开。
    存储器映射在地址0xff9b6ab000处。
    在地址 0x30101020 (0xffffff9b6ab020)上读取:0x00000000

    csirx_info_irqs_mask_cfg:0x30101024
    /dev/mem 打开。
    已映射至地址0xffae9ac000处的存储器。
    在地址 0x30101024 (0xffae9ac024)处读取:0x00007FFF

    csirx_error_IRQ:0x30101028
    /dev/mem 打开。
    存储器映射在地址0xff92ca2000处。
    在地址 0x30101028 (0xffffff92ca2028)处读取:0x00000100 或 0x00001401

    csirx_error_irqs_mask_cfg:0x3010102c
    /dev/mem 打开。
    存储器映射在地址0xFFffb6100000处。
    在地址 0x3010102C (0xffffffb610002c)处读取:0x00011FF1

    csirx_dphy_status:0x30101048
    /dev/mem 打开。
    存储器映射在地址0xff7ffc8000处。
    在地址 0x30101048 (0xffffff7ffc8048)处读取:0x00333306

    csirx_dphy_err_status_IRQ:0x3010104C
    /dev/mem 打开。
    存储器映射在地址0xff8ec29000处。
    在地址 0x3010104C (0xffffff8ec2904c)处读取:0x00000000

    csirx_dphy_err_irq_mask_cfg:0x30101050
    /dev/mem 打开。
    存储器映射在地址0xff9437b000。
    在地址 0x30101050 (0xffffff9437b050)处读取:0x00000000

    csirx_integrity_debug:0x30101060
    /dev/mem 打开。
    存储器映射在地址0xfffbde0d000处。
    在地址 0x30101060 (0xffffffbde0d060)处读取:0x10000000

    csirx_dphy_err_irq_mask_cfg:0x30101074
    /dev/mem 打开。
    存储器映射在地址0xff88f9d000处。
    在地址 0x30101074 (0xffffff88f9d074)处读取:0x00000000

    csirx_test_generic:0x30101080
    /dev/mem 打开。
    存储器映射在地址0xFFffb6fc5000处。
    在地址 0x30101080 (0xffffff6fc5080)处读取:0x00000000

    csirx_asf_int_raw_status:0x30101904
    /dev/mem 打开。
    存储器映射在地址0xff9b063000。
    在地址 0x30101904 (0xffffff9b063904)上读取:0x00000000

    csirx_asf_int_mask:0x30101908
    /dev/mem 打开。
    已将内存映射至地址0xffa9ba6000。
    在地址 0x30101908 (0xffffff9ba6908)处读取:0x0000007f

    CIE2RX_STREAM_MONITOR_CTRL_REG:0x30101110
    /dev/mem 打开。
    存储器映射在地址0xffa6d73000。
    在地址 0x30101110 (0xffffff6d73110)处读取:0x0C008010

    CIE2RX_STREAM_MONITOR_FRAME_REG:0x30101114
    /dev/mem 打开。
    已在地址0xffab791000处映射存储器。
    在地址 0x30101114 (0xffab791114)处读取:0x00000000

    CIE2RX_STREAM_MONITOR_LB_REG:0x30101118
    /dev/mem 打开。
    映射到地址0xff94eb0000的存储器。
    在地址 0x30101118 (0xffffff94eb0118)处读取:0x00000000

    csirx_stream0_fifo_fill_lvl:0x30101128
    /dev/mem 打开。
    存储器映射在地址0xffbecd2000处。
    在地址 0x30101128 (0xffffbecd2128)处读取:0x00001000

    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    ++++ SHIM:0x30102000++++++++++++++ \n
    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    SHIM_CNTL:0x30102010
    /dev/mem 打开。
    存储器映射在地址0xff9f51c000处。
    在地址 0x30102010 (0xffffff9f51c010)上读取:0x00000F01

    SHIM_DMACNTX:0x30102040
    /dev/mem 打开。
    在地址0xffafe85000处映射的存储器。
    在地址 0x30102020 (0xffffffe85020)处读取:0x8C00002A

    SHIM_PSI_CFG0:0x30102024
    /dev/mem 打开。
    存储器映射在地址0xFFffb8033000。
    在地址 0x30102024 (0xFFffb8033024)处读取:0x00000000

    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    +++dphy2:0x30110000++++++++++++ \n
    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n
    phy2:0x30110000
    /dev/mem 打开。
    地址0xffffff8abd000处映射了存储器。
    在地址 0x30110000 (0xffffff8abd000)处读取:0x00000000

    dhy0 PSC DPHY_BAND_CFG:0x30110b00
    /dev/mem 打开。
    存储器映射在地址0xff8b15a000。
    在地址 0x30110B00 (0xffffff8b15ab00)处读取:0x000001CE

    dhy0 PSC DPHY_POWER_ISLAN_EN_DATA:0x30110b08
    /dev/mem 打开。
    映射到地址0xffa4f09000处的存储器。
    在地址 0x30110B08 (0xffa4f09b08):0xAAAAAAAA 处读取

    phy0 PSC DPHY_POWER_ISLAN_EN_CLK:0x30110b0C
    /dev/mem 打开。
    存储器映射在地址0xff8f428000。
    在地址 0x30110B0C (0xff8f428b0c)处读取:0x000000AA

    dhy0 PSC:0x30110C00
    /dev/mem 打开。
    存储器映射在地址0xFFffb74fd000处。
    在地址 0x30110C00 (0xfffb74fdc00)处读取:0x0000050F

    phy0 DPHY_ISO_CL_CTRL_L:0x30110C10
    /dev/mem 打开。
    存储器映射在地址0xff8df05000处。
    在地址 0x30110C10 (0xffffff8df05c10)处读取:0x00000029

    phy0 DPHY_ISO_DL_CTRL_L0:0x30110C14
    /dev/mem 打开。
    在地址0xff867d9000处映射存储器。
    在地址 0x30110C14 (0xffffff867d9c14)处读取:0x0000000D

    phy0 DPHY_ISO_DL_CTRL_L1:0x30110C20
    /dev/mem 打开。
    存储器映射在地址0xffa7254000。
    在地址 0x30110C20 (0xffffff7254c20)处读取:0x00000005

    phy0 DPHY_ISO_DL_CTRL_L2:0x30110C30
    /dev/mem 打开。
    内存映射在地址0xff8c2fe000。
    在地址 0x30110C30 (0xffffff8c2fec30)处读取:0x0000000D

    dhy0 DPHY_ISO_DL_CTRL_L3:0x30110C3c
    /dev/mem 打开。
    存储器映射在地址0xff9a503000。
    在地址 0x30110C3C (0xff9a503c3c)处读取:0x00000005

    dphy0 DPHY_LANE:0x30111000
    /dev/mem 打开。
    存储器映射在地址0xff8b52a000。
    在地址 0x30111000 (0xffffff8b52a000)处读取:0x40800000

    ++++++++++++++++++++++++++++++++++++++++++++++++++ \n

    坦斯克!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    首先、您是为 CSIRX 使用 Linux 驱动程序还是 RTOS 驱动程序? 您是否遵循有关在 成像层中添加新图像传感器的应用手册? 您的输出格式似乎是 RAW8、您是否也使用正确的 CSI/MIPI 格式标记此数据?  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、专家

    我正在将 Linux 驱动程序(cdns_csi2rx && j721-csi2rx)用于 CSIRX。我已根据需要添加了器件树并修改了驱动程序。 CSI/MIPI 标签数据格式为0x2A (RAW)。

    一个芯片具有16400字节、一个帧具有128个芯片。 此帧数据可能太大而无法收集吗?

    如何针对这种情况配置 dhpy/CSI-rx_if/csi2rx_sthim 的寄存器?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉、我不熟悉 Linux 驱动程序。 因此、CSIRX 可以捕获此数据、16400 x 128帧、但不确定如何在 Linux 驱动程序上配置它。 您是否可以使用 RTOS 驱动程序?  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我使用了此示例(${sdk_path}/examples/drivers/csirx/csirx_capture_testapp.) 以测试 RTOS、但未捕获任何帧。

    如果开发板直接连接到摄像头、是否需要修改示例的解串器以及如何修改该摄像头

    SDK_VER:10.0.00

    谢谢

     
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、您需要更新 SetSensorConfig API 中的 SERDES 和传感器配置。 这就是此示例配置 SERDES 和传感器的位置。  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的答复。 我可以已经接收数据、但 DMA 获得的数据长度是768字节。 我的帧是16384 * 128字节。 您是否知道如何修改这些参数

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、这意味着您需要将宽度设置为16384、高度设置为128、并将帧格式保持为 RAW8。  

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    您是否知道如何设置 DMA/PSILSS、使其宽度为16384。、高度为128。我不使用 V4L2框架、也不知道在何处设置

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    该操作应由驱动程序执行。 为了接收这些数据、您只需设置 DMA、由驱动程序负责。 您使用的是 Linux 驱动程序还是 RTOS 驱动程序? RTOS 驱动程序只需更新摄像头帧大小、其余部分由驱动程序处理。  

    此致、

    Brijesh