SD卡指令集
SD详细命令描述

详细命令描述表1 基本命令(类0和类1)命令索引类型参数响应缩写描述CMD0 bc [31:0]无用—GO_IDLE_STATE 重置所有卡到Idle状态CMD1 保留CMD2 bcr [31:0]无用R2 ALL_SEND_CID 要求所有卡发送CID号CMD3 Bcr [31:0]无用R6SEND_RELATIVE_ADDR 要求所有卡发布一个新的相对地址RCACMD4 不支持CMD5 保留CMD6 保留CMD7 ac[31:16]RCA[15:0]无用R1 选中/不选中卡CMD8 R7 发送接口状态命令CMD9 ac[31:16] RCA[15:0]无用R2 SEND_CSD寻址卡并让其发送卡定义数据CSDCMD10 ac[31:16] RCA[15:0]无用R2 SEND_CID寻址卡并让其发送卡识别号CIDCMD11 adtc[31:0]数据地址R1READ_DA T_UNTIL_STOP从卡读取数据流,从给定地址开始,知道停止传输命令结束CMD12 ac [31:0]无用R1b STOP 中止多个块的读/写操作CMD13 ac[31:16] RCA[15:0]无用R1 SEND_STA TUS寻址卡并发送卡状态寄存器CMD14 保留CMD15 ac[31:16] RCA[15:0]无用_ GO_INACTIVE_STATE设置卡到inactive状态表2 块读操作命令(类2)命令索引类型参数响应缩写描述CMD16 ac[31:0]块长度R1 SET_BLOCKLEN为接下来的块操作指令设置块长度CMD17 adtc[31:0]数据地址R1 READ_SINGLE_BLOCK 读取一个块CMD18 adtc[31:0]数据地址R1 READ_MULTIPLE_BLOCK连续读取多个块,直到停止命令CMD19-23 保留表3 块写操作命令(类4)表4 写保护(类6)命令索引类型参数响应缩写描述CMD28 ac[31:0]数据地址R1b SET_WRITE_PROT设置地址组保护位。
SD卡各文件夹功能详解和指令大全v880

*#25#调频试验
* 983 * 2726#SIM联系人作品1
* 983 * 37#SIM联系人作品2
* 983 * 6726#SIM联系人作品3
* 983 * 154#“测试”菜单(12:Self-starting/Software版/硬件版本/核酸/测试旗/ [完成] /板串口/蓝牙地址/ SMS安全/短信报名状态/闪存式/泌乳素版本/串行配置)
* 983 * 477#全球定位系统GPS测试
* 983 * 21#音频回路测试
* 983 * 70#自动检测
*#18#LED测试
*#19#TouchPaint测试
* 983 * 36#FM调频试验
* 983 * 57#恢复出厂设置
* 983 * 473#相机
*#23#摄像机
30、Picstore图片浏览软件建立的一个目录。
31、Playlists 播放列表的缓存文件夹。
32、renren 顾名思义,人人网客户端的缓存文件夹。
33、screenshot 貌似是截屏图片保存的目录,不过我不记得自己装过screenshot这个软件,或许不好用删了。
Android系统中SD卡各文件夹功能详解
1、.android_secure 是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用了,小心别误删。
2、.Bluetooth 用蓝牙之后就会有这个。
3、.mobo Байду номын сангаас Moboplayer的缓存文件。
22、handyCurrency 货币汇率相关的文件夹,装了handycalc(科学计算器)之后才会有。
Micro SD 卡(TF卡) spi 模式实现方法

