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.

请教一下,TI 原厂6678 开发板 ,版本是 REV.3B, DDR3校正总是失败。



Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
Initialize DDR speed = 66.67MHzx/1x20 = 1333.333MTS
DDR3 leveling has failed, STATUS = 0x40000064

这是打印出的信息 ,可否请各位大神 指点一下迷津,如何解决 ,谢谢了!

  • void C6678_EVM_DDR_Init(float clock_MHz, DDR_ECC_Config * ecc_cfg)

    就在这个函数里面 ,求解答。

  • int KeyStone_DDR_full_leveling()
    {
    Uint32 uwStatus;

    /*enable full leveling*/
    gpDDR_regs->RDWR_LVL_RMP_CTRL =
    (unsigned int)(1<<CSL_EMIF4F_RDWR_LVL_RMP_CTRL_REG_RDWRLVL_EN_SHIFT);

    /*start full leveling*/
    gpDDR_regs->RDWR_LVL_CTRL =
    (unsigned int)(1<<CSL_EMIF4F_RDWR_LVL_CTRL_REG_RDWRLVLFULL_START_SHIFT);

    /*Read back any of the DDR3 controller registers.
    This ensures full leveling is complete because this step is executed
    only after full leveling completes.*/
    uwStatus= gpDDR_regs->RDWR_LVL_RMP_CTRL; //dummy read

    //Wait 3ms for leveling to complete
    TSC_delay_ms(3);

    if(gpDDR_regs->STATUS&(CSL_EMIF4F_STATUS_REG_RDLVLGATETO_MASK
    |CSL_EMIF4F_STATUS_REG_RDLVLTO_MASK
    |CSL_EMIF4F_STATUS_REG_WRLVLTO_MASK))
    {
    printf("DDR3 leveling has failed, STATUS = 0x%x\n", gpDDR_regs->STATUS);
    uwStatus = 1;
    return uwStatus;
    }
    uwStatus = 0;
    return uwStatus;
    }

    这是校正函数代码,修改哪里能解决这个问题呢?

  • Hi Mingzi

    We tried this project in our EVM, but not found this issue.

    Could you use other EVM to have a try too?

  • 你好:

    我遇到了相同问题,程序使用K1_STK1.1,硬件也是TMDSEVM6678L Rev.3B. 我看到原理图中NAND FLASH型号是K4B1G164G-BCH9,但实际板子中的型号是K4B2G1646Q-BCK0,不知错误是否于此有关? 

  • 上面NAND FLASH写错了,应为DDR3 SDRAM

  • 你好,我遇到了同样的问题,也是TI EVM上DDR3初始化失败,出问题的代码也一样。请问你的问题解决了吗?

  • Hi,

    我們也遇到一樣的問題。

    我們發現TMDSEVM6678LXE 上的 DDR3 使用 K4B2G1646Q 有這個問題。

    而 TMDSEVM6678LE (無 SA) 上的 DDR3 使用 K4B2G1646C 卻沒有這個問題。

    Snaku

  • 我後來使用把這個範例程式中 KeyStone_DDR_init() function 裡面呼叫 C6678_EVM_DDR_Init() 的那行 mark 掉,改用 CCS 提供的 GEL (i.e. evmc6678l.gel) 中的 ddr3_setup_auto_lvl_1333() 來設定 DDR3,這樣在 TMDSEVM6678LXE 板子上執行 Memory Test 就不會遇到  "DDR3 leveling has failed" 問題,記憶體測試也都正常。

    所以我想問題應該是 STK 範例程式的 C6678_EVM_DDR_Init() 對 DDR3 的設定不適用於TMDSEVM6678LXE 板子(有 security accelelrtor 版本)。但我不能確定是兩種不同的 DDR3 晶片問題還是 兩種不同的 C6678 晶片問題。