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.

[参考译文] AM5718:CSI2 5Mpixel CMOS 传感器

Guru**** 2562120 points
Other Parts Discussed in Thread: AM5718

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/613478/am5718-csi2-5mpixel-cmos-sensor

器件型号:AM5718

Sitara 系列和朋友、

我们的朋友对 AM5718有一些问题、希望获得有关连接至仅具有原始 RGB 数据输出格式的 CSI2接口的5Mpixel CMOS 传感器(如 AR0521)的任何指导。  虽然我们在连接达芬奇器件上有更多的经验、如 CMOS 传感器、但如果有人在 AM5718上与 AR0521等 CMOS 传感器做过类似的工作、会很有用?

他们的建议如下: 仍然使用 CSI2接口连接到 AR0521、当原始数据传入时、这些数据将通过 DMA 保存到帧缓冲器中。  然后、它们会对函数进行编码、以通过 DSP 将颜色空间从 RGB 传输到 YUV、但由于原始数据帧速率为5M@30fps、因此必须在不丢失任何帧的情况下完成此操作。

考虑到所有因素(CPU 速度、DSP、DMA、存储器处理带宽和 AM5718架构)、这是否合理?  是否有其他建议、例如使用其中一个视频输入端口的反向流?

欢迎并感谢各位提出的意见。

