sd卡的學習總結

? ? ? ? 單片機接觸到現(xiàn)在有好多的必備的技能還是很欠缺,其中SD的學習就顯得格外重要,只要稍微涉及到大量的數(shù)據(jù)儲存就必須用到存儲介質來做存儲手段,而SD是目前很經(jīng)濟又實用的一種方法。

? ? ? ? 我前前后后學SD的也有一段時間了,每次看SD卡的數(shù)據(jù)手冊都是強迫看了兩天就又忙別的去了,等下次再來看的時候就又忘的差不多了,效率極低,看的又不全面(全英文的,看的太累),今天算是把SD給 弄出來了,明天上個文件系統(tǒng)再試下效果?,F(xiàn)在總結一下sd卡的操作步驟,主要是在SPI模式上開發(fā)的,SD總線后面有空了再對比SPI模式做總結。

? ? ? ? 幾個重要的概念和寄存器。

? ? ? ? 命令格式:

? ? ? ? 以b47 為0起始,第b46位是固定為1(傳輸位),b45-b40(暫時不理會),b39-b8(4個字節(jié)的參數(shù)),b7-b1 (7位CRC校驗),b0結束位

響應寄存器

R1:? b0 空閑OR初始化忙中

? ? ? ? b1 超出擦除范圍時擦除復位

? ? ? ? b2 非法命令

? ? ? ? b3 crc校驗錯誤

? ? ? ? b4 擦除序列錯誤

? ? ? ? b5 地址錯誤

? ? ? ? b6 參數(shù)錯誤



:

R2 :


R3;


R4 - R6 與SD總線模式有關,不理會

R7 :


寫數(shù)據(jù)塊之后會有響應


單塊數(shù)據(jù)塊寫:先發(fā)0xFE(起始塊)

多塊數(shù)據(jù)塊寫入操作在數(shù)據(jù)之前發(fā)0xFC,數(shù)據(jù)寫結束發(fā)0xFD。

寫操作


讀操作

注意點:對于標準容量記憶卡,單塊的讀的數(shù)據(jù)大小單位為字節(jié),由指令指定。大容量的SD讀單位為塊。

初始化操作流程:

上電,發(fā)CMD0+片選CS為0進入SPI模式,發(fā)CMD8區(qū)別V2.0以上和V1.0。

若響應非法,則可能為V1.0。(發(fā)CMD58可查看支持操作電壓)繼續(xù)發(fā)ACMD41,"in_idle_state = 0"則為V1.0卡,響應非法命令,則不是SD卡。

若響應合法命令繼續(xù)鑒別V2.0的卡類型。同上發(fā)ACMD41,再發(fā)CMD58獲取CCS區(qū)別是否是標志容量SD卡還是高容量SD卡。

以上是對SD的重點總結,具體還是看SD規(guī)格書V2.0比較詳細。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容