前些天,购买了一块Espier V1.1的FPGA电路板,看中的是Cyclone4 这块比较高级的芯片,同时板子上有256Mbit SDR SDRAM,资源比较丰富,比较有可玩性。
同时看到论坛里
luyaker同学刚好改写好了相应的SDRAM串口实验,就下载了。
可是我编译、下载后,工作却不正常。表现为,开始收到一些0xFE,后面全部是0xFF。而正常情况为,从0x00开始每次加1。就在论坛里请教了luyaker同学,他建议我改变SDRAM的时钟相位(shift time),我试过很多时钟相位(shift time),可惜都不成功。
今天在公司里,用示波器调试,发现一些有用的情况,最后发现项目里面的几个问题:
1)auto precharge 命令配置得不对:
应该通过拉高地址线A10来使能auto precharge命令 , 但luyaker同学错误的用了地址线A11
2)auto refresh 应该是 64ms内刷新8192 次, 即2次刷新时间间隔约7.8us
3)DQ0 & DQ1 互换了, DQ2 & DQ3 互换了 【虽然不影响实验效果,但也最好纠正一下】
改正后,MT48LC16M16A2-75 SDRAM可以在我的Espier V1.1的FPGA电路板正确的跑起来了。开心啊
把项目压缩一下,上传供大家参考:
SDRAM_96M_串口实验OK.zip
(966.08 KB, 下载次数: 227, 售价: 1 分芯积分)
[
本帖最后由 goodeew 于 2013-12-17 14:25 编辑 ]