Micro SD 卡(TF卡)spi 模式实现方法现在我们手机的内存卡多为Micro SD卡,又叫TF卡,所以Micro SD卡比SD卡常见。
自己曾经也想写写SD卡的读取程序,但又不想特地再去买个SD卡,这时想起手机内存卡不是和SD卡很像吗?在网上查了以后发现SD卡和Micro SD卡其实也就大小和引脚不一样,它们的操作其实是一样的,所以网上的SD卡读写代码其实可以直接拿来用。
关于SD卡和Micro SD卡的引脚定义和不同可见下两表:我们可以发现Micro SD卡只有8个引脚是因为比SD卡少了一个Vss。
当然你也可以买个卡套套在Micro SD卡上,这样一来大小就和SD卡一样大,这时候卡套上的9个引脚就和SD卡一样了,你可以完全当做SD卡来操作。
spi下电路的连接非常简单,接上电源线Vdd和地线Vss,再接上spi的CS,SCLK,DI(MOSI)和DO(MISO)就可以了,其他引脚可以放空。
注意SD卡的电源和操作电压都为2.7-3.6V,5V的单片机要进行电平转换或串电阻限流。
还有记得SD卡的CS,SCLKh和DI要用10~100K的电阻上拉。
我是套了卡套接的电路,因为Micro SD卡的引脚太密了,不好焊接,SD卡相对引脚好焊。
因为没有卡座,而且也没专门的PCB我就直接焊到卡套上,诶牺牲了一个卡套。
下面是我自己画的电路图:上面Micro SD卡的硬件电路就好了,下面我们讲讲Micro SD卡的软件驱动和指令集。
SD卡的命令格式如下,6字节共48位,传输时最高位(MSB)先传输:SD卡的command(命令)占6 bit,一般叫CMDx或ACMDx,比如CMD1就是1,CMD13就是13,ACMD41就是41,依此类推。
Command Argument(命令参数)占4 byte,并不是所有命令都有参数,没有参数的话该位一般就用置0。
最后一个字节由7 bit CRC校验位和1 bit停止位组成。
SD指令大全

NOTE:1) class1,class3,class9:SPI模式不支持!2) 继SD1.1之后又推出了SD2.0,主要特性是支持更大容量。
SD1.1中卡容量存放于CSD 寄存器中,而由于其规范中相关域的值较小,固最大只能表示2G地址。
随着Nand容量的大大提高,SD1.1已经不适合潮流,因而推出了SD2.0。
初始化流程大同小义,只需要CMD0之后再加上CMD8命令的识别。
SD1.1不支持CMD8,而SD2.0的CMD8能读到卡的接口信息。
如果卡响应CMD8为无效命令,则走SD1.1的流程,可能是SD1.1或MMC。
如CMD8响应正确,则很可能是SD2.0了。
3) SD卡具有安全加密功能,内置128bit加密位,在加密状态下,用户需提供密码才可以访问卡内的数据。
在卡上电时,若卡包含密码,卡自动进入锁定状态,读写命令均返回错误,以保护卡内容不被读出及修改。
密码设置功能由CMD42实现,其数据包中包括该命令中所有的信息。
Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit00 Erase Card Lock/UnLock ClrPwd SetPwd1 Psw_Length2 Pwd Data...PwdLen+1擦除:此位置1时,卡的密码和内容会被强制擦除,在遗忘密码时可使用此功能。
锁定/解锁:此位置1时,表示命令结束后状态为锁定,为0,表示卡解锁。
清除密码:此位置1,表示清除卡的旧密码,此时数据中必须包含旧密码的正确内容。
加密:此位置1,表示设置卡的新密码,数据中必须包含新密码内容;更改密码时,新密码紧跟随旧密码内容。
在任意刻,主机可以通过CMD13命令读取卡的内部状态,判断其锁定状态。
bit0置1表示卡处于锁定状态。
1、设置密码使用CMD16设置Block长度为密码长度为PWD_LEN+2;发送CMD42命令:0x6A,0x00,0x00,0x00,0x00,0x95;发送命令数据:0x01,LEN,CMD_DATA0,CMD_DATA1……,0xFF,0xFF;使用CMD16恢复原Block长度。
DGUS屏使用指南

