特权同学

SDRAM初步调试

0
阅读(3978)

还是用的以前的64Mbit三星K4S641632K-UC60,以为之前调试过,虽然时序分析什么的研究没那么透,但是代码移植过来重新整理一下应该能够比较顺 利,结果从周一搞到现在,头疼了我好几个晚上,这下换换思路换换实现方式终于是有点眉目了。

 


         目前实现暂时也是为了调试,PLL部分就是产生100M内部SDRAM工作时钟和外部 驱动SDRAM的时钟,并且还有其它外设工作的25M时钟。简单的有一 个测试用的从0地址到最大地址写入递增数据到SDRAM的模块,SDRAM的控制模块(包括SDRAM的上电初始化、 以及正常工作后的各种命令、地址以及数据流的控制),另外还有一个读写数据的两个FIFO控制的模块,最后 是一个简单的和之前SD卡一样的串口发送模块,用于把从SDRAM读出来的数据 上传到调试终端查看。

 

 

         本来是想用page write/page read的方式操作,但是实际调试起来发现实在搞不定。从众多datasheet里来看,这个K系列应该也是支持Page操作的,不过上传的数据一直都是在末尾出现8个数据,感觉就像是突 发数据为8的操作,所以最后实在没辙了,退而求其次还是8个数据操作吧。不过好 好再处理一下内部的读写控制,应该也是能够满足这个项目的数据流控制的吧。

         和以前不同的是这次使用了cyclone的PLL达到了sdram时钟和内部数据 读写的可控,时序分析上也下了写功夫,对于这个单沿的SDR SDRAM模型相对还是比较简单的。此外用FIFO作为数据流转移控制也比较容易控制,对于连续批量的数据传输而言也是比较合适的做法。

         下一步继续完善这个SDRAM控制器,然后和SD整合起来调试……