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.

AM2612: CLKOUT

Part Number: AM2612

Tool/software:

Hi TI Support Team,

I want to use the CLKOUT of AM2612 to provide clock(e.g.:50Mhz) for external devices, but I couldn't find a configurable option in syscfg. How should I proceed

Best regard

zx

  • Hi ZX,

    Please expect a delay in response since the expert is Out-of-office.

    Regards,
    Shaunak

  • Hi zx

    You can refer to the above section from TRM, on how to program CLKOUT.

    Regards,
    Akshit

  • ZX, 

    I have used this code to enable clock out on the LP: 

    #define MSS_TOP_RCM_U_BASE (0x53200000U)
    #define MSS_TOP_RCM_LOCK0_KICK0 (0x00001008U)
    #define MSS_TOP_RCM_LOCK0_KICK1 (0x0000100CU)


    #define MSS_TOP_RCM_CLKOUT0_CLK_SRC_SEL (0x00000C00U)
    #define MSS_TOP_RCM_CLKOUT1_CLK_SRC_SEL (0x00000C04U)
    #define MSS_TOP_RCM_CLKOUT0_DIV_VAL (0x00000C08U)
    #define MSS_TOP_RCM_CLKOUT1_DIV_VAL (0x00000C0CU)
    #define MSS_TOP_RCM_CLKOUT0_CLK_GATE (0x00000C10U)
    #define MSS_TOP_RCM_CLKOUT1_CLK_GATE (0x00000C14U)
    #define MSS_TOP_RCM_CLKOUT0_CLK_STATUS (0x00000C18U)
    #define MSS_TOP_RCM_CLKOUT1_CLK_STATUS (0x00000C1CU)


    #define IOMUX_U_BASE (0x53100000U)
    #define IOMUX_IO_CFG_KICK0 (0x000002A4U)
    #define IOMUX_IO_CFG_KICK1 (0x000002A8U)

    SOC_controlModuleUnlockMMR( SOC_DOMAIN_ID_MAIN, 5 );
    SOC_controlModuleUnlockMMR( SOC_DOMAIN_ID_MAIN, 6 );


    *(volatile uint32_t*)(IOMUX_U_BASE + IOMUX_IO_CFG_KICK0) = 0x83E70B13;
    *(volatile uint32_t*)(IOMUX_U_BASE + IOMUX_IO_CFG_KICK1) = 0x95A4F1E0;

    *(volatile uint32_t*)(MSS_TOP_RCM_U_BASE + MSS_TOP_RCM_LOCK0_KICK0) = 0x01234567;
    *(volatile uint32_t*)(MSS_TOP_RCM_U_BASE + MSS_TOP_RCM_LOCK0_KICK1) = 0xFEDCBA8;


    *(volatile uint32_t*)(0x531001E8) &= 0xffffff00U; // 0x10u (enable CLKOUT0)
    *(volatile uint32_t*)(MSS_TOP_RCM_U_BASE + MSS_TOP_RCM_CLKOUT1_CLK_SRC_SEL) = 0x444; // Select the clock source
    *(volatile uint32_t*)(MSS_TOP_RCM_U_BASE + MSS_TOP_RCM_CLKOUT1_DIV_VAL) = 0x999; // Divide by 10

    This should work for you. 

    -Jason