主要有2点:
EMC的配置
SDRAM芯片本身的配置
SDRAM芯片主要是MODE寄存器的配置,实际就是将模式字通过地址线传到芯片。但是得注意移位。如果用16bit单片子,bus32=0,否则是1. 列地址具体看片子,bank数决定bank bits,例如4bank,bits为2. 另外注意的是16bit单片挂到32位cpu,burst len要设置为2
/* Compute shift value for mode word, we will need it later */
#if SDRAM_USE_PERFORMANCE_MODE==1
/* Performance mode : Row - Bank - Col mapping */
modeshift = SDRAM_COLS + bus32 + 1 + SDRAM_BANK_BITS;
bankshift = SDRAM_COLS + bus32 + 1;
#else
/* Low power mode : Bank - Row - Col mapping */
modeshift = SDRAM_COLS + bus32 + 1;
bankshift = SDRAM_COLS + SDRAM_ROWS + bus32 + 1;
#endif
比如在LPC3250挂了个16bit的单片,高性能的,
SDRAM0_MODE_REG EQU (0x80000000 | (0x31 << 12)) ; SDRAM0 Mode Register Address
如果是低功耗片子,根据上面的公式,移动10位