SD初始化流程

2021-06-20 00:21:42 字數 739 閱讀 8019

sd初始化流程

當host上電後,使所有的卡裝置處於卡識別模式,完成設定有效操作電壓範圍,卡識別和請求卡相對位址等操作。

1、   傳送指令cmd0使卡裝置處於idle狀態;

2、   傳送指令cmd8,如果卡裝置有response,說明此卡為sd2.0以上;

3、   傳送指令cmd55+acmd41,該指令是用來探測卡裝置的工作電壓是否符合host端的要求;

在傳送acmd41這類指令之前需要先傳送cmd55指令,在sdio中acmd41指令被cmd5替代。

4、   傳送指令cmd11轉換工作電壓到1.8v;

5、   傳送指令cmd2獲取cia;

6、   傳送指令cmd3獲取rca(relative card address)

sd初始化分析

系統上電時,sdi控制器會去掃瞄匯流排上的所有裝置,然後對掛在匯流排上卡裝置進行初始化。進行掃瞄和初始化工作都是由mmc_scan函式來完成,以下是linux驅動中初始化流程圖(感謝同事linkin的圖)。

sdio、sd和mmc這三者的初始化流程稍有不同,是向下相容的。

原文見:

SD初始化流程

sd初始化是sd卡操作的關鍵。初始化過程需要注意sd卡的型別。sd卡 2g以下 和sdhc卡 2g至32g 分別支援sd協議1.0及2.0,命令和初始化過程略有不同。匯流排模式分為spi和sd兩種,以sdhc卡sd模式通訊為例,介紹sdhc初始化過程。一 sd specification v2.0中...

SD卡初始化

傳送指令時可能會有狀態轉換,尤其是初始化時。指令分為兩類 一類為通用指令,另一類為針對某種卡的特定指令,但特定指令的實際數可以通用指令相同,所以cmd55 特定指令來傳送特定指令,1 傳送cmd0指令 go idle state 卡進入idle狀態 2 傳送指令cmd8 send if cond 如...

STM32初始化SD卡流程

1,初始化sdio外設,關閉sdio時鐘。2,上電,開啟時鐘,注意此時時鐘應不能超過400khz,且此時是只有一位資料線,要到初始化完成後再調時鐘與資料線寬度。3,延時最低74個時鐘週期。使時鐘與sd卡穩定,否則會出錯。4,傳送cmd0,需要返回0x01,進入idle狀態 5,為了區別sd卡是2.0...