新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)對(duì)SD卡讀寫(xiě)系列(三)

單片機(jī)對(duì)SD卡讀寫(xiě)系列(三)

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
對(duì)SD卡的驅(qū)動(dòng)主要有初始化、讀、寫(xiě)、擦除等。

1、初始化步驟:

本文引用地址:http://m.butianyuan.cn/article/201611/320312.htm

(1)延時(shí)至少74clock

(2)發(fā)送CMD0,需要返回0x01,進(jìn)入Idle狀態(tài)

(3)循環(huán)發(fā)送CMD55+ACMD41,直到返回0x00,進(jìn)入Ready狀態(tài)。

如果是MMC,此步應(yīng)發(fā)送CMD1。

2、步驟:

(1)發(fā)送CMD17(單塊)或CMD18(多塊)讀命令,返回0x00

(2)接收數(shù)據(jù)開(kāi)始令牌0xfe(或0xfc)+正式數(shù)據(jù)512Bytes + CRC校驗(yàn)2Bytes

默認(rèn)正式傳輸?shù)臄?shù)據(jù)長(zhǎng)度是512Bytes,可用CMD16設(shè)置。

3、寫(xiě)步驟:

(1)發(fā)送CMD24(單塊)或CMD25(多塊)寫(xiě)命令,返回0x00

(2)發(fā)送數(shù)據(jù)開(kāi)始令牌0xfe(或0xfc)+正式數(shù)據(jù)512Bytes + CRC校驗(yàn)2Bytes

4、擦除步驟:

(1)發(fā)送CMD32,跟一個(gè)參數(shù)來(lái)指定首個(gè)要擦出的扇區(qū)號(hào)(SD手冊(cè)上說(shuō)是塊號(hào))

(2)發(fā)送CMD33,,指定最后的扇區(qū)號(hào)

(3)發(fā)送CMD38,擦除指定區(qū)間的扇區(qū)

此3步順序不能顛倒。

還要注意發(fā)送CMD命令時(shí),后面要跟一個(gè)字節(jié)的CRC校驗(yàn)數(shù)據(jù),總之要保證每次發(fā)送的數(shù)據(jù)包長(zhǎng)度符合協(xié)議要求,命令、數(shù)據(jù)符合時(shí)序要求。



評(píng)論


技術(shù)專區(qū)

關(guān)閉