2011年6月5日 星期日

DIY - PIC:PIC18F4550 MCHPMSD 初始化 (八十)

DIY - PICPIC18F4550 MCHPMSD 初始化 ()

計劃中程式首先將 SD 記憶卡先初始化,然後讀取 SD 記憶卡的文件檔案資料,最後寫入資料。
BWS SD 記憶卡程式流程圖
Microchip  MCHPMSD 的文件檔案
 Microchip  MCHPMSD初始化是由 InitFAT()原始程式開始時是先執行 InitializeSystem()但發覺同 InitFAT() 的執行十分相似,不同的是 InitializeSystem() 執行 USB 初始化,但 InitFAT() 祇會執行 SD 記憶卡初始化。

initFAT 副程式流程圖
 SD 記憶卡初始化會啟動 SPI 模式,需要使用的命令有3個:CMD0ACMD41CMD55(使用 ACMD 類的指令前應先發 CMD55CMD55 起到一個切換到 ACMD 類命令的作用)。而且在發出 CMD0 命令前,必須在向 SD 記憶卡發送之前向 SD 記憶卡發送 74+ 個時鐘。因為在上電初期,電壓的上升過程時,根據 SD記憶卡組織的計算約合 64 CLK 週期才能到達 SD 記憶卡的正常工作電壓,這個叫做 Supply ramp up time,其後的 10 CLK 是為了與 SD 記憶卡同步,之後開始 CMD0 的操作,嚴格按照此項操作,一定沒有問題。

SD 記憶卡的 SPI 匯流排,在 SPI CLK 在上升沿時會讀入 SD 記憶卡的資料,在 SPI CLK在下降沿時會輸出資料到 SD 記憶卡。首先使 CS 為低電平,片選 SD 記憶卡,在 SD 記憶卡的 DI 寫入指令;寫入指令後還要附加 8 個填充時鐘,是 SD 記憶卡完成內部操作,之後在 SD 記憶卡的 DO上接受回應,回應接受完畢使 CS 為低電平,再附加 8 個填充時鐘。

相關網址:
※ DIY - PIC:SD 記憶卡規格 (七十)
※ DIY - PIC: FAT 表檔案配置表種類 (七十一)
※ DIY - PIC:SD 記憶卡 FAT 表 (七十二)
※ DIY - PIC:SD 記憶卡初始化 (七十三)
※ DIY - PIC:PIC18F4550 SD 記憶卡電路 (七十四)
※ DIY - PIC:PIC18F4550 SD 記憶卡穩壓電路 (七十五)
※ DIY - PIC:PIC18F4550 SD 記憶卡程式 (七十六)
※ DIY - PIC:PIC18F4550 MCHPMSD 實驗板 (七十七)
※ DIY - PIC:PIC18F4550 MCHPMSD 程式介紹 (七十八)
※ DIY - PIC:PIC18F4550 MCHPMSD 編程開始 (七十九)
※ DIY - PIC:PIC18F4550 MCHPMSD 初始化 (八十)
※ DIY - PIC:PIC18F4550 MCHPMSD 讀取 SD 記憶卡程式 (八十一)
※ DIY - PIC:PIC18F4550 MCHPMSD 寫入 SD 記憶卡程式 (八十二)
※ DIY - PIC:PIC18F4550 MCHPMSD SD 記憶卡程式 (八十三)

相關網址:
※ SD 記憶卡
※ SDHC 記憶卡
※ SDXC 記憶卡

沒有留言:

張貼留言