SD卡操作2
擦除三步骤
- ERASE_GROUP_START定义连续范围的开始地址
- ERASE_GROUP_END定义结束地址
- ERASE开始进行擦除。
如果接收到除了SEND_STATUS和ERASE之外的命令,则:
设置ERASE_RESET并解除擦除并执行新的命令
如果设置了保护,则不会擦除,并且会设置状态为:WP_ERASE_SKIP
宽总线选择和解除选择
- SET_BUS_WIDTH,默认为1位
- 在SELECT/DESELECT_CARD选择了卡以后,该命令才有效
保护管理
三种保护方式
内部卡保护
机械保护
密码保护
内部卡的写保护
- CSD:CARD SPECIAL DATA卡的特殊数据,也就是保护的区域
- 厂商和内容商可以对整卡进行写保护,也可以保护一个扇区
- WP_GRP_ENABLE,后WP_GRP_SIZE确定保护的扇区个数
- SET_WRITE_PROT和CLR_WRITE_PROT控制制定组的保护,SEND_WRITE_PROT进行连续32个数据块保护
机械写保护开关
这个数码相机用的SDIO卡有机械开关
密码保护
设置密码
清除密码
卡上锁
卡解锁
强制擦除
卡状态寄存器
响应格式R1包含32位卡状态域,除了少数几位保留以外,其他都有对应的卡状态,如12:9位4位,包含了如下的信息:
4.png
SD状态寄存器
包含一个512位的数据块,包含卡的特定功能,大部分都保留了。
5.png
命令与响应
块传输用写命令
SET_BLOCK_COUN // 写多少
WRITE_BLOCK // 写块
WRITE_MULTIPLE_BLOCK //写多块
PROGRAM_CID //设置CID
PROGRAM_CSD //和CSD
SET_WRITE_PROT //保护的地址
CLR_WRITE_PROT //清保护的地址
SEND_WRITE_PROT // 保护的状态
擦除
ERASE_GROUP_START \\擦除首地址
ERASE_GROUP_END \\ 擦除末地址
ERAS \\ 执行擦除
五种响应类型
- R1:普通响应命令一共48位,除了开始位,传输位和结束位以外,包括7位CRC,还包括了命令索引和卡状态
- R1b:比1多一个卡忙碌的信号,此信号在数据线上发送。
- R2:用于CID和CSD,一共136位,和R1不同的是,一共有1..127是用于传输CID和CSD的值。
- R3:48位,用于返回OCR寄存器的32位值。
- R4:48位,用于包含指定RCA,寄存器的地址和值。
- R4b:48位,用于IO卡的ORC操作。
- R5:中断请求
- R6:适用于IO卡的中断请求
网友评论