目录一.硬件连接 (1)1.屏命名规则 (1)2.C系列屏 (1)2.1. 实物图如下图1(具体型号请参考对应数据手册)所示: (1)2.2. 串口引脚接法说明: (2)2.3.用户接口方式 (2)3.T系列屏 (2)3.1 .实物图如下图2(具体型号请参考对应数据手册)所示: (2)3.2 .10pin串口引脚接法说明: (3)3.3. 8pin串口引脚接法说明: (3)3.4. 用户接口方式 (3)4.S系列屏 (4)4.1. 实物图如下图3(具体型号请参考对应数据手册)所示: (4)4.2. 10pin串口引脚接法说明: (4)4.3. 8pin串口引脚接法说明: (4)4.4. 用户接口方式 (5)5.18系列屏 (5)5.1. 实物图如下图4(具体型号请参考对应数据手册)所示: (5)5.2. 6pin串口引脚接法说明: (6)5.3. 用户连接端子 (6)二.软件设计 (6)1.开发原理 (6)2.开发前准备资料 (7)2.1 软件 (7)2.1.1 配置软件 (7)2.1.2 0号字库软件 (9)2.1.3 汉字字库生成软件 (10)2.1.4 迪文ICO生成图标库软件 (11)2.1.5 迪文图片分辨率转换软件 (14)2.2 硬件 (16)2.2.1 连接线 (16)2.2.2 下载工具 (17)3.软件开发步骤 (18)3.1. 软件界面介绍 (18)3.2. 通讯说明 (18)3.2.1 数据帧架构 (18)3.2.2 指令集及说明 (19)3.2.3 0x80、0x81指令说明 (19)3.2.4 0x82、0x83指令说明 (20)3.3. 例程说明 (20)3.3.1. 屏按键功能(与上位机交互) (21)3.3.2. 屏显示/不显示变量功能(启动描述指针功能) (21)3.3.3. 数据存储功能(掉电保存) (23)3.3.4. 上电初始化 (24)3.3.5. 不带触摸的屏实现触摸屏功能 (25)4.SD卡升级内核程序 (27)4.1. SD卡升级内核应满足以下任一条件: (27)4.2. SD卡升级注意事项 (27)三.注意事项 (27)一.硬件连接1.屏命名规则图12.2. 串口引脚接法说明:图23.2 .10pin串口引脚接法说明:4.S系列屏4.1. 实物图如下图3(具体型号请参考对应数据手册)所示:图3后的短接焊盘来改变电平为3.3V的COMS电平;供电可以通过焊接屏后的短接焊盘来改变供电范围,具体参数请参考对应型号数据手册;4.3. 8pin串口引脚接法说明:4.4. 用户接口方式10 Pin_1.0mm FCC , 8 Pin_2.54mm5.18系列屏5.1. 实物图如下图4(具体型号请参考对应数据手册)所示:图45.2. 6pin 串口引脚接法说明:引脚名称 说明 GND 接地485_- 接485接口的B 端 485_+ 接485接口的A 端232_Tx 屏发送端,接控制端的接收端 232_Rx 屏接收端,接控制端的发送端VIN 典型12V 供电,宽压供电,具体型号屏请以对应数据手册为准SD 卡座SD 卡下载接口,凤凰端子边上5.3. 用户连接端子6Pin_3.81mm 凤凰端子;二.软件设计1.开发原理开发原理概述:使用迪文DGUS 配置软件将变量和需要实现的功能关联起来,然后通过控制端给该设置的变量赋值来实现对应的功能,或读取变量值来查看屏当前相关功能的状态; 变量地址:是针对屏来进行定义的,类似组态软件的地址定义,又不相同,主要区别在于组态软件的地址是有特定含义的(即和屏内部的某个功能已绑定),而采用DGUS 屏的变量地址可以与任意功能来进行关联(不出现变量地址交叉的情况即可),变量地址范围为0x0000——0x6FFF ;变量地址 屏显示、触控功能 单片机 绑定 对变量读写 配置软件设置设置配置时定义变量地址2.开发前准备资料2.1 软件2.1.1 配置软件配置软件的主要目的是配置屏的触控、通讯参数设置及显示参数设定;配置软件如下图5所示:图5软件使用操作步骤:1.新建一个工程文件,如下图6所示选择屏的分辨率及存储位置;分辨率举例说明:屏型号:DM T80480T070_06WTT:16位色;80480 :800 x 480的分辨率;注:由于所有K600+的屏都是16位色,软件已屏蔽位色选择功能,若屏需要竖起来显示(及该为480 x 800的方式),可以修改软件目录下Config文件夹上的Terminal文件来修改分辨率,修改为480 x 800 ,如下截图7所示(设置R10=480X800):图6图72.注:若图片不是按照存储位置方式命名,添加进来图片后,软件左边“位置”一列,对应的是设置触控及显示的位置,如将上图位置修改为1,再做设置,那么0界面(即首页)的触控及显示设置都将到次页(即1界面)上。
sd卡读写模块的用法

