運動控制器24:STM32的SDIO功能介紹2

SD卡操作2

擦除三步驟

  1. ERASE_GROUP_START定義連續(xù)范圍的開始地址
  2. ERASE_GROUP_END定義結(jié)束地址
  3. ERASE開始進行擦除。

如果接收到除了SEND_STATUSERASE之外的命令,則:
設置ERASE_RESET并解除擦除并執(zhí)行新的命令
如果設置了保護,則不會擦除,并且會設置狀態(tài)為:WP_ERASE_SKIP

寬總線選擇和解除選擇

  • SET_BUS_WIDTH,默認為1位
  • 在SELECT/DESELECT_CARD選擇了卡以后,該命令才有效

保護管理

三種保護方式

內(nèi)部卡保護
機械保護
密碼保護

內(nèi)部卡的寫保護
  • CSD:CARD SPECIAL DATA卡的特殊數(shù)據(jù),也就是保護的區(qū)域
  • 廠商和內(nèi)容商可以對整卡進行寫保護,也可以保護一個扇區(qū)
  • WP_GRP_ENABLE,后WP_GRP_SIZE確定保護的扇區(qū)個數(shù)
  • SET_WRITE_PROT和CLR_WRITE_PROT控制制定組的保護,SEND_WRITE_PROT進行連續(xù)32個數(shù)據(jù)塊保護
機械寫保護開關

這個數(shù)碼相機用的SDIO卡有機械開關

密碼保護
設置密碼
清除密碼
卡上鎖
卡解鎖
強制擦除

卡狀態(tài)寄存器

響應格式R1包含32位卡狀態(tài)域,除了少數(shù)幾位保留以外,其他都有對應的卡狀態(tài),如12:9位4位,包含了如下的信息:


4.png

SD狀態(tài)寄存器

包含一個512位的數(shù)據(jù)塊,包含卡的特定功能,大部分都保留了。


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  // 保護的狀態(tài)

擦除

  ERASE_GROUP_START  \\擦除首地址
  ERASE_GROUP_END   \\ 擦除末地址
  ERAS          \\  執(zhí)行擦除

五種響應類型

  • R1:普通響應命令一共48位,除了開始位,傳輸位和結(jié)束位以外,包括7位CRC,還包括了命令索引和卡狀態(tài)
  • R1b:比1多一個卡忙碌的信號,此信號在數(shù)據(jù)線上發(fā)送。
  • R2:用于CID和CSD,一共136位,和R1不同的是,一共有1..127是用于傳輸CID和CSD的值。
  • R3:48位,用于返回OCR寄存器的32位值。
  • R4:48位,用于包含指定RCA,寄存器的地址和值。
  • R4b:48位,用于IO卡的ORC操作。
  • R5:中斷請求
  • R6:適用于IO卡的中斷請求
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容