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.

[参考译文] TDA3XEVM:Vout 像素时钟控制

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526338/tda3xevm-vout-pixelclock-control

器件型号:TDA3XEVM

工具/软件:

输出电压  

   if(displayType == CHAINS_DISPLAY_TYPE_LCD_7_INCH)
    {
        pPrm->deviceId = DISPLAYCTRL_LINK_USE_LCD;
        pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD1;
        pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI1_OUTPUT;
        if ((BSP_PLATFORM_SOC_ID_TDA2EX == Bsp_platformGetSocId()) &&
            (BSP_PLATFORM_PACKAGE_TYPE_17x17 == Bsp_platformGetPackageType()))
        {
            /* In case of TDA2EX and Package is 17 X 17, LCD is on DPI 3 */
            pVInfo->vencId = SYSTEM_DCTRL_DSS_VENC_LCD3;
            pVInfo->outputPort = SYSTEM_DCTRL_DSS_DPI3_OUTPUT;
        }
        pVInfo->vencOutputInfo.vsPolarity    =   SYSTEM_DCTRL_POLARITY_ACT_LOW;
        pVInfo->vencOutputInfo.hsPolarity    =   SYSTEM_DCTRL_POLARITY_ACT_LOW;

        /* Below are of dont care for EVM LCD */
        pVInfo->vencOutputInfo.fidPolarity      =   SYSTEM_DCTRL_POLARITY_ACT_LOW;
        pVInfo->vencOutputInfo.actVidPolarity   =   SYSTEM_DCTRL_POLARITY_ACT_LOW;

        pVInfo->mInfo.standard                  =   SYSTEM_STD_CUSTOM;
        pVInfo->mInfo.width                     =   displayWidth;
        pVInfo->mInfo.height                    =   displayHeight;
        pVInfo->mInfo.scanFormat                =   SYSTEM_SF_PROGRESSIVE;
        pVInfo->mInfo.pixelClock                =   29232u;
        pVInfo->mInfo.fps                       =   60U;
        pVInfo->mInfo.hFrontPorch               =   40u;
        pVInfo->mInfo.hBackPorch                =   40u;
        pVInfo->mInfo.hSyncLen                  =   48u;
        pVInfo->mInfo.vFrontPorch               =   13u;
        pVInfo->mInfo.vBackPorch                =   29u;
        pVInfo->mInfo.vSyncLen                  =   3u;
        pVInfo->vencDivisorInfo.divisorLCD      =   1;
        if(Bsp_platformIsTda3xxFamilyBuild())
        {
            pVInfo->vencDivisorInfo.divisorPCD      =   1;
        }
        else
        {
            pVInfo->vencDivisorInfo.divisorPCD      =   4;
        }

        pVInfo->vencOutputInfo.dataFormat       =   SYSTEM_DF_RGB24_888;
        pVInfo->vencOutputInfo.dvoFormat        =
                                    SYSTEM_DCTRL_DVOFMT_GENERIC_DISCSYNC;
        pVInfo->vencOutputInfo.videoIfWidth     =   SYSTEM_VIFW_24BIT;

        pVInfo->vencOutputInfo.pixelClkPolarity =   SYSTEM_DCTRL_POLARITY_ACT_HIGH;
        pVInfo->vencOutputInfo.aFmt             =   SYSTEM_DCTRL_A_OUTPUT_MAX;

        /* Configure overlay params */

        ovlyPrms->vencId                       = SYSTEM_DCTRL_DSS_VENC_LCD1;
        if ((BSP_PLATFORM_SOC_ID_TDA2EX == Bsp_platformGetSocId()) &&
            (BSP_PLATFORM_PACKAGE_TYPE_17x17 == Bsp_platformGetPackageType()))
        {
            /* In case of TDA2EX and Package is 17 X 17, LCD is on DPI 3 */
            ovlyPrms->vencId                    = SYSTEM_DCTRL_DSS_VENC_LCD3;
        }
    }

我如上所述设置显示类型来设置 Vout 像素时钟。


更新后、测量 Vout 时钟时观察到 149mhz。

