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.

DM6437 load Program时,出错,data verification failed at address 0x82xxxxxxx

参考的瑞泰创新的板子,第一次打样做了2块板,下载瑞泰的例程,没问题。用的是CSS V3.3版本的软件。

然后这次生产了6个,结果可以下载一些小程序,比如led灯闪烁。下载较大的程序时,就报错:data verification failed at address 0x82xxxxxxx

没接触过DSP,请教可能的问题有哪些?

把两批次的板子上的电阻,挨个都量了一遍,应该是对应的上的。DDR2和DM6437,两次是从不同供货商采购的,丝印标识不一样,应该是生产批号不同。

  • Any,

    address 0x82xxxxxxx是DDR所在地址。请问你的DDR时序是否有按照你使用的DDR芯片和运行的频率调制过?

  • 之前买的核心板用的是两片镁光的MT47H64M16。我们画图是也就按这个型号画了。

    后来少量生产的两次板子,焊接的虽然都是MT47H64M16,但批次不一样,丝印也不一样。

    第一次能成功烧写程序的,焊接的内存是:MT47H64M16HR-3:H;

    这次出问题的,焊接的内存是:MT47H64M16HR-3 IT:G;

    内存型号是根据内存颗粒丝印上的标志,在镁光官方网站上查到的。

    根据MT47H手册,和时序相关的,应该是-3,两者应该都一样的。

    --------------------------------------------------------------

    记错了,报错时,提示地址是0x84(后边记不住了)。

  • Any,

    我遇到过DDR厂商内存更新(参数没有变化)但在同样的板子上时序的确是发生了变化的情况。

    我建议你降低DDR的频率测试一下,看问题是否有改善?

  • EVMDM6437 Startup Sequence Setup Cache (L1P = 32K) + (L1D = 32K) + (L2 = ALL SRAM)... [Done] Setup PinMux... (Normal operation)... [Done] Setup Power Modules (All on)... [Done] Setup PLL1 (DSP = 594 MHz + SYSCLK2 = 198 MHz + SYSCLK3 = 99 MHz + Onchip Oscillator)... [Already Set] Setup PLL2 (VPSS = 54 MHz + DDR2 Phy = 162 MHz + Onchip Oscillator)... [Already Set] Setup DDR2 (162 MHz + 32-bit bus)... [Done] Setup EMIF CS2 - NOR Flash (8-bit bus)... [Done] Startup Complete.

    6块板子有2块可以,其它的下载那些小程序没问题,涉及到DDR2的貌似就下不进去了。

    DDR2频率是在.gel文件里修改吗?第一次接触DSP,纯小白。

    找到了这个文件。

    OnTargetConnect( )
    {
    GEL_TextOut( "\nEVMDM6437 Startup Sequence\n\n" );

    Setup_Cache( ); // Setup L1P/L1D Cache
    Setup_Pin_Mux( ); // Setup Pin Mux
    Setup_Psc_All_On( ); // Setup All Power Domains

    Setup_PLL1_594_MHz_OscIn( ); // Setup Pll1 [DSP @ 594 MHz][1.20V]
    Setup_PLL2_DDR_162_MHz_OscIn( ); // Setup Pll2 [VPSS @ 54 MHz, DDR @ 162 MHz]
    Setup_DDR_162_MHz( ); // Setup DDR2 [162 MHz]

    //Reset_EMIF_8Bit_Bus( ); // Reset Async-EMIF [8-bit bus]
    Setup_EMIF_CS2_NorFlash_8Bit( ); // Setup NOR Flash
    //Setup_EMIF_CS2_SRAM_8Bit( ); // Setup SRAM
    //Setup_EMIF_CS2_NandFlash_8Bit( ); // Setup NAND Flash

    Setup_LED(); //Setup LED

    CheckPCI( );
    GEL_TextOut( "\nStartup Complete.\n\n" );
    }

    DDR2的频率不能任意指定吧?

    忘回复,谢谢。

  • 你好,

    你使用CCS下载你的程序么?如果是,请尝试修改Setup_PLL2_DDR_162_MHz_OscIn( ); // Setup Pll2 [VPSS @ 54 MHz, DDR @ 162 MHz]。

    是的,DDR频率不能任意修改,请参考手册里面支持的最低的DDR频率,尝试一下。

  • 我现在尝试修改.gel文件里的以下两句,不过没有作用。

    Setup_PLL2_DDR_122_MHz_OscIn( ); // Setup Pll2 [VPSS @ 54 MHz, DDR @ 162 MHz]
    Setup_DDR_122_MHz( ); // Setup DDR2 [162 MHz]

    而且,连接板子时,显示的信息仍然是162MHZ。

    EVMDM6437 Startup Sequence

    Setup Cache (L1P = 32K) + (L1D = 32K) + (L2 = ALL SRAM)... [Done]
    Setup PinMux... (Normal operation)... [Done]
    Setup Power Modules (All on)... [Done]
    Setup PLL1 (DSP = 594 MHz + SYSCLK2 = 198 MHz + SYSCLK3 = 99 MHz + Onchip Oscillator)... [Already Set]
    Setup PLL2 (VPSS = 54 MHz + DDR2 Phy = 162 MHz + Onchip Oscillator)... [Already Set]
    Setup DDR2 (162 MHz + 32-bit bus)... [Done]
    Setup EMIF CS2 - NOR Flash (8-bit bus)... [Done]

    Startup Complete.

    --------------------------------------------------------------------------------

    脑子已经乱了,在上面那两行,我只是修改了下函数名称...

     Setup_DDR_162_MHz( ); 这个函数,是调用了setup_ddr2( );这个函数,我将里面的int freq = 162;修改为int freq = 122;

    但Setup_PLL2_DDR_162_MHz_OscIn( );这个函数,是调用的setup_pll_2( 0, 23, 11, 1 );这里不知道该怎么修改了。

    ------------------------------------------------------------------------------------------------

    将setup_pll_2( 0, 23, 11, 1 );这个函数的最后一个参数改成2,这样根据该函数的描述,int ddr2_freq = pll2_freq / ( 2 * ( ddr2_div + 1 ) );应该等于27*24/(2*(2+1)),算下来是108。我将上边的那个setup_ddr2()函数里也改成int freq = 108;

    然后编译,连接,下载程序,问题依旧。