美文网首页我爱编程
运动控制器24:STM32的SDIO功能介绍2

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

作者: 吴松乾 | 来源:发表于2018-01-25 15:50 被阅读0次

    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

        本文链接:https://www.haomeiwen.com/subject/drbvaxtx.html