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.

[参考译文] Linux/AM5728:VIP 捕获错误的行数

Guru**** 2549940 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/611960/linux-am5728-vip-capturing-wrong-number-of-lines

器件型号:AM5728

工具/软件:Linux

您好!

我已使用离散同步信号将图像传感器连接到 vip2切片0 Porta。

传感器的可配置性受到限制、我使用了 ACTID (DE)和 VSYNC、它们现在的行为与 VBLANK 类似。

下面是9.4.5.19.3中的描述

我看到 VIP 中断(在/proc/interrupts 中)、寄存器0x48995530显示0x01600011、因此每行像素为0x160 (正常)、每帧仅为0x11行。

0x48995504设置为0x0040B10A。

您能否建议如何设置配置位?

以下是我的信号(像素时钟为固定连续16MHz):

2 = ACTVID 1 = VSYNC/VBLANK

全帧:

帧开始:

帧结束:

此致、

环路2.

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

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

    您好!

    如果 我在 Linux 启动后手动设置以下寄存器:

    0x48990100 = 0x00010001 (时钟)

    0x48995504 = 0x0040A10A (VIP 配置)

    VIP 会显示:

    0x48995530:0x01600120 (正确:0x160像素、0x120行)

    当我使用 vIP.c 驱动程序时、报告的行为0x11。

    我禁用了 VPE (因此我确定/dev/video0是我的 CAM)。

    哪些设置/配置会导致 VIP 报告的线路较少?

    此致、

    环路2.

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

    [62.530496] vip2-s0:IRQ 362 VIP_INT0_STATUS0 0x1
    [62.530504] vip2-s0:IRQ 0:处理 LIST0_COMPLETE
    [62.530511] vip2-s0:VIP 缓冲区完成0xedebe000、0x0
    [62.530524] vip2-s0:添加了下一个缓冲区
    [62.530533] vip2-s0:start_dma:buf:0xedd43010edbe200、VB:0x0000ee384c68、dma_addr:0xfe480000
    [62.530539]通道38的出站数据传输描述符
    [62.530546] word0:data_type = 39、notify = 1、field = 0、1D = 1、even _ln_skp = 1、 ODD _ln_SKP = 1、LINE_STRIDE = 42112
    [62.530551] word2:start_addr = 0xfe480000
    [62.530557] word3:pkt_type = 10、mode = 0、dir = 1、chan = 38、pri = 0、 NEW_CHAN = 38
    [62.530563]字4:DESC_WRITE_addr = 0xadd881e0、WRITE_DESC = 1、DRP_DATA = 0、USE_DESC_reg = 0
    [62.530568] word5:Max_width 1、max_height 1
    [62.530573] wordc6:客户端专用 attr0 = 0x00000000
    [62.530577] word7:客户端专用 attr1 = 0x00000000
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这就是原因:
    如果摄像头前端不使用任何 I2C 通信或其他延迟(基本上是一个驱动器、函数几乎立即返回)、则 VIP 启动错误、并且不报告正确的行数。 这只能使用内存写入在用户空间中复制。

    解决方案:
    添加延迟、修复 vIP.c 或使用新的 Linux 4.9内核:
    当使用新内核(Linux 4.9、新 SDK 04.00.00.04)时、此问题就会得到解决。

    为了支持 V4L2_PI_FMT_RGB565/ MEDIA_BUS_FMT_RGB565_1x16 / VPDMA_DATA_FMT_RGB565、需要对新的 VIP.c/.h 进行更多更改。

    环路2.