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.
参考的瑞泰创新的板子,第一次打样做了2块板,下载瑞泰的例程,没问题。用的是CSS V3.3版本的软件。
然后这次生产了6个,结果可以下载一些小程序,比如led灯闪烁。下载较大的程序时,就报错:data verification failed at address 0x82xxxxxxx
没接触过DSP,请教可能的问题有哪些?
把两批次的板子上的电阻,挨个都量了一遍,应该是对应的上的。DDR2和DM6437,两次是从不同供货商采购的,丝印标识不一样,应该是生产批号不同。
之前买的核心板用的是两片镁光的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;
然后编译,连接,下载程序,问题依旧。