hello,这里是晴空-Tiso~
本篇博客我们介绍一下模块库中的SD卡扇区读写控制驱动,这个SD卡扇区读写控制驱动用到的是我们的SPI通信协议,刚好就用到了我们前面跟大家介绍过的SPI主机驱动,当然具体是如何详细去控制我们SPI驱动的不是我们这个文档的内容,我们主要还是来跟大家介绍一下库里的SD卡扇区读写控制驱动的端口设计和对应的使用方式。
如果这个模块对您有所帮助,您也可以去看看我们的模块库哔哩哔哩工房 (bilibili.com),让它来为您的FPGA电子世界添砖加瓦,再次感谢大家,你们的支持是阿空最大的更新动力!
首先,我们还是来看一下参数,在这里我们需要输入主时钟的时钟频率、SPI低速速率和SPI高速速率,这里SPI低速速率主要是因为我们的SD卡初始化的过程中用到的是低速,我们需要用到这个低速来给我们的SD卡进行初始化操作。而高速速率则是SD卡正常读写时候的速率。
其次就是对应的模块输入输出接口,mosi、sclk、cs_n、miso这四个是SPI通信接口,我们直接与SD卡这个从机器件连接就可以了,clk和rst是时钟和复位,idle是空闲标志位,start,mode,done是开始信号,模式选择和完成信号,sector_addr是我们对应需要进行读写操作的扇区号。这些应该都不难理解,但是我们这边还对应有两组ram控制接口。
这是因为我们这个模块的运行逻辑是,我们先将要写入到SD卡对应扇区的数据(512byte)写入一个512*8的ram(wr_ram)中,然后我们再通过模块将ram数据写入SD卡对应扇区。读取也是将一个扇区数据全部读取到ram(rd_ram)中,我们再操作ram获取到我们需要的数据。这两个ram是在我们驱动里面已经实例化好的,如此一来,我们对SD卡的写入就可以近乎简化为对ram的写入,对SD卡的读取就近乎简化为了对ram的读取操作。
本次我们介绍了我们模块库里的eeprom读写驱动功能,下次如果我们做了页读写模块再来向小伙伴们继续分析。
写FPGA参数化模块,阿空是很认真的,也希望这份认真可以帮助到更多热爱FPGA的小伙伴。
模块库目前已售出超过两百份,非常感谢大家的支持,阿空也会努力继续给大家更新更多的模块~
CSDN上的解说文档主要是向购买了模块库的小伙伴对各个模块的使用介绍和答疑
也希望阿空模块库的各个参数化模块能像一块块积木一样,帮助各位热爱FPGA的小伙伴们搭建起来自己的逻辑电路城堡!
模块库获取链接(B站工房):哔哩哔哩工房 (bilibili.com)