sd卡读写模块的用法
SD卡读写模块是一种用于读写SD卡存储设备的模块。
它通常通过SPI或SDIO接口与主控制器(如单片机、开发板等)连接,并提供读
取和写入SD卡的功能。
使用SD卡读写模块的步骤如下:
1.初始化:通过控制模块的引脚,配置SPI或SDIO接口的工作模
式和相关参数。
2.卡插入检测:通过检测SD卡插槽的接触状态,确定是否插入了SD卡。
3.卡初始化:对SD卡进行初始化操作,包括发送命令和接收响应,以确认SD卡的类型和性能等信息。
4.数据读取:发送读取命令和地址,接收SD卡返回的数据。
5.数据写入:发送写入命令和地址,将数据写入SD卡的指定块位置。
在使用SD卡读写模块时,我们还可以拓展以下几个方面:
1.多线程读写:通过同时使用多个SPI或SDIO接口,实现多个线程同时读写SD卡,提高数据传输速度。
2. SD卡文件系统:在SD卡中创建文件系统(如FAT32),将数据按照文件的形式进行存储和管理,提供更加灵活和高效的数据存储方式。
3.数据加密:将敏感的数据进行加密后再写入SD卡,防止数据泄露和篡改。
4.文件压缩:在将数据写入SD卡之前,使用压缩算法(如ZIP)对数据进行压缩,减小存储空间占用。
5.数据校验:在读取或写入数据时,进行校验(如CRC校验)以确保数据的完整性和准确性。
总之,SD卡读写模块的使用方式可以根据具体需求进行拓展,以实现更多功能和提升性能。
sd卡读写最小单元

sd卡读写最小单元
SD卡是一种连续存储介质,由许多小的区块组成,每个区块都可以存储一定数量的数据。
SD卡的读写是以“数据块”为单位进行传输的,其中最小的读写单位就是“块”(Block)。
通常情况下,块的长度是字节的整数倍,一般为512字节,有的SD卡的数据块为1024或2048等等。
这意味着如果要修改SD卡中的数据,通常需要以整个数据块为单位进行读写,而不能只修改一个字节的数据。
这种特性使得SD卡的读写操作相对较为低效,尤其是在需要频繁修改少量数据的情况下。
因此,“sd卡读写最小单元”指的是SD卡中数据的最小读写单位,即数据块(Block)。
内存卡SD卡CMD命令

