stm32的sd卡读取

stm32的sd卡读取

ID:10910291

大小:177.70 KB

页数:15页

时间:2018-07-08

stm32的sd卡读取_第1页
stm32的sd卡读取_第2页
stm32的sd卡读取_第3页
stm32的sd卡读取_第4页
stm32的sd卡读取_第5页
资源描述:

《stm32的sd卡读取》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、连载】【ALIENTEK战舰STM32开发板】STM32开发指南--第四十四章SD卡实验2013-04-0423:07第四十四章  SD卡实验很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,并且有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸等),能满足不同应用的要求。只需要4个IO口即可外扩一个最大达32GB以上的外部存储器,容量从几十M到几十G选择尺度很大,更换也很方便,编程也简单,是单片机大容量外

2、部存储器的首选。ALIENTKE战舰STM32开发板自带了标准的SD卡接口,可使用STM32自带的SPI/SDIO接口驱动(通过跳线帽选择驱动方式),本章我们使用SPI驱动,最高通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。在本章中,我们将向大家介绍,如何在ALIENTEK战舰STM32开发板上实现SD卡的读取。本章分为如下几个部分:44.1SD卡简介44.2硬件设计44.3软件设计44.4下载验证44.1SD卡简介SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一

3、代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。按容量分类,可以将SD卡分为3类:SD卡、SDHC卡、SDXC卡。如表44.1.1所示:容量命名简称0~2GStandardCapacitySDMemoryCardSDSC或SD2G~32GHighCapacitySDMemoryCardSDHC32G~2TExtendedCapacitySDMemo

4、ryCardSDXC表44.1.1SD卡按容量分类SD卡和SDHC卡协议基本兼容,但是SDXC卡,同这两者区别就比较大了,本章我们讨论的主要是SD/SDHC卡(简称SD卡)。SD卡一般支持2种操作模式:1,SD卡模式(通过SDIO通信);2,SPI模式;主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。SD卡的引脚排序如下图44.1.1所示:图44.1.1SD卡引脚排序图SD卡引脚功能描述如表45.1.2所示:表45.1.2SD卡引脚功能表SD卡只能使用3.3V的IO

5、电平,所以,MCU一定要能够支持3.3V的IO端口输出。注意:在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。SD卡有5个寄存器,如表45.1.3所示:名称宽度描述CID128卡标识寄存器RCA16相对卡地址(Relativecardaddress)寄存器:本地系统中卡的地址,动态变化,在主机初始化的时候确定*SPI模式中没有CSD128卡描述数据:卡操作条件相关的信息数据SCR64SD配置寄存器:SD卡特定信息数据OCR32操作条件寄存器表45.1.3SD卡相关寄存器关于这些寄存器的详细描述,请参考光盘相关SD卡资料。我们在这里就不描述了。接

6、下来,我们看看SD卡的命令格式,如表45.1.4所示:字节1字节2--5字节6765    031    07    1001command命令参数CRC1表45.1.4SD卡命令格式SD卡的指令由6个字节组成,字节1的最高2位固定为01,低6位为命令号(比如CMD16,为10000即16进制的0X10,完整的CMD16,第一个字节为01010000,即0X10+0X40)。字节2~5为命令参数,有些命令是没有参数的。字节6的高七位为CRC值,最低位恒定为1。SD卡的命令总共有12类,分为Class0~Class11,本章,我们仅介绍几个比较重要的命令,如表45.1.5所示:命令参

7、数回应描述CMD0(0X00)NONER1复位SD卡CMD8(0X08)VHS+CheckpatternR7发送接口状态命令CMD9(0X09)NONER1读取卡特定数据寄存器CMD10(0X0A)NONER1读取卡标志数据寄存器CMD16(0X10)块大小R1设置块大小(字节数)CMD17(0X11)地址R1读取一个块的数据CMD24(0X18)地址R1写入一个块的数据CMD41(0X29)NONER3发送给主机容量支持信息和激活卡初始化过程CMD55(0X37)N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。