关于特权同学的 SDRAM控制器 部分代码的多种纠结。
`W_READ: work_state_r <= `W_CL;`W_CL: work_state_r <= (`end_tcl) ? `W_RD:`W_CL;
// TREAD_CLK = 8 突发读数据周期256CLK
`W_RD: work_state_r <= (`end_tread) ? `W_RWAIT:`W_RD;
// 后面需要添加一个读完成后的预充电等待状态
`W_RWAIT: work_state_r <= (`end_trwait) ? `W_IDLE:`W_RWAIT;
// SDRAM写数据状态
`W_WRITE: work_state_r <= `W_WD;
// TWRITE_CLK = 8,突发写数据256CLK
`W_WD: work_state_r <= (`end_twrite) ? `W_TDAL:`W_WD;
`W_TDAL: work_state_r <= (`end_tdal) ? `W_IDLE:`W_TDAL;
// SDRAM自动刷新状态
`W_AR: work_state_r <= (TRFC_CLK == 0) ? `W_IDLE:`W_TRFC;
`W_TRFC: work_state_r <= (`end_trfc) ? `W_IDLE:`W_TRFC;
为什么`W_RD`W_WD均等待8个周期呢?不是过了潜伏期后一个时钟周期就可以读了么。? 有完整代码不?
那8个周期,应该是突发读/写8个数据。
这个跟mode register 的设置有关 。
按理说,读/写完之后都需要一个预充电操作,在你给的程序里分别对应 `W_RWAIT 和`W_TDAL,这不是太麻烦了吗?
同时,你给的这个程序好像不支持连续的读写。
有没有联系方式?大家交流一下 O(∩_∩)O~ 关注··· · · · ·· · 待人解答 我看了代码 发现就是给8个数据的时钟延时,分开写步骤性更好一些 有涉及到Full Page的读写么?对于如何自刷新很是困惑。 顶一下! 最近也在弄特权的sdram控制器,同样纠结,楼主你弄出来没? 俺也在弄,很纠结 我也是很纠结啊。。。。。。。。。。。。。 我纠结了好久,调不出来哎。数据由增1变成增2就出错了。。。 这是我调出来的数据,一部分对,一部分错了,真郁闷!可能是时序的问题 MamBa_24 发表于 2014-3-23 20:26
这是我调出来的数据,一部分对,一部分错了,真郁闷!可能是时序的问题
那个程序原来是25Mhz的晶振,我自己的是20Mhz,后来我把pll改了下,但是9600的串口通信还是失败 zcy0517 发表于 2014-3-23 20:50
那个程序原来是25Mhz的晶振,我自己的是20Mhz,后来我把pll改了下,但是9600的串口通信还是失败 ...
加Q,一起探讨1069217225 zcy0517 发表于 2014-3-23 20:50
那个程序原来是25Mhz的晶振,我自己的是20Mhz,后来我把pll改了下,但是9600的串口通信还是失败 ...
LZ,有加我的Q吗?你QQ多少? xiaoluo8805 发表于 2012-5-7 11:30
有涉及到Full Page的读写么?对于如何自刷新很是困惑。
同样对full page的自刷新很疑惑,不知道先行者你有没有解决这个疑惑啊。特权的程序明显在长突发读写过程中会屏蔽掉自刷新中断的。
页:
[1]