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.

[参考译文] TMDS273EVM:LVDS CBUFF 示例数据速率和放大器;时钟

Guru**** 2693225 points

Other Parts Discussed in Thread: TMDS273EVM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1595714/tmds273evm-lvds-cbuff-example-data-rate-clock

器件型号: TMDS273EVM

大家好、TI 大师们、

使用 TMDS273EVM 的 Im、我的目标是通过发送一些缓冲器并使用示波器监控信号来评估 LVDS 接口。

使用默认示例时、通过测量 225MHz CLK_P 并将其与 TRM 中支持的值 (SPRUIU0E) 对齐、我看到选择了 2 个通道、配置为 450Mbps(LVDS DDR 时钟):
LDVS_SUPPORTED_MODES.png

示例驱动程序配置 HSI 时钟:

    /* Configure HSI interface Clock */
    HW_WR_REG32(CSL_MSS_TOPRCM_U_BASE + CSL_MSS_TOPRCM_HSI_CLK_SRC_SEL, 0x222);
    HW_WR_REG32(CSL_MSS_TOPRCM_U_BASE + CSL_MSS_TOPRCM_HSI_DIV_VAL, 0x333);


为了使用其他支持的模式和数据速率、我需要您的帮助来解释这一点:

通过浏览 TRM 和时钟架构、我看到它利用了 时钟源:PLL_DSP_CLK (0x222 -> 2 ):
image.png

时钟分频器为 0x333->3:
image.png


  1. 在此表中看不到分频器值 3 “我在担心什么?“
  2. 225MHz 时钟是如何生成的 使用这些设置(来源:2、分频器:3)?
  3. 我希望按顺序发送多个缓冲区 、但当我在循环中激活/停用会话时、代码不会按预期运行(仅当我再次运行此示例时)、那么此驱动程序处理连续数据流的最佳做法是什么?

提前感谢、
Konstantinos

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

    您好、

    指定的专家目前已离职、预计会延迟答复。 如果您在 2-3 天内没有收到消息、请 ping 此主题。

    此致、
    Johnson

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

    尊敬的 Konstantinos:

    1.“0x333"表示“表示  CSL_MSS_TOPRCM_HSI_DIV_VAL is the actual divider-1, so the actual divider here is 4: 1800/4 = 450Mhz

    2. To get 225Mhz, you will need to set the divider to 0x777 (8-1 = 7)

    3. For continuous processing, you will need two CBUFF_createSession(): one for Ping-buffer and one for Pong-buffer. You will need to activate/deactivate ping and pong buffers alternatively, so that the EDMA is filing one buffer, the DSP is processing the other.

    Best regards,

    Ming 

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

    很抱歉我迟到了

    示例的默认值为 HSI_SRC_SEL = 0x222 且 HSI_DIV_VAL = 0x333
    我测量了 J7 PIN44 LVDS_CLK_P -> 225MHz
    也许有另一种方法可以改变时钟? 这两条线的区别吗? 您能否查看提供的示例?

    当我尝试为  HSI_SRC_SEL & HSI_DIV_VAL 尝试其他值时、测量值始终为 225Mhz。

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

    尊敬的 Konstantinos:

    正如我在上一篇文章中提到的、如果您将 HSI_DIV_VAL 设置为 0x333、则 HSI_CLK 将为 450MHz。

    如果将 HSI_DIV_VAL 设置为 0x777、则 HSI_CLK 将为 225Mhz。

    根据 TRM 表 11-1107、LVDS_CLK 似乎在 CFG_LVDS_GEN_0 中设置:

    -位 14:CFG_LVDS_CLK_SEL 和

    -位 21-16:cfg_LVDS_CLK_DIV

     在 CBUFF 设置之后、您能否检查 CFG_LVDS_GEN_0 的值?

    此致、

    Ming

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

    默认示例为 CFG_LVDS_GEN_0:
    (唯一的区别是我使用了一个通道)

    CFG_LVDS_CLK_SEL :1
    CFG_LVDS_CLK_DIV:2.
    (与您的相同)




        /* Configure HSI interface Clock */
        HW_WR_REG32(CSL_MSS_TOPRCM_U_BASE + CSL_MSS_TOPRCM_HSI_CLK_SRC_SEL, 0x222);
        HW_WR_REG32(CSL_MSS_TOPRCM_U_BASE + CSL_MSS_TOPRCM_HSI_DIV_VAL, 0x333);


    但是、 我测量了  J7 PIN44 LVDS_CLK_P -> 225MHz、采用上述默认设置

    此外、如果我更改高于  CFG_LVDS_CLK_DIV、 CSL_MSS_TOPRCM_HSI_CLK_SRC_SEL、 CSL_MSS_TOPRCM_HSI_DIV_VAL 的值、则测量的时钟不会改变。
    最新的 TRM 是 Reve、 CFG_LVDS_GEN_0 位于第 3126 页 — 表 11-864。

    因此、 HSI_CLK 与的关系如何  J7 PIN44 LVDS_CLK_P 以及实际更改它的正确编程序列是什么?


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

    尊敬的 Konstantinos:

    我无法找到有关 TRM 中 LVDS_CLK 和 HSI_CLK 之间关系的直接描述、而是从 MCU+ SDK 和 TRM 中的线索中找到。 LVDS_CLK 是 HSI_CLK(SDR 模式)或 HSI_CLK 的 1/2(DDR 模式)。

    基于 CFG_LVDS_GEN_0 位 15 的值 (cclksel1、0->使用 2 分频[Q2 路径]) 和 10 位(CFG_BIT_CLK_MODE、1:DDR 时钟模式)。 您使用的是 DDR 模式、因此 LVDS_CLK (225MHz) 是 HSI_CLK (450MHz) 的 1/2。

    您可以尝试通过将位 15 更改为 1 来更改 LVDS_CLK。 希望您将 LVDS_CLK 设为 450MHz。

     未使用 CFG_LVDS_CLK_DIV、因为位 14 设置为 1: 使用 CLK_HSI_DIG、您也可以尝试将位 14 (cclksel) 设置为 0、然后  将使用 CFG_LVDS_CLK_DIV。

    如果您的目标比特率为 450Mbps(225Mhz DDR 时钟)、则当前 CBUFF 示例具有正确的设置。

    此致、

    Ming