小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

基于SPI總線的SD卡驅(qū)動總結(jié)(轉(zhuǎn))

 Allen 圖書館 2012-02-03

基于SPI總線的SD卡驅(qū)動總結(jié)(轉(zhuǎn))

      來源:http://blog./u1/58780/showart_673609.html
最近粗略的看了SD的Specifications,結(jié)合網(wǎng)上前人的代碼,把SD卡跑通了。處理器是AT91SAM7X256,用SPI接口掛SD卡。 SD卡的協(xié)議我看了兩個版本,1.7和2.0。2.0版本比1.x多了支持HCSD(High Capacity SD),且多了些操作命令(CMD8),下圖說明普卡和高容量卡的硬件使用區(qū)別:



圖上說要想使用HCSD,Host必須支持才行,而普卡是被兼容的。在初始化的時候,也要用CMD8檢查卡的類型是否為HCSD,其他的基本一樣,Spec上給的初始化流程如下圖:




SD卡的驅(qū)動主要有初始化、讀、寫、擦除等。
1、
初始化
步驟:
(1)     
延時至少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ù)開始令牌0xfe(或0xfc
+
正式數(shù)據(jù)512Bytes + CRC
校驗(yàn)2Bytes
默認(rèn)正式傳輸?shù)臄?shù)據(jù)長度是512Bytes,可用CMD16設(shè)置。
3、

步驟:
(1)     
發(fā)送CMD24(單塊)或CMD25(多塊)寫命令,返回0x00
(2)     
發(fā)送數(shù)據(jù)開始令牌0xfe(或0xfc
+
正式數(shù)據(jù)512Bytes + CRC校驗(yàn)2Bytes
4、
擦除
步驟:
(1)     
發(fā)送CMD32,跟一個參數(shù)來指定首個要擦出的扇區(qū)號(SD手冊上說是塊號)
(2)     
發(fā)送CMD33,,指定最后的扇區(qū)號
(3)     
發(fā)送CMD38,擦除指定區(qū)間的扇區(qū)
3步順序不能顛倒。
還要注意發(fā)送CMD命令時,后面要跟一個字節(jié)的CRC校驗(yàn)數(shù)據(jù),總之要保證每次發(fā)送的數(shù)據(jù)包長度符合協(xié)議要求,命令、數(shù)據(jù)符合時序要求。


以上是我對SD卡驅(qū)動的一點(diǎn)總結(jié),不當(dāng)之處請指正,歡迎交流

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多