Ty、
是的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    工厂团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仔细检查后、似乎 CAMSS 能够将传入的串流解析为字节、然后在内部生成 VIP 格式的视频数据、并将其发送到 VIP 进行后续处理并迁移到 SDRAM。 提供的 CAL 支持沿着此数据路径进行24位 RGB RGB->YUV 转换可以在 VIP 内部进行、因此无需为此使用 DSP。
    我向视频专家提出的问题是:

    1.此数据路径是否已针对24位 RGB 数据进行验证?
    2. Linux 捕获驱动程序是否支持此功能?

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

    团队、

    有人对上述建议提出意见? 可行吗? 驱动程序是否支持它?

    谢谢

    Michael

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Michael、
    由于一些有关此主题的应用专家正在出差、您可以在下周获得答案。 很抱歉耽误你的时间。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    团队、

    有更新吗?

    谢谢

    Michael

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

    您是否浏览过此 wiki 页面-

    它包含有关驱动程序支持/不支持的功能的信息。

    不支持通过 VIP 端口进行捕获转发。

    AM5718上的 CSI2接口可处理600MB/s 可使用 CSI-2接口进行 RGB24 5MP@30fps 捕捉。

    转换所需的确切 YUV 格式是什么? AM5718中有名为 VPE 的硬件加速器、也可处理颜色转换、但它具有内部线路缓冲器宽度限制、因此无法处理宽度超过2K 的颜色转换。 如果宽度大于2K、则可以在2通模式下使用 VPE 进行颜色转换(驱动程序不支持2通功能)。 请注意、这可能会导致拼接边缘出现一些伪影。  谁是该 YUV 缓冲器的使用者?

     这是 VPE 驱动程序 wiki 页面的链接-  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Manisha、我有几个问题。 首先、我将向您介绍我们的应用要求、如下所示:
    背景:我们的应用将通过 CSI2将 AR0521 (5 Mpix 传感器)连接到5718、并以30fps (首选60fps)的流 Bayer RGB (原始)格式进行流式传输。 然后、通过管道进入三个管道:1)向下缩放至640x480、颜色转换为 RGB 格式以供显示;2)向下缩放至160x120、颜色转换为 RGB 格式以供内部应用实时使用; 3)在触发器(应用定义的触发器)以全分辨率(2560x1944)捕获5个连续帧、然后转换为 RGB .jpg 格式、这5个帧可以实时以原始 Bayer 格式捕获、但可以脱机处理。

    那么问题是、5718是否可以支持上述架构? 如果我们无法使用现有的 VIP 和 VPE,我们是否可以将帧缓冲区实时路由到 M4、DSP 或 CPU 进行颜色转换? 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AM5718没有用于原始 Bayer 到 RGB 格式转换的硬件加速图像管道。 该转换需要在 AM5718器件的软件中处理。 需要在软件中处理方案中三个管道的整个缩放和转换、因为 VIP 和 VPE 都不能在此处使用。 如果 AM57128 A15/DSP 能够满足您的要求、我会回来处理。

    有一个目录处理器器件、它上面有 ISP (用于原始 Bayer 到 RGB 转换的硬件加速器)。 请在该设备上咨询当地销售代表。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Allen 在与 AR0521连接的 CSI2上注册 CAL,网址为/dev/video0
    当我们发出以下命令时:
    yavta -C10 -fSGRBG8 -n 4 -Fframe-001.bin -s2592x1944 /dev/video0

    我们收到以下消息、然后无限期地挂起、并且从不保存文件 frame-001.bin、您能帮您看看出了什么问题吗? 非常感谢您的帮助。

    `平台:cal-000'上的器件`cal'是一个视频输出(不带[5462.931166] cal-000:CAL:CAL_Try fmt_vid_cap
    mPlanes)器件。
    [5462.941036] cal-000:CAL:find_format_By_pix
    [5462.949294] cal-000:CAL:CAL_calc_format_size
    [5462.954614] cal-000:CAL_calc_format_size:FourCC:GRBG 大小:2592x1944 BPL:2592 img_size:5038848
    [5462.964287] cal-000:CAL:find_format_By_pix
    [5462.968577] cal-000:CAL:_ subdev_set_format
    [5462.974354] ar0521 4-0036:Allen AR0521信息 ar0521_set_fmt
    [5462.982842] ar0521 4-0036:Allen AR0521信息 ar0521_SET_params
    [5462.990362] ar0521 4-0036:Allen AR0521信息 ar0521_SET_POWER
    [5463.000045] ar0521 4-0036:ar0521_set_power:on:1.
    [5463.006058] ar0521 4-0036:Allen AR0521信息 AR0521_SET_POWER -无需更改电源状态
    [5463.017351] cal-000:__subdev_set_format 2592x1944代码:3002
    [5463.023796] cal-000:CAL:CAL_calc_format_size
    [5463.028264] cal-000:CAL_calc_format_size:FourCC:GRBG 大小:2592x1944 BPL:2592 img_size:5038848
    视频格式集:SGRBG8 (47425247) 2592x1944 (STRIDE 2592) fiel[5463.038616] cal-000:CAL:CAL_g_fmt_vid_cap
    D 无缓冲区大小5038848
    [5463.049188] cal-000:CAL:CAL_queue_setup
    视频格式:SGRBG8 (47425247) 2592x1944 (STRIDE 2592)字段编号[5463.055617] cal-000:nbuffers=4、大小=5038848
    NE 缓冲区大小5038848
    请求4个缓冲区。[5463.078478] cal-000:CAL:CAL_buffer_prepare

    长度:5038848偏移:0时间戳类型/源:单声道/EOF
    buf[5463.084117] cal-000:CAL:CAL_buffer_prepare
    映射到地址 bb69a6000的 fer 0/0。
    长度:5038848偏移:5[5463.095515] cal-000:CAL:CAL_Buffer_Prepare
    042176时间戳类型/源:单声道/EOF
    缓冲区1/0映射于 add[5463.104616] cal-000:CAL:CAL_buffer_prepare
    地址 bbb64d7000。
    长度:5038848偏移:10084352时间戳典型值[5463.114716] cal-000:CAL:CAL_buffer_queue
    电子/源:单声道/EOF
    缓冲区2/0映射在地址 bb6008000。
    LE[5463.124363] cal-000:CAL:CAL_buffer_queue
    ngth:5038848偏移:15126528时间戳类型/源:单声道/EOF
    [5463.133971] cal-000:CAL:CAL_buffer_queue
    缓冲区3/0映射在地址 b5b39000处。
    [5463.144136] cal-000:CAL:CAL_Buffer_queue
    [5463.150688] cal-000:CAL:CAL_START_STREGALE - Start
    [5463.157127] cal-000:CAL:CAL_START_STREGALE - Point A
    [5463.163120] cal-000:CAL:CAL_GET_EXTERNAL_INFO
    [5463.167674] cal-000:传感器像素速率:27000000
    [5463.174327] cal:CAL:CAL_RAuntime_get
    [5463.178030] cal-000:CAL:csi2_ctx_config
    [5463.183415] cal-000:CAL_CSI2_CTX0 (1)= 0x00000101
    [5463.188226] cal-000:CAL:PIX_PROC_CONFIG
    [5463.193723] cal-000:CAL_PI_PROC (1)= 0x00080005
    [5463.198510] cal-000:CAL:CAL_wr_DMA_config
    [5463.204240] cal-000:CAL_WR_DMA_CTRL (1)= 0x1e604304
    [5463.209259] cal-000:CAL_WR_DMA_Ofst (1)= 0x00000a20
    [5463.215792] cal-000:CAL_WR_DMA_XSIZE (1)= 0x0a200000
    [5463.3220896] cal-000:CAL_CTRL = 0x81fe07e
    [5463.226617] cal-000:CAL:csi2_lane 配置
    [5463.330732] cal-000:CAL_CSI2_COMPLEXIO_CFG (1)= 0x000dcba9
    [5463.237512] cal-000:CAL:CAL_START_STALE -启用 IRQ
    [5463.243736] cal-000:CAL:ENABLE_IRQ
    [5463.247413] cal-000:CAL:CAL_START_STREALE - Init 子设备
    [5463.254512] cal-000:CAL:csi2_phy_init
    [5463.258364] cal-000:CAL:camerarx_phy_enable
    [5463.263886] cal-000:CAL_CSI2_COMPLEXIO_CFG (1)= 0x400dcba9使复数 IO 复位无效
    [5463.272470] cal-000:CAL:csi2_phy_config
    [5463.276496] cal-000:csi2_ddrclk_kHz:27000
    [5463.280694] cal-000:ths_term:0 (0x00)
    [5463.286205] cal-000:ths_settle:6 (0x06)
    [5463.290232] cal-000:CSI2_0_REG0 = 0x01000006
    [5463.295740] cal-000:CSI2_0_REG1 = 0xc002e10e
    [5463.300115] cal-000:CAL_CSI2_TIMER (1)= 0x0000c197停止状态
    [5463.307336] cal-000:CAL_CSI2_TIMER (1)= 0x0000c197 Force RXMODE
    [5463.315196] cal-000:CAL_CSI2_COMPLEXIO_CFG (1)= 0x4a0dcba9加电
    [5463.322459] cal-000:CAL:CAL_START_STREALE -子设备调用
    [5463.328408] ar0521 4-0036:Allen AR0521信息 ar0521_s_stream
    [5463.337352] ar0521 4-0036:Allen AR0521信息 ar0521_INIT_GPIO
    [5463.345864] ar0521 4-0036:Allen AR0521信息 ar0521_s_stream -启用流
    [5463.355612] ar0521 4-0036:Allen AR0521信息 ar0521_REG_WRITE = 00
    [5463.377816] ar0521 4-0036:Allen AR0521信息 ar0521_REG_WRITE = 01
    [5463.385907] ar0521 4-0036:Allen AR0521信息 ar0521_REG_WRITE = 02
    [5463.395815] ar0521 4-0036:Allen AR0521信息 ar0521_REG_WRITE = 1c
    [5463.404866] cal-000:CAL:CAL_START_STREALE -等待子设备
    [5463.411793] cal-000:CAL:csi2_wait_for_phy
    [5463.701622] cal-000:CAL_CSI2_COMPLEXIO_CFG (1)= 0x4a0dcba9复数 IO 复位完成(250)(超时)
    [5463.721793] cal-000:CAL_CSI2_TIMEOUT (1)=达到0x0000c197停止状态(超时)
    [5463.729312] cal-000:CSI2_0_REG1 = 0xc002e10e (位(31、28)应置位!)
    [5463.737318] cal-000:CAL:CAL_START_STREALE - Write DMA
    [5463.743373] cal-000:CAL:CAL_START_STREALE -启用 PPI
    [5463.748880] cal-000:CAL:csi2_ppi_enable
    [5463.754086] cal-000:CAL:csi2_ppi_enable done
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否可以使用 MIPI 摄像头使用 Yavta 工具(使用 strace -f prepened)? 很难将非 MIPI 输出(VIP)与 CAL 输出进行比较。

    最初使用了以下命令。

    strace -f yavta -C60 -fYUYV -Fvout_1280x800_yuiv.YUV -s1280x800 /dev/video1

    使用非 MIPI 摄像头时、VIP 显示为设备(video0)以及实际摄像头(video1)。 使用 MIPI 摄像头时、视频0存在、但没有视频1。 我假设实际摄像机不会显示为其自己的设备、因为它是 CAL 的子设备。 您可以确认吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用以下命令了解 v4l2器件及其代表的内容。 /dev/video0适用于 VPE 而不是 VIP。 由于您看不到视频1、MIPI 摄像头初始化不好。

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

    您是否有可连接到57x EVM 的 MIPI 图像传感器板? 我想100% 确保图像传感器应列为其自己的 V4L2器件。 我知道它适用于 VIP 图像传感器。 此外,该文件还建议应这样做。 问题是、我看到的 MIPI 传感器的源代码未将其自身注册为顶级器件(/dev/video1)。 我看到的所有驱动程序都将图像传感器注册为 CAL 的子设备。 我们是否可以通过真实测试来确认这一点?

    我的传感器正在初始化所有寄存器并由 CAL 拾取。 最终 CAL 将自身注册为/dev/video0. 我在驱动程序和 CAL 中插入了调试代码、以确认发出给/dev/video0的所有命令都被路由到子器件(我的传感器驱动程序)。

    器件完全可以列为自己的器件。 如果问题不是真正的问题、我就不想追上这个问题。

    如果我们可以通过57x EVM 上的 MIPI 传感器板确认这一点、这将大有帮助! 谢谢

    [11.827123]   ar0521 4-0036:AR0521信息:ar0521_set_regs:set 31c2 -> FFFF

    [11.828732]   ar0521 4-0036:AR0521信息 ar0521_reg_read

    [11.828964]   ar0521 4-0036:ar0521产品 ID 0制造商 ID 457

    [11.828970]   ar0521 4-0036:AR0521信息 ar0521_s_ctrl

    [11.828973]   ar0521 4-0036:AR0521 ar0521_s_ctrl V4L2_CID_VFLIP

    [11.828977]   ar0521 4-0036:AR0521信息 ar0521_reg_RMW

    [11.828980]   ar0521 4-0036:AR0521信息 ar0521_REG_READ

    [11.832396]   ar0521 4-0036:AR0521信息 ar0521_s_ctrl

    [11.832400]   ar0521 4-0036:AR0521 ar0521_s_ctrl V4L2_CID_HFLIP

    [11.832403]   ar0521 4-0036:AR0521信息 ar0521_REG_RMW

    [11.832406]   ar0521 4-0036:AR0521信息 ar0521_reg_read

    [11.832966]   ar0521 4-0036:AR0521信息 ar0521_s_ctrl

    [11.832969]   ar0521 4-0036:AR0521 ar0521_s_ctrl V4L2_cid_test_pattern

    [11.832973]   ar0521 4-0036:AR0521信息 ar0521_set_regs

    [11.832977]   cal-000:CAL:CAL_异 步_绑定

    [11.832979]   cal-000:使用传感器 ar0521 4-0036进行捕获

    [11.832982]   cal-000:subdev ar0521 4-0036:代码:3001 idx:0

    [11.832985]   cal-000:匹配的 fourcc:BA81:代码:3001 idx:0

    [11.832988]   cal-000:subdev ar0521 4-0036:代码:3013 idx:1.

    [11.832990]   cal-000:匹配的 fourcc:GBRG:代码:3013 idx:1.

    [11.832993]   cal-000:subdev ar0521 4-0036:code:3002 idx:2.

    [11.832995]   cal-000:匹配的 fourcc:GRBG:代码:3002 idx:2.

    [11.832997]   cal-000:subdev ar0521 4-0036:code:3014 idx:3.

    [11.832999]   cal-000:匹配的 fourcc:RGGB:代码:3014 idx:3.

    [11.833001]   cal-000:subdev ar0521 4-0036:代码:3007 idx:4.

    [11.833003]   cal-000:匹配的 fourcc:BG10:代码:3007 idx:4.

    [11.833005]   cal-000:subdev ar0521 4-0036:代码:300E idx:5.

    [11.833007]   cal-000:匹配的 fourcc:GB10:代码:300E idx:5.

    [11.833009]   cal-000:subdev ar0521 4-0036:代码:300A idx:6.

    [11.833011]   cal-000:匹配的 fourcc:BA10:代码:300A idx:6.

    [11.833013]   cal-000:subdev ar0521 4-0036:代码:300f idx:7.

    [11.833015]   cal-000:匹配的 fourcc:RG10:代码:300f idx:7.

    [11.833017]   cal-000:subdev ar0521 4-0036:代码:3008 idx:8.

    [11.833019]   cal-000:匹配的 fourcc:BG12:代码:3008 idx:8.

    [11.833021]   cal-000:subdev ar0521 4-0036:代码:3010 idx:9.

    [11.833141]   cal-000:匹配的 fourcc:GB12:代码:3010 idx:9.

    [11.833144]   cal-000:subdev ar0521 4-0036:代码:3011 idx:10.

    [11.833147]   cal-000:匹配的 fourcc:BA12:代码:3011 idx:10.

    [11.833149]   cal-000:subdev ar0521 4-0036:代码:3012 idx:11.

    [11.833151]   cal-000:匹配的 fourcc:RG12:代码:3012 idx:11.

    [11.833153]   cal-000:CAL:CAL_COMPLEE_ctx

    [11.833155]   cal-000:CAL:CAL_COMPLETE _ ctx -初始化队列

    [11.833158]   cal-000:CAL:CAL_COMPLETE _ ctx - init video DMA queue

    [11.833328]   cal-000:注册为 video0的 V4L2设备

    [11.833343]   cal-000:CAL:CAL_异 步_COMPLETE

    [11.833345]   cal-000:CAL:__subdev_get_format

    [11.833350]   ar0521 4-0036:AR0521信息 ar0521_get_fmt

    [11.833353]   cal-000:__subdev_get_format 648x488代码:3001

    [11.833355]   cal-000:CAL:find_format_By_code

    [11.833357]   cal-000:CAL:CAL_calc_format_size

    [11.833361]   cal-000:CAL_calc_format_size:FourCC:BA81 size:648x488 BPL:656 img_size:320128

    [11.833365]   ar0521 4-0036:已注册 ar0521 4-0036传感器驱动器!!

     

     

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

    我最后没有板设置来共享工作日志。 不应将图像传感器列为其自己的 V4L2器件。

    查看您之前的日志-

    CAL:CAL_START_STREGALE - Start [5463.157127] cal-000:CAL:

    CAL_START_STREGALE - A 点[5463.163120] cal-000:CAL:

    CAL_GET_EXTERNAL_INFO [5463.167674] cal-000:传感器像素速率:

    27000000

    此处报告的像素速率太低。 它看起来更像源振荡器的值。

    例如、对于 OV490传感器、我们使用的像素速率计算为大约201000000像素/秒。

    该值以及选定的像素大小和数据通道数用于计算 PHY 时序参数、在本例中、这些参数可能超出范围。 这将解释为什么由于 PHY 无法与传感器正确握手、捕获无法启动。

    通常、传感器数据表提供了一种计算/推导像素速率的方法。

    它通常如下所示:

    /*

    *= fvco / pixel_width * num_lanes

    *= 804、000、000 / 16位* 4个通道

    *

    #define OV490_PIXEL_RATE         201000000

    希望这有助于解决问题。