SD卡 fpga

assign         block_write_data    =    sdcard_write_data;
assign         sdcard_read_data    =   block_read_data;
assign         sdcard_read_valid   =  (state == sd_cmdread) && block_read_valid;
assign         sdcard_read_end        =  (state == sd_read_end);
assign         sdcard_write_end    =  (state == sd_write_end);
assign         sdcard_write_data_req =(state == sd_cmdwrite)&& block_write_data_rd;

     现在就刚看完的一段代码做一个总结发言。因为要用到sd卡做一些操作,因此自学这部分。简要介绍一下今天学到内容,就不赋图了。先就上面代码做一个说明,sdcard_write_data为外部要写入sd卡的数据,block_write_data为sd卡内部流转的数据,其实来讲在端口定义时,直接赋值也行。  block_read_data为内部数据,sdcard_read_data为用户要读取的数据,sdcard_read_valid这个信号是告诉外部的设备或者程序,我的这个数据可以用了,你来读吧,其实如果你要存入FIFO或者ram、ddr中,这个就是你的写使能, sdcard_read_data就是你要写入进去的数据。一个使能信号对应一个数据;block_read_valid这个呢,是内部的数据有效信号,因为只有当当前为读状态,且当前数据是有效的,才能拉高外部的这个有效信号,sdcard_read_end 和sdcard_write_end    就不用多说了,就是当读完或者写完了就去拉高这两个信号。sdcard_write_data_req这个信号是内部发出的写请求信号,请求外部写入数据,因为内部不够512个数据,所以就要外部输入数据。

                sd_cmd0 :
                    begin
                        if(block_cmd_req_ack && ~block_cmd_error)
                            begin
                                state <= sd_cmd8;
                                block_cmd_req <= 1'b0;
                            end
                        else 
                            begin
                                block_cmd_req <= 1'b1;
                                block_data_len <= 16'd0;
                                block_cmd_response <= 8'h01;
                                block_cmd <= {8'h00,8'h00,8'h00,8'h00,8'h00,8'h95};
                            end
                    end    

这一段是cmd0命令的操作符,可从中看到block_cmd,block_cmd_response,这两个信号,即命令和它的回应,而且只有当给出的命令有回应而且跟当前的sd卡相符合时,2.0,1.0.还是MMC卡,我用的是2.0的卡。这一部分就这样。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值