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.

[参考译文] DS90UB960-Q1:测试图形生成

Guru**** 2560390 points
Other Parts Discussed in Thread: DS90UB960-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1223896/ds90ub960-q1-test-pattern-generation

器件型号:DS90UB960-Q1
主题中讨论的其他器件: ALP.

大家好、

我们使用 ds90ub960-Q1生成测试模式、请参阅数据表7.5.12.4。 我们无法捕获测试图形。 我们看到 v4l2-ctl 选择超时 并且不获取任何帧。 跟踪日志显示 LP 序列发生错误。

相关的寄存器配置如下:

  • CSI_PORT_SEL (0x32):0x01
  • FWD_CTL1 (0x20):0xF0
  • CSI_PLL_CTL (0x1F):0x02
  • CSI_CTL1 (0x33):0x01

那么、cil_settletime 和 SerDes_pix_clk_Hz 的值应该是什么?

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

    您好,文强:

    我是否可以获得960的启动代码? FWD_CTL2寄存器(0x21)是否正确设置?

    他们需要的测试模式是什么? 请提供以下信息、我可以提供寄存器。

    PATGEN 输出    
       
    水平分辨率 1920年
    垂直 分辨率 720.
    总垂直消隐   182.
    垂直前沿 2.
    垂直后沿 29.
    垂直同步   151.
    帧速率 30.
    FC 速率 2.528.
    数据类型 Raw12.

    Glenn  

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

    您好、 Glenn Uranga、

    我未配置0x21且使用默认值0x03。  正如我说过的、我使用了数据表第7.5.12.4章中的配置。

    static int pattern_generator (struct regmap *map)

    int err = 0;

    try (err、regmap_write (map、0xB0、0x0));

    try (err、regmap_WRITE(map、0xB1、0x01));// PGEN_CTL
    try (err、regmap_write (map、0xB2、0x01));// enagle PGen

    try (err、regmap_WRITE(MAP、0xB1、0x02));// PGEN_CFG
    try (err、regmap_write (map、0xB2、0x33));//发送色条图形、4个色条、4个字节

    try (err、regmap_WRITE(map、0xB1、0x03));// PGEN_CSI_DI
    Try (err、regmap_write (map、0xB2、0x24));// 0x24:RGB888 0x2A:RAW8 0x2E:RAW16

    try (err、regmap_write (map、0xB1、0x04));// PGEN_LINE_SIZE1
    try (err、regmap_WITE (map、0xB2、0x0F));// 0xf00 = 3840 = 1280 x 3
    try (err、regmap_write (map、0xB1、0x05));// PGEN_LINE_SIZE0
    try (err、regmap_write (map、0xB2、0x00));//

    try (err、regmap_write (map、0xB1、0x06));// PGEN_BAR_SIZE1
    try (err、regmap_WITE (map、0xB2、0x01));// 0x1e0 = 480
    try (err、regmap_write (map、0xB1、0x07));// PGEN_BAR_SIZE0
    try (err、regmap_write (map、0xB2、0xe0));//

    try (err、regmap_WRITE(map、0xB1、0x08));// PGEN_ACT_LPF1
    try (err、regmap_write (map、0xB2、0x02));// 0x2d0 = 720
    try (err、regmap_WRITE(map、0xB1、0x09));// PGEN_ACT_LPF0
    try (err、regmap_write (map、0xB2、0xd0));//

    try (err、regmap_write (map、0xB1、0x0a));// PGEN_TOT_LPF1
    try (err、regmap_write (map、0xB2、0x04));// 0x41a = 1050
    try (err、regmap_write (map、0xB1、0x0B));// PGEN_TOT_LPF0
    try (err、regmap_write (map、0xB2、0x1a));//

    try (err、regmap_write (map、0xB1、0x0c));// PGEN_LINE_PD1
    try (err、regmap_write (map、0xB2、0x0c));// 0xc67 = 3175
    try (err、regmap_write (map、0xB1、0x0d));// PGEN_LINE_PD0
    try (err、regmap_write (map、0xB2、0x67));//

    try (err、regmap_WRITE(MAP、0xB1、0x0E));// PGEN_VBP
    try (err、regmap_write (map、0xB2、0x21));//
    try (err、regmap_write (map、0xB1、0x0F));// PGEN_VFP
    try (err、regmap_write (map、0xB2、0x0A);//

    返回错误;
    }

    PATGEN 输出    
       
    水平分辨率 1280
    垂直 分辨率 720.
    总垂直消隐   330
    垂直前沿 10.
    垂直后沿 33.
    垂直同步  
    帧速率 30.
    FC 速率
    数据类型 RGB888表示

    什么是 FC 率?  

    如果使用上述配置、则应将哪些参数传递给 v4l2-ctl 以读取数据?

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

    您好,文强

    FC 是正向通道速率。 我假设您在进行以下计算时使用的是4.16Gbps。  

    我 以前尚未开发 v4l2-ctl、因此不知道如何进行设置。 使用您在上面提供的 patgen、图像如下所示:

    PATGEN 输出    
       
    水平分辨率 1280
    垂直 分辨率 720.
    总垂直消隐   330
    垂直前沿 10.
    垂直后沿 33.
    垂直同步   287.
    帧速率 30.
    数据类型 RGB888表示

    使用这些信息来设置解码器。  

     

    我也有一个以下的脚本,在过去发出的测试目的。 它使用以下 patgen 输出。 我正在使用960发送 patgen、但我可以将其更改为960 patgen。 请告诉我,如果你想让我把它更改为960 Patgen。 请注意、在代码中、您会看到954、但也适用于960。  

    PATGEN 输出    
       
    水平分辨率 1920年
    垂直 分辨率 1080
    总垂直消隐   45.
    垂直前沿 10.
    垂直后沿 33.
    垂直同步   2.
    帧速率 31.
    视频格式 YUV422 8位

     e2e.ti.com/.../6406.953to954_5F00_patgen_5F00_YUV_5F00_1920x1080p_2D00_4Lanes_2D00_Working.py

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

    您好、 Glenn Uranga、

    寄存器 CSI_PLL_CTL (0x1F)的值设置为0x02、这意味着 FC 速率为800Mbps。

    "图6-5. DS90UB960-Q1数据表的"HS 传输中的时钟和数据时序"介绍了 UI 的测量方法。 我知道两条时钟线的两次交叉之间的时间是1UI。 根据这种理解、测量的 UI 为1.2ns、计算出的 cil_settletime 值范围为"13<= cil_settletime <= 26"。 但仍会显示日志"LP 序列错误"。 我的 UI 测量是否错误?

    如果我们调整 LP 序列而不是 cil_settletime、但调整 MCLK_multiplizer、我们如何确定 MCLK_multiplier 的值?

    如果您能告诉我测量 UI 的正确方法或确定 MCLK_MULTIER 值的方法、我非常感谢您。

    cil_settletime 和 MCLK_multiplizer 的定义可在 https://docs.nvidia.com/jetson/archives/r35.2.1/DeveloperGuide/text/SD/CameraDevelopment/SensorSoftwareDriverProgramming.html#sensor-pixel-clock 上找到

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

    Wenquiang,

    让我为您详细了解这一点。 几天时间内。

    Glenn  

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

    您好、Wenquiang、

    您对 cil_settletime 的计算似乎正确、我也进行了计算、得出了相同的结果。 UI_INST = 1 / CSI 数据速率(在本例中为800Mbps)= 1.25ns。

    MCLK_MULTIPLIER =所需 ISP 时钟频率(以赫兹为单位)/MCLK、其中所需的 ISP 时钟频率是您的 CSI 数据速率800Mbps/2 = 400MHz、MCLK 是您的参考时钟、我假设它是25MHz。 基于此、MCLK_MULTIER = 16。

    鉴于我们 以前从未使用过此系统 v4l2-ctl、我们不确定您为何会遇到 LP 序列错误。

    此致!

    卢卡斯

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

    您好、Wenquiang、

    我只想到了另外一件事。 您使用的是连续时钟还是非连续时钟? 此外、您的 v4l2框架上的布尔变量 disContinuous_clk 是否设置正确?

    此致!

    卢卡斯

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

    您好,卢卡斯·沃尔特,

    感谢您的答复。

    "CSI_CTL (0x33):0x01" 意味着 UB960使用不连续时钟。

    如果您不使用 v4l2-ctl、那么您使用什么 Linux 工具来读取传感器的原始数据?

    CSI_PLL_CTL 寄存器(0x1F)设置的值是否为数据通道的数据速率?

    我的解决方案中传感器的输出时钟是 连续的。 我将 串行器 UB953的时钟设置为 连续 、将 UB960设置为 非连续。 这种配置 是否能够正常工作?

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

    您好,文强:

    如果您不使用 v4l2-ctl,您使用什么 Linux 工具来读取传感器的原始数据?

    我们使用 TI 开发的 GUI Analog LaunchPAD 来调试 FPD 串行器和解串器。

    我们还使用这些 Introspect 产品

    是 CSI_PLL_CTL 寄存器(0x1F)设置的值数据通道的数据速率吗?

    是的、这是正确的。

    我的解决方案中的传感器输出时钟是 连续的。 我将 串行器 UB953的时钟设置为 连续 、将 UB960设置为 非连续。 此配置是否 可以正常工作?

    是的、只要捕捉器不反馈到 SER、此配置就能正常工作。

    此致!

    卢卡斯

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

    您好,卢卡斯·沃尔特,

    感谢您的答复。

    如果测试使用以下格式、则需要配置哪些寄存器?

    有效图像数据的分辨率是1920*1080、但读取原始数据的原始分辨率是多少?

    board.WriteReg(0x33, 0x03)
    
    board.WriteReg(0xB0, 0x02) # IA_AUTO_INC=1
    board.WriteReg(0xB1, 0x01) # PGEN_CTL
    
    board.WriteReg(0xB2, 0x01) # PGEN_ENABLE=1
    board.WriteReg(0xB2, 0x33) # PGEN_CFG
    board.WriteReg(0xB2, 0x2A) # PGEN_CSI_DI
    board.WriteReg(0xB2, 0x07) # PGEN_LINE_SIZE1
    board.WriteReg(0xB2, 0x80) # PGEN_LINE_SIZE0
    board.WriteReg(0xB2, 0x00) # PGEN_BAR_SIZE1
    board.WriteReg(0xB2, 0xF0) # PGEN_BAR_SIZE0
    board.WriteReg(0xB2, 0x04) # PGEN_ACT_LPF1
    board.WriteReg(0xB2, 0x38) # PGEN_ACT_LPF0
    board.WriteReg(0xB2, 0x04) # PGEN_TOT_LPF1
    board.WriteReg(0xB2, 0x65) # PGEN_TOT_LPF0
    board.WriteReg(0xB2, 0x0B) # PGEN_LINE_PD1
    board.WriteReg(0xB2, 0x93) # PGEN_LINE_PD0
    board.WriteReg(0xB2, 0x0A) # PGEN_VBP
    board.WriteReg(0xB2, 0x0A) # PGEN_VFP
    board.WriteReg(0xB2, 0xAA) # PGEN_COLOR0
    board.WriteReg(0xB2, 0x33) # PGEN_COLOR1
    board.WriteReg(0xB2, 0xF0) # PGEN_COLOR2
    board.WriteReg(0xB2, 0x7F) # PGEN_COLOR3
    board.WriteReg(0xB2, 0x55) # PGEN_COLOR4
    board.WriteReg(0xB2, 0xCC) # PGEN_COLOR5
    board.WriteReg(0xB2, 0x0F) # PGEN_COLOR6
    board.WriteReg(0xB2, 0x80) # PGEN_COLOR7
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR8
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR9
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR10
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR11
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR12
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR13
    board.WriteReg(0xB2, 0x00) # PGEN_COLOR14
    board.WriteReg(0xB2, 0x00) # Reserved

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

    您好,文强:

    此寄存器配置对应于以下 patgen 设置:

    如果您有模拟 Launchpad、则可以使用如上所示的"图形发生器"选项卡来配置 patgen 寄存器。 如果您没有 ALP、则可以告诉我您需要为上面的屏幕截图中的每个参数配置哪些值、并且我可以为您生成寄存器值。

    此致!

    卢卡斯

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

    您好, Lucas,ñ a

    感谢 您的回复!

    我没有 ALP、我想知道、除了配置映像格式之外、是否还需要配置其他寄存器(CSI_PORT_SEL、FWD_CTL1、CSI_PLL_CTL 和 CSI_CTL 除外)?  必须如何配置接收端的 CSI 才能正确接收数据?

    如果我按照上面的配置操作、收到的原始数据的分辨率是多少?

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

    您好,文强:

    无需额外的寄存器配置即可接收 patgen 数据。 接收到的原始数据的分辨率为1920字节 x 1080行。

    此致!

    卢卡斯

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

    您好, Lucas,ñ a

    感谢 您的回复!

    我有四个问题需要您的帮助。

    1. PGEN_LINE_PD 的值设置为0x0B93、该值是如何计算的?
    2. 将 PGEN_TOT_LPF 设置为0x0465、我们在接收数据时是否不需要考虑该问题? 仅读取1080行? 该额外行何时被丢弃?
    3. PGEN_VBP 和 PGEN_VFP 的值是如何产生的? 可以将其设置为0吗? 这有什么影响?
    4. 如果我想将数据设定为4096x512p10、格式仍然为 RAW8、那么我应该将哪些值设定为 PGEN_TOT_LPF、PGEN_LINE_PD、PGEN_VBP、PGEN_VFP?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,文强:

    1. PGEN_LINE_PD 是以10ns 为单位的行周期。 1/帧速率为帧周期、然后除以总行数即可得到线周期。 对于上面给出的配置、1 / 30fps / 1125总行数= 29.63us = 2963 (10ns 单位)= 0xB93。
    2. 解串器将自动检测垂直前沿、后沿和同步线、并将其从活动帧像素中删除。
    3. 垂直前沿、后沿和同步值由成像仪设置。 当使用 patgen 进行测试时,可以将其设置为包括0在内的任何值。
    4. 在分辨率中、P10是什么意思? 您希望使用什么帧速率、垂直前沿、垂直后沿和垂直同步值? 如果您提供这些值、我可以为您提供所有 patgen 寄存器值。


    此致!

    卢卡斯

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

    您好, Lucas,ñ a

    感谢 您的回复!

    P10表示10个帧。  在我的解决方案中、传感器是一个雷达。 一条线中有1024个采样点、一个点存储为32位、因此使用 RAW8进行传输。 我可以读取分辨率为4096*512的数据,然后将其转换为1024*512。 在本例中、我仍然不明白如何配置 PGEN_CFG 和 PGEN_BAR_SIZE。 PGEN_VBP 和 PGEN_VFP 的值为0、垂直同步如何反映在图形发生器中?

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

    您好,文强:

    您的雷达传感器是否使用 CSI-2数据包格式? 这是使用960/953的要求。 根据我的理解、传感器数据是通过953和960以4096x512的分辨率使用 RAW8编码发送的? 然后在960?

    PGEN_CFG 和 PGEN_BAR_SIZE 寄存器配置由 patgen 创建的图像。 您可以将它们设置为任何有效值、或保留默认值。 抱歉、虽然垂直前沿可以为零、但后沿确实需要一些非零值。 原因是需要一些缓冲时间来处理每条水平线。

    此致!

    卢卡斯