從零實現 SD卡

2021-10-04 08:27:52 字數 1111 閱讀 2522

cubemx軟體版本是v4.23.0,晶元型號是stm32f103zet6,sd卡是閃迪的64g tf卡,然後用了轉大卡的卡槽。

我起初是按照原子的實驗去做,先驗證自己的sd卡是好使的。

我買的閃迪64g tf卡,用tf卡轉sd卡槽,充當sd卡。

stm32f103支援sdio,這個sdio就如同fmc支援nandflash、外部sdram一樣,就是乙個專門支援sd卡的介面,那就很方便了,我們看他還支援mmc卡。那麼sd 1bit、sd 4bits就是說你要用幾個資料口,通過對比原理圖,可以看出用到四個資料口。

那麼我們選擇4 bits wide bus。後面我又試了下1 bit,也能用,只不過慢了大約四倍唄,但是省管腳啊。

具體配置,把分頻因子從0(預設)改為9,這是原子的配置。我自己測試是大於等於2就可以。我配置為5。

生成**.........

增加讀取扇區0的應用程式。

串列埠列印出來,扇區0是啟動扇區,我強烈建議不要往這寫,會把你的sd卡檔案系統破壞掉。這就是之後fatfs實驗挖的坑了。

完畢!1.不要直接套用原子封裝的函式操作sd卡,他的hal版本比較老,入口引數是扇區位址。cubemx的生成的hal是直接操作扇區號。

2.注意不要往0號扇區寫東西,最好拿winhex去看sd卡哪些扇區是空的,往空的地方去寫。

3.如果讀寫不了,建議把分頻因子改大一些,或者格式下sd卡。

4.如果讀出來列印的過程中會出現重啟,有可能不是sd卡問題,可能是時間太長觸發了看門狗,把看門狗的時間改大一些。或者列印一條,喂一次狗。

SD卡讀寫 Verilog實現SD卡讀寫

目前常見的sd卡有兩種形式,一種是標準的sd卡,另外一種是tf卡,無論標準的sd卡或者tf卡,其基本協議是相同的,因此對於程式設計來說,這兩種型別的sd卡的讀寫方式是相同的。針對兩種不同型別的sd卡,其引腳介面訊號定義如下圖所示 標準sd卡 tf卡 對於上述的兩種型別的sd卡,都支援兩種操作模式,分...

2440從sd卡啟動wince

有關sd卡驅動和fat fs的實現用了3個檔案來實現。sdboot.c為sd的驅動 可理解為pdd 層,主要實現一些對sd控制器的配置以及一些基本sd命令的實現和對sd卡的操作。sdmmc.c實現了從sd卡讀取nk並跳到記憶體去執行的 基本可以理解為sd驅動的mdd層 sdfat.c檔案就是實現fa...

SD卡 MMC卡 MS卡 TF卡

sd卡 secure digital memory card 中文翻譯為安全數碼卡 是一種基於半導體快閃記憶器的新一代記憶裝置。sd卡由日本松下 東芝及美國 sd卡的技術是基於 卡 mmc 格式上發展而來,大小和mmc卡差不多,尺寸為32mm x 24mm x 2.1mm。長寬和mmc卡一樣,只是比...