lpc177x_8x, 1pc32xx 系列芯片外扩SDRAM配置
这些芯片在设置SDRAM模式寄存器时,具体设置语句如下:
对于16bit SDRAM:
wtemp = *((volatile uint16_t *)(SDRAM_BASE | (0x23<<11)));
对于32bit SDRAM:
wtemp = *((volatile uint32_t *)(SDRAM_BASE | (0x23<<12)));
其中0x23为命令,可变,SDRAM_BASE为SDRAM基址,11,12为命令左移位数。
上面的左移位数,有固定的计算方法,国内只在CSDN一个博客上搜到了相关信息,作者仅说是手册上提供的计算方法,但该博客的一些留言反映手册上找不到有关移位的任何信息,我确信在手册上确实没有。
然后在国外一个网站上也搜到了相关信息,也是只言片语,不过对使用来说够用了,详细的设置方法到底在什么地方提供了呢?不知道的感觉真是不好。
移位数的确定方法:
#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
可以看到,有两个计算分支,第一种计算方法对应RBC地址映射模式,第二种对应BRC地址映射模式。
另外bus32的值如此确定:
2片8bit SDRAM,bus32=0
1片16bit SDRAM,bus32=0
2片16bit SDRAM, bus32=1
4片8bit SDRAM,bus32=1
1片32bit SDRAM,bus32=1
参考网址:
http://www.lpcware.com/content/forum/lcd-ahb-master-interface-sdram-row-bank-colum
posted on 2013-05-26 17:57 ByThisRiver 阅读(1055) 评论(0) 编辑 收藏 举报