运动控制器24:STM32的SDIO功能介绍2

SD卡操作2

擦除三步骤

  1. ERASE_GROUP_START定义连续范围的开始地址
  2. ERASE_GROUP_END定义结束地址
  3. ERASE开始进行擦除。

如果接收到除了SEND_STATUSERASE之外的命令,则:
设置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卡的中断请求

你可能感兴趣的:(运动控制器24:STM32的SDIO功能介绍2)