终于找到一篇说人话的了。使用下面的东西进行SD卡初始化,接着用命令进行读写操作看下一篇博客!

1.SD卡的官方资料(我承认这个资料很垃圾,比起民间的技术总结它的内容可谓又臭又长,但是作为基础也要了解一下,SD协议不用看)
        2.清晰明了的MMC卡时序图(虽然这个是MMC卡的,但是在初始化的时候CMD0的时序是一样的)
电路:我用的SD卡的电路其实很简单,参考SD卡的官方资料中的电路链接就可以的。
供电问题:由于SD卡的电压是3.3V,所以你的CPU必须支持3.3V的IO端口输出。
再来说一说鸡毛蒜皮的细节:
1.为了使SD卡初始化进入SPI模式,我们需要使用的命令有3个:CMD0,ACMD41,CMD55(使用ACMD类的指令前应先发CMD55,CMD55起到一个切换到ACMD类命令的作用)。
2.为什么在使用CMD0以后不使用CMD1?CMD1是MMC卡使用的指令,虽然本文并不想讨论MMC卡的问题,但是我还是要说:为了实现兼容性,上电或者发送CMD0后,应该首先发送CMD55+ACMD41确认是否有回应,如果有回应则为SD卡,如果等回应超时,则可能是MMC卡,再发CMD1确认。
3.正确的回应内容应该是:
      CMD0——0x01(SD卡处于in-idle-state)
      CMD55——0x01(SD卡处于in-idle-state)
      ACMD41——0x00(SD卡跳出in-idle-state,完成初始化准备接受下一条指令)
      这里要说的是如果最后的回应内容还是0x01的话,可以循环发送CMD55+ACMD41,直到回应的内容0x00。
4.在所有的指令中,唯独CMD0特殊,在向SD卡发送以前需要向SD卡发送74+个时钟。那么为什么要74个CLK呢?因为在上电初期,电压的上升过程据SD卡组织的计算约合64个CLK周期才能到达SD卡的正常工作电压他们管这个叫做Supply ramp up time,其后的10个CLK是为了与SD卡同步,之后开始CMD0的操作,严格按照此项操作,一定没有问题。
5.关于SD卡的SPI总线,在读入数据时SD卡的SPI是CLK的上升沿输入锁存,输出数据也是在上升沿。
6.向SD卡写入一个CMD或者ACMD指令的过程是这样的:
首先使CS为低电平,SD卡使能;其次在SD卡的Din写入指令;写入指令后还要附加8个填充时钟,是SD卡完成内部操作;之后在SD卡的Dout上接受回应;回应接受完毕使CS为低电平,再附加8个填充时钟。
7.在SD卡的Din没有数据写入时,应使Din保持高电平。

SD卡要点及心得:

写入一个CMD命令时,首先将CS拉低,在SD卡的DIN引脚输入命令及相应的参数和校验码后,再附加8个CLK,此处写即是为了读,必须有时钟才能读数据的,现在就可以从接受缓冲寄存器里面读数据了,因为写入的是无效的指令,所以SD卡不会给予反应,在此期间SD卡的片选都应该是低电平,这样才能正确的读出数据。

SD卡的初始化,需要先给予至少74个CLK后,再发送CMD0,因为CMD0没有参数,后面发出3个字节的0即可,再加上校验码0x95,共六个字节,发送完之后就可以读取SD卡的回应码,返回1即表明SD卡进入空闲状态,接着发送CMD41,同样没有参数发送0即可,校验码为0xff,SD卡即跳出空闲状态,可以接受命令了

要点:SPI模式下,SD卡只能读或写1个扇区。

SD卡读一个块:

发送一个读命令,后面的参数是读取的块的首地址和0xff,SD会以R1回应,如果地址正确,回应应该为0。接着是SD卡发送数据,以令牌0xfe为起始,后面是要读取的数据,最后是2个字节的校验码。

SD卡写一个块:

发送一个写命令和地址参数,后跟校验码,不采用校验码,发送0xff即可,SD卡会以R1回应,如果SD卡接受命令,返回0,接着发送0xfe起始令牌码,要写入的已知长度的数据,和两个字节的0xff。

当要写入的数据书写完毕,SD卡此时处于忙状态,此时SD卡的D0脚被拉低以表示忙状态,主机可以读取D0上的数据以判断SD卡的状态。当主机此时释放CS线时,D0脚也会被同时释放