内存卡SD卡CMD命令SD卡CMD命令介绍1条CMD线,所有的命令和回应都是通过这条线一位一位的传输.不同模式或不同版本下,命令有不同含义.(SD(SD[0],SD[3:0]),SPI))1条时钟线,时钟源是来自APH总线时钟4条数据线,SPI模式下用了两条(一条输出,一条输入),SD的一位模式下一条(输出输入),也可以用完四条(输出输入,DATA[0]将分时复用).SD卡是以块为单位,初始化时有配置,一般为512字节,一个扇区有4096个块.2410_SDI控制器:封装了命令和数据的移位操作,支持SDI_1.0规范.有FIFO和DMA 模式.当操作某些寄存器时,控制器会自动帮我们转换成48位的命令包通过移位控制器发给SD从机.SD命令包格式----------------------------------------------------------------------------Bit 位置47 46 [45:40] [39:08] [07:01] 00Bit 宽度 1 1 6 32 7 1值 0 1 x x x 1说明Start Bit Transmission Bit Command Index Argument CRC7 End Bit----------------------------------------------------------------------------在S3C2410中要发送CMD需要设置SDICARG,SDICCON两个寄存器.SDICARG: SDI 命令参数寄存器:SDICCON: SDI 命令控制寄存器:这两个寄存器合起来构成SD协议规范中的CMD命令.其中:SDICARG[31:0] ===================== CMD[39:8] 命令的参数(根据命令所需的参数位格式设置)SDICCON[7:0] ===================== CMD[47:40] 包含Start Bit,Transmission Bit,Command Index.ACMD命令:ACMD是特殊命令.虽然发送方法也是用SDICARG和SDICCON 来发.但是,在发送特殊命令前,要先发送一条普通的不带参数的CMD55命令,表示下一条所发送的命令是特殊命令.例如:CMD52 SDICARG:----------------------------------------------------------------------------Bit 位置 31 [30:28] 27 26 [25:9] 8 [7:0]Bit 宽度 1 3 1 1 17 1 8说明R/W flag Function Number RAW flag Stuff Register Address Stuff Write Data or Stuff Bits----------------------------------------------------------------------------SCR 该寄存器保存的SD的特殊性信息(例如支持的总线位宽,SD 卡的版本),MMC卡没有此寄存器,获取该寄存器的数据需要从数据线读的.CSD 该寄存器保存着SD卡的详细信息,如块大小,SD卡的容量大小,文件系统等信息.RCA SD的相对地址(SD卡已经保存在芯片内部)OCR 该寄存器保存着SD的可供电范围,并且区别是否为HC卡(根据返回的ORC回应第30位是否置1).CIA (Card I/O Area)CID SD卡的唯一ID号CIS (Card Information Structure)跟Linux内核的参数TagList的存放方式很相似,都是以标识号和长度加后续内容表示一个节点.SD模式的命令说明:01000000 CMD0 GO_IDLE_STATE Mandatory Mandatory Used to change from SD to SPI mode /* 使SD卡进入Idle状态 */ 01000010 CMD2 ALL_SEND_CID Mandatory CID not supported by SDIO /* 广播获取卡的CID信息 */01000011 CMD3 SEND_RELATIVE_ADDR Mandatory Mandatory /* 广播获取SD卡所分配的相对地址 */01000100 CMD4 SET_DSR Optional DSR not supported by SDIO01000101 CMD5 IO_SEND_OP_COND Mandatory01000110 CMD6 SWITCH_FUNC Mandatory1 Mandatory1 Added in Part 1 v1.1001000111 CMD7 SELECT/DESELECT_CARD Mandatory Mandatory /* 根据获取指定的RCA,选中SD卡,如果在选中一个卡的状态下,又选中其他的卡,那么之前的卡会自动取消选中,如果发送地址0,则表示取消选中全部卡 */01001001 CMD9 SEND_CSD Mandatory CSD not supported by SDIO /* 获取SD相关的存储信息,如块大小,容量等. */ 01001010 CMD10 SEND_CID Mandatory CID not supported by SDIO 01001100 CMD12 STOP_TRANSMISSION Mandatory /* 停止多块传输操作 */01001101 CMD13 SEND_STATUS Mandatory Card Status includes only SDMEM information /* 获取卡的状态 */ 01001111 CMD15 GO_INACTIVE_STATE Mandatory Mandatory01010000 CMD16 SET_BLOCKLEN Mandatory /* 设置SD卡的块大小,CSD寄存器有描述. */01010001 CMD17 READ_SINGLE_BLOCK Mandatory /* 使SD 卡进入传输状态,读取单个块 */01010010 CMD18 READ_MULTIPLE_BLOCK Mandatory /* 使SD卡进入传输状态,读取多个块,直到收到CMD12为止 */ 01011000 CMD24 WRITE_BLOCK Mandatory /* 使SD卡进入传输状态,写入单个块 */01011001 CMD25 WRITE_MULTIPLE_BLOCK Mandatory /* 使SD卡进入传输状态,写入多个块 */01011011 CMD27 PROGRAM_CSD Mandatory CSD not supported by SDIO01011100 CMD28 SET_WRITE_PROT Optional01011101 CMD29 CLR_WRITE_PROT Optional01011110 CMD30 SEND_WRITE_PROT Optional01100000 CMD32 ERASE_WR_BLK_START Mandatory01100001 CMD33 ERASE_WR_BLK_END Mandatory01100110 CMD38 ERASE Mandatory01101010 CMD42 LOCK_UNLOCK Optional01110100 CMD52 IO_RW_DIRECT Mandatory01110101 CMD53 IO_RW_EXTENDED Mandatory Block mode is optional01110111 CMD55 APP_CMD Mandatory /* 特殊指令前命令,在发送ACMD类指令前,需要发送此命令 */01111000 CMD56 GEN_CMD MandatoryACMD6 SET_BUS_WIDTH Mandatory /* 设置SD卡的总线位宽,这个需要读取SCR确定 */ACMD13 SD_STATUS MandatoryACMD22 SEND_NUM_WR_BLOCKS MandatoryACMD23 SET_WR_BLK_ERASE_COUNT MandatoryACMD41 SD_APP_OP_COND Mandatory /* 获取SD电压值 */ ACMD42 SET_CLR_CARD_DETECT MandatoryACMD51 SEND_SCR Mandatory SCR not supported by SDIO /* 获取SD卡的SCR寄存器的值 */2410 SDI控制寄存器:SDICON 0x5A000000 R/W SDI control register /* 完成SD卡基础配置,包括大小端,中断允许,时钟使能和重启FIFO */SDIPRE 0x5A000004 R/W SDI baud rate prescaler register /* 对SD的时钟分频系数设置 */SDICARG 0x5A000008 R/W SDI command argument register /* 指令的参数存放在这里,不同的命令,参数的位数格式有不用含义 */ SDICCON 0x5A00000C R/W SDI command control register /* 控制指令形式的寄存器,配置SPI还是SDI指令,指令的反馈长度,是否等待反馈,是否运行指令,指令的索引等 */SDICSTA 0x5A000010 R/(W) SDI command status register /* 指令状态寄存器,指令是否超时,传送,结束,CRC是否正确等 */ SDIRSP0 0x5A000014 R SDI response register 0 /* SD回应状态寄存器,R1的回应都用这个,其他长回应会用到4个. */SDIRSP1 0x5A000018 R SDI response register 1SDIRSP2 0x5A00001C R SDI response register 2SDIRSP3 0x5A000020 R SDI response register 3SDIDTIMER 0x5A000024 R/W SDI data / busy timer register /* 设置超时时间 */SDIBSIZE 0x5A000028 R/W SDI block size register /* 设置Block的大小,FIFO共填充的数据.单位是字节*/ SDIDCON 0x5A00002C R/W SDI data control register /* 数据控制寄存器,配置是几线传输,数据发送方向,数据传送方式,要传送多少个块的数据等 */ SDIDCNT 0x5A000030 R SDI data remain counter register /* 数据保持计数器 */SDIDSTA 0x5A000034 R/(W) SDI data status register /* 数据状态寄存器,数据是否发送完,CRC效验,超时等*/ SDIFSTA 0x5A000038 R SDI FIFO status register /* FIFO状态寄存器,DMA 传输时不用判断FIFO */ SDIDAT 0x5A00003C (Li/W,Li/B, Bi/W) 0x5A00003F(Bi/B) R/W SDI data register /* 数据传输寄存器,要严格读完所请求的数据块,否则遗留的数据位将影响下一次的数据传输 */SDIIMSK 0x5A000040 R/W SDI interrupt mask register /* 中断屏蔽 */SD/MMC 初始化流程步骤是:1)配置时钟,慢速一般为400K,设置工作模式2)发送CMD0,进入空闲态,该指令没有反馈3)发送CMD8,如果有反应,CRC值与发送的值相同,说明该卡兼容SD2.0协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.SD卡的命令格式:
SD卡的指令由6字节(Byte)组成,如下:
Byte1:0 1 x x x x x x(命令号,由指令标志定义,如CMD39为100111即16进制0x27,那么完整的CMD39第一字节为01100111,即0x27+0x40)
Byte2-5:Command Arguments,命令参数,有些命令没有参数
Byte6:前7位为CRC(Cyclic Redundacy Check,循环冗余校验)校验位,最后一位为停止位0
2.SD卡的命令
SD卡命令共分为12类,分别为class0到class11,
不同的SDd卡,主控根据其功能,支持不同的命令集如下:
Class0 :(卡的识别、初始化等基本命令集)
CMD0:复位SD 卡.
CMD1:读OCR寄存器.
CMD9:读CSD寄存器.
CMD10:读CID寄存器.
CMD12:停止读多块时的数据传输
CMD13:读Card_Status 寄存器
Class2 (读卡命令集):
CMD16:设置块的长度
CMD17:读单块.
CMD18:读多块,直至主机发送CMD12为止 .
Class4(写卡命令集) :
CMD24:写单块.
CMD25:写多块.
CMD27:写CSD寄存器 .
Class5 (擦除卡命令集):
CMD32:设置擦除块的起始地址.
CMD33:设置擦除块的终止地址.
CMD38: 擦除所选择的块.
Class6(写保护命令集):
CMD28:设置写保护块的地址.
CMD29:擦除写保护块的地址.
CMD30: Ask the card for the status of the write protection bits
class7:卡的锁定,解锁功能命令集
class8:申请特定命令集。
class10 -11 :保留
其中class1, class3,class9:SPI模式不支持
了解了指令的形式和具体的控制内容,下面主要解决的就是MCU与SD卡的通信问题,通信主要需要注意下面的问题:
(1)供电电压:必须是3.3V
(2) 通信模式的切换:SD卡有两种通信模式:SPI模式和SD模式,默认情况下的通信模式是SD模式,但是我们常用的模式是SPI模式,这就需要一个切换模式的方法,具体的实现方法在其他地方也都有介绍,其关键的地方就是先上电延时大于74个时钟周期后发送复位命令,复位成功(接收到0x01的响应)后,连续发送CMD55和ACMD41,直到响应0X00为止,此时SD卡已经进入SPI模式。
(3)上面所说的发送复位命令(CMD0)以及CMD55和ACMD41要有具体的实现方法,需要解决的就是时序问题,。