似乎没有反映上述设置。

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

    尊敬的 Kim:

    我认为模式信息中的像素时钟并没有真正使用。 您能否在 同一个文件中、在其中设置像素时钟? 需要在该 API 中进行更改。  

    此致、

    Brijesh

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

    你(们)好

    检查结果表明、opp_high 模式下仅支持 149、74.5。

    是否有办法在 opp_high 模式下更改像素时钟?

    此致、

    Kim

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

    尊敬的 Kim:

    您是否在 TDA3x 上使用以太网? 如果没有、就有一个选项、否则就不可能。  

    此致、

    Brijesh

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

    你(们)好

    请勿在 TDA3x 上使用 Eternet

    此致、

    Kim

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

    尊敬的 Kim:

    在 Vision SDKJ3.8 版本中、我们在 opp_high 中以 900MHz 频率支持 1Gh 的 DSP 和 EVE。 此配置使用 两个 DPLL、GMAC PLL 用于为 DSP 提供 1GHz 的频率、DSP_EVE PLL 用于为 900MHz 提供。

    请查找 VISION SDK 3.8 版本中使用的以下配置

    GMAC_PLL

    M = 250、N = 4、M3 = 2、这为 GMAC PLL 的 CLKOUTX2_M3 输出上的 DSP 提供 1GHz 输出。

    DSP_EVE_PLL

    M = 225、N = 4、M2 = 2、这为 CLKOUTX2_M2 输出上的 EVE 提供 900MHz。

    但 这种配置存在限制。 视频像素时钟 也源自使用相同 M2 输出的 DSP_EVE_PLL。  这意味着视频像素时钟可以是 900MHz、450MHz 或 225MHz。 DSS 不支持这些像素时钟、因为它们过高

    我们可以使用 GMC_PLL 为 DSP 获取 1GHz 输出、还可以使用 666MHz 为 EVE 输出、即从同一个 PLL、我们可以获得 DSP 和 EVE 的时钟。 然后、我们可以使用 DSP_EVE_PLL 来获取显示的像素时钟。

    为了使用此机制、我们需要在 VISION SDK 3.8 版本中更改 SBL。 SBL 使用 API SBLUtilsConfigureDspEveryMux 为 DSP 和设备选择父时钟。 此 API 在文件 pdk_01_10_02_07\packages\ti\boot\sbl_auto\sbl_utils\lda3xx\sbl_utils_tda3xx.c 中实现 src 在此 API 中、我们可以看到、选择 DSP 的父时钟作为 GMAC 时钟、选择 EVE 的父时钟作为 DSP_EVE 时钟。 我们需要更改此处、以便也将 GMAC 时钟用于 EVE、如下所示。

    #if (SBL_LIB_CONFIG_DSP_1000GHZ_EVE_900MHz ==(1U))
    开关 (oppId)

    用例 SBLLIB_PRCM_DPLL_OPP_HIGH:
    //RetVal += PMHALCMMuxParentSelect (PMHAL_PRCM_MUX_EAVE_CLK_MUX、
    //PMHAL_PRCM_DPLL_EVE_VID_DSP);
    /*选择 EVE 时钟源*/
    RetVal += PMHALCMMuxParentSelect (PMHAL_PRCM_MUX_EVE_GCLK_MUX、
    PMHAL_PRCM_DPLL_DSP_GMAC);
    RetVal += PMHALCMMuxParentSelect (PMHAL_PRCM_MUX_EVIE_CLK_MUX、
    PMHAL_PRCM_MUX_EVE_GCLK_MUX);
    休息;
    默认值:
    /*选择 EVE 时钟源*/
    RetVal += PMHALCMMuxParentSelect (PMHAL_PRCM_MUX_EVE_GCLK_MUX、
    PMHAL_PRCM_DPLL_DSP_GMAC);
    RetVal += PMHALCMMuxParentSelect (PMHAL_PRCM_MUX_EVIE_CLK_MUX、
    PMHAL_PRCM_MUX_EVE_GCLK_MUX);
    休息;
    }
    #else

    然后、我们可以更改倍频器和除数的值以获得正确的时钟。  这可以在文件 pdk_01_10_02_07\packages\ti\boot\sbl_auto\sbl_lib\sbl_lib\sda3xx\sbl_lib_tda3xx_prcm_dDPLL 中完成 src

    结构实例 dpllGmac15X15CfgOppHigh_20 用于 配置 GMAC PLL、dpllGmac15X15PostDivCfgOppHigh_20 用于配置 opp_high 中的视图。 我们需要  通过将除数 H13 后的值更改为 2 来更改 dpllGmac15X15PostDivCfgOppHigh_20 以获得 666MHz EVE。

    您可以尝试这些更改吗?

    此致、

    Brijesh