|
近日為了要DIY一樣?xùn)|西,需要用到大容量記憶體,自然就選中了SD卡,在閱讀了51HEI論壇所有有關(guān)SD卡的文章后,就決定開工了,先是用大卡的套焊接了SPI線,連接STC12的開發(fā)板,選了http://www.zg4o1577.cn/bbs/dpj-186038-1.html“單片機(jī)軟件SPI和硬件SPI讀寫SD卡,TF卡測(cè)試程序”這篇文章,把里面的C代碼編譯后下載到開發(fā)板,LED真的亮了,表示接線沒問題。
接下來就是5天5夜的SD卡之旅,由于我只懂匯編,只能逐一把C改寫成A,過程并不順利,尤其是那個(gè)CMD1,總是搞不成,后來讀到有人說,網(wǎng)上很多關(guān)于SD卡的文章已經(jīng)過時(shí),因?yàn)槲恼掳l(fā)表時(shí)新的SD卡還未誕生,建議去看廠商的說明書,但那些說明書內(nèi)容太多,不容易看,最后搜尋到這個(gè)教程(自行替換.):www點(diǎn)rjhcoding點(diǎn)com/avrc-sd-interface-1.php,乖乖學(xué)習(xí),把命令逐一寫了實(shí)驗(yàn),也終于寫好了,重點(diǎn)如下:
1. 開機(jī)稍等一下
2. 給80個(gè)空時(shí)鐘(CS拉高,做讀取動(dòng)作)讓SD卡同步。
3. 給CMD0命令,(重置,回應(yīng):1字節(jié),“#01H",表示在睡覺)
4. 給CMD8命令,(測(cè)試,回應(yīng):5字節(jié))
5. 給CMD58命令,(獲得參數(shù),回應(yīng):5字節(jié))
6. 給CMD55命令,(告訴SD卡,接下來會(huì)給一個(gè)屬于ACMD的命令,回應(yīng):1字節(jié))
7. 給ACMD41命令,(告訴SD開工,回應(yīng):1個(gè)字節(jié),因?yàn)閯倓偨蠸D開工,回應(yīng)肯定是“#01H”, 表示還在睡)
8. 稍等(SD卡正在忙)。
9. 再給CMD55
10.再給ACMD41
11.檢查回應(yīng),如果是“#00H",表示成功開工了,如果還是”#01H",就繼續(xù)8-11的過程,直到把SD卡喚醒。
到了這一步,就算成功了.
祝各位:新年進(jìn)步!
|
評(píng)分
-
查看全部評(píng)分
|