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.sogou.com/websnapshot?ie=utf8&url=http%3A%2F%2Fwww.lpcware.com%2Fzh-hans%2Fcontent%2Fforum%2Flcd-ahb-master-interface-sdram-row-bank-colum&did=f574d8fe6ab0916b-cc9b61008dfcfeba-51b2ec706b21b153a78588c04a6732da&k=dcab7d84b5a997c5792680bf9959b8c4&encodedQuery=modeshift+sdram&query=modeshift+SDRAM&&p=40040100&dp=1&w=01020400&m=0&st=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编辑  收藏  举报