<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
之前折腾了好久没搞定SDRAM的页模式下进行读写,当时利用在FPGA内部设计一个数据产生模块,用于产生0-255的数据分别写入SDRAM的一个页(正好256字节)内。但是读出来的串口上传数据却相当怪异。当时就放下了,搞不定硬撑着也不是办法。
前天又在看不同厂家的类似型号SDRAM的datasheet,结果不经意看到一句话,说是SDRAM在页操作模式下必须使用突发停止命令停止其操作。否则,根据后来推断,我觉得在页操作模式下,如果不发出突发停止命令,那么地址会不停的从0-255翻转,而我们的本意是在第一次0-255地址递增期间会分别送0-255的数据到数据总线上,但是如果不发突发停止命令,那么在下一次命令到来之前,地址总线会重新不停的在0-255之前变化,而最后写入SDRAM的数据则取决于你最后一个0-255地址变化周期内的数据。可想而知,如果我不发停止命令,而假设其操作完成回到IDEL状态,那么最后写入的数据肯定就是一串FF或者00,再或者是最后一个写入的一个数据(如果在写入后数据总线不释放的话)。实践证明,结果正式如此。
呵呵,问题找到了,那么解决问题就是小case了。这回要发挥页模式的灵活性和高效性,那么就要做成一个由外部输入数据控制其一次性操作的字节数,也就是说,外部在读写数据前事先控制一个寄存器,往寄存器写入需要操作的字节数,而进入读写操作后,SDRAM控制器根据外部给出的字节数在适当的时候发出突发停止命令,这样做到了SDRAM的读写操作的字节可以在1-256范围内灵活调整,增强了通用性。
呵呵,问题终归是要解决的!
用户437074 2013-11-5 16:25
用户438650 2013-8-6 12:01
用户438650 2013-8-6 11:44
用户1034237 2012-9-17 15:02
用户1708715 2012-9-11 23:00
用户370946 2012-2-16 19:30
用户928561 2011-8-1 12:40
用户928561 2011-8-1 12:36
用户249726 2011-4-17 10:07
用户1659335 2009-10-29 16:59