FPGA开发之SD卡初始化相关推荐

  1. ipc开发之sd卡裸盘存储

    应该很少人在ipc里面用裸盘存储吧,我来试试,先用君正t31来试试,实在是经常有客户说你们的sd卡怎么又坏了??? 坏了只能格式化啊?其实整个盘没有坏,只是只要卡有些什么小坏块之类的,就挂载为只读或者 ...

  2. ZCU106开发之SD卡/QSPI启动

    感谢大家漫长的等待!!我们团队从2017底拿到ZCU106后就一直在进行相关研发,由于手头上的活比较多就把ZCU106开发详解的发布给延迟了.现在我们将ZCU106开发过程中遇到的问题和解决办法跟大家 ...

  3. android 视频开发sd卡,Android开发之SD卡文件操作分析

    本文实例讲述了Android开发之SD卡文件操作.分享给大家供大家参考,具体如下: 前面的文章中写过直接操作手机自带存储器的程序,这次就接着上次文章协议下对sd卡的文件操作.与自带存储不同的是使用sd ...

  4. 监控器sd卡初始化怎么恢复数据?有这三种方法可尝试

    sd卡监控器数据能恢复吗?监控器sd卡初始化怎么恢复数据?如果您的监控器sd卡被初始化(格式化)导致数据丢失,建议立即停止使用sd卡,因为如果您继续使用sd卡,它可能会覆盖您要恢复的数据,导致无法恢复 ...

  5. 1.SD卡初始化、写入、读取、数据比较

    设计目标: 1.sd卡初始化完成 2.往sd卡内的某一扇区写入数据 3.将对应扇区中的数据进行读取 4.比较写入数据与读取数据是否一致 sd卡顶层: sd卡采用spi模式,有片选cs.时钟clk.命令 ...

  6. SD卡初始化以及命令详解

    SD卡是嵌入式设备中很常用的一种存储设备,体积小,容量大,通讯简单,电路简单所以受到很多设备厂商的欢迎,主要用来记录设备运行过程中的各种信息,以及程序的各种配置信息,很是方便,有这样几点是需要知道的 ...

  7. FPGA开发之SRIO接口

    FPGA开发之SRIO接口回环测试 一.接口部分 s_axis_ireq:发送接口 m_axis_treq:接收接口 m_axis_iresp:接收应答接口 s_axis_tresp:发送应答接口 t ...

  8. (linux)SD卡初始化-mmc_sd_init_card函数

    为了学习SD/SDIO协议,看了一下linux中初始化SD卡的流程,结合代码更容易SD初始化是怎么做的. 下面图截自:"SD Specifications Part 1 Physical L ...

  9. FPGA开发之RAM IP的使用

    CORE Generator里有很多的IP核,适合用于各方面的设计.一般来说,它包括了:基本模块,通信与网络模块,数字信号处理模块,数字功能设计模块,存储器模块,微处理器,控制器与外设,标准与协议设计 ...

最新文章

  1. 网络营销外包专员浅析尽管快照不见了网络营销外包仍在继续
  2. android ScrollView实现上拉、下拉更新
  3. opencv生成随机图(随机彩图,随机灰图)
  4. Windows 命名管道 + 异步I/O模型
  5. 成功解决importError cannot import idnadata
  6. CVPR 2018 TRACA:《Context-aware Deep Feature Compression for High-speed Visual Tracking》论文笔记
  7. 使用 BOOST_PROTO_DEFINE_OPERATORS 使用非原型类型 std::vector<> 对表达式进行原型化的示例
  8. 【手机游戏开发优化篇】详解手游[体积]及[运行内存]的优化篇!
  9. pingfangsc字体_2020-iOS GUI-字体规范
  10. iOS中监测来电方案
  11. git配置全局用户名和密码_centos安装mongodb 4.x及配置用户名密码(官方推荐)
  12. python zip函数_Python zip()函数
  13. Ubuntu 14 中给 APACHE2安装 SSL 模块 Enable SSL site on Ubuntu 14 LTS, Apache 2.4.7:
  14. UOJ#269. 【清华集训2016】如何优雅地求和
  15. 易语言html截图,易语言如何指定区域截图;易语言怎么才能全屏截图
  16. 微信小程序通过”链接/文字/数字等等“生成二维码
  17. 字节跳动将双月OKR调整为季度;马斯克批OpenAI违背初心:被微软控制,只顾赚钱;苹果上新348元省电保护膜|极客头条
  18. Unity 使用ContentSizeFitter刷新不及时的问题
  19. 外挂制作--------过NP技术渐渐
  20. GB编码,汉字在编译器中数值

热门文章

  1. 树莓派4B+ 连接WIFI后,图标频闪,无法上网
  2. 企业直播中场战事:270万家用户企业会选择谁?
  3. 清华计算机系转专业,清华大学可以转专业吗 清华大学新生转专业政策
  4. 超全!互联网大厂薪资和职级一览
  5. Spark使用Log4j将日志发送到Kafka
  6. 二维数组转json字符串,json字符串转二维数组
  7. 微信小程序之插件未授权访问
  8. 某论坛程序员男女朋友的讨论。大家可以踊跃发言
  9. 机器学习从入门到创业手记-数据分析实战
  10. 中国铁物等3公司撤销IPO今年共16家终止审查