博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sd卡的操作
阅读量:4346 次
发布时间:2019-06-07

本文共 736 字,大约阅读时间需要 2 分钟。

最近看野火的sd卡驱动,记录下学习过程吧(怕过个一年半载的把sd卡忘光光了)。

sd卡的驱动反正是很成熟了,这里主要记载自己对sd的见解:

通常我们用的sd卡有两种,sdsc(0-2G)和sdhc(2-32G),两者的驱动差别不大(主要差别在于读写操作时,sdsc是基于字节而sdhc是基于块,因为sd的地址只有32位)。但是大容量的sdxc于此相比就相差很大了。

sd的初始化:

1 初始化与sd卡的连接的硬件条件(MCU的配置,IO)

2 上电延迟(>74个clk)如图1

3 复位卡,发送cmd0,进入IDLE状态

4 发送cmd8,检查是否支持2.0协议

5 根据不同的协议检查sd卡,(cmd55,ACMD41) 

6 选中要操作的sd卡

 

 

 

 

 

图一

(此为sd卡上电后的操作图,其实这里就已经告诉详细的告诉了我们sd卡上电的流程图了)

为了更详细的了解sd卡的识别和初始化操作,下面再从sd的pdf中截图来看

 

我想看了此图,对sd卡的初始化和识别应该不是难事了吧

 

下面是对sd卡的操作,再讲解sd卡的读写之前我们再来看下sd状态图:

 

上图为sd卡状态图,由上图我们就可以知道sd卡的发送和接收状态是如何切换的

具体的读写、擦除操作就不说了,反正就是几个命令(代码网上应该也有很多),要特别注意的是sdsc和sdhc相对应的操作单位是不一样的,切记。

参考资料:战舰的stm库开发说明;Simplified_Physical_Layer_Spec.pdf;野火的玩转stm32

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/vendanner/archive/2013/04/07/4784387.html

你可能感兴趣的文章
java-集合框架
查看>>
RTMP
查看>>
求一个数的整数次方
查看>>
点云PCL中小细节
查看>>
铁路信号基础
查看>>
RobotFramework自动化2-自定义关键字
查看>>
CMU Bomblab 答案
查看>>
2016 - 1 -17 GCD学习总结
查看>>
linux安装php-redis扩展(转)
查看>>
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>
react.js
查看>>
P1313 计算系数
查看>>
NSString的长度比较方法(一)
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>
自定义滚动条
查看>>