天天看點

FPGA驅動eMMC系列(二)-------上電初始化

一. 簡介

本篇文章将介紹eMMC如何上電啟動,并且初始化進入到我們所需要的模式當中去,同樣隻介紹相關的内容,一些無關卻重要的知識點,可以自行檢視手冊。

FPGA驅動eMMC系列(一)-------簡介

二. 上電啟動

手冊上面有對這部分的描述,可惜的是,這部分内容在手冊的末尾,約278頁,看完前面大部分,可能還是雲裡霧裡。

歡迎關注 FPGA之旅

回複eMMC代碼V1 擷取完整工程,目前支援高速和HS200.HS400有點問題,可能是我PCB的問題。

手冊上寫明白了,一共分為如下幾個步驟,下面就簡單的說明一下

**2.**上電的時候,時鐘頻率不能超過400KHZ,可以設定為200KHZ

**3.**然後是延時1ms以及74個時鐘周期,延時個1.5ms或者更久就可以了

**4.**重複發送CMD1指令,并且攜帶0xC0FF8080參數(容量一般是大于2G的),直到響應中的OCR寄存器為0xC0FF8080

上電啟動,就這幾點,時鐘頻率和延時需要注意

FPGA驅動eMMC系列(二)-------上電初始化

三. 配置設定裝置位址RCA

在使用eMMC的時候,需要主機為配置設定eMMC配置設定位址,然後選擇對應的eMMC裝置,也就是說一個主機可以挂載多個eMMC存儲器,有點像IIC。

是以在上電後,就需要配置設定位址。配置設定位址也很容易,隻需要依次發送四個指令即可。

CMD2 : 廣播,eMMC發送其CID的值給FPGA,

CMD3 : 攜帶16bit的RCA位址,發送給裝置

CMD9: 攜帶16bit的RCA位址,發送給裝置,如果裝置的位址與接收到的一緻,那麼裝置将會放回其CSD的值,用來确定CMD3是否配置設定位址成功

CMD7:攜帶16bit的RCA位址,選擇該RCA位址的eMMC裝置,完成後,就可以進行讀寫操作了

四. 模式選擇

上電後,預設為相容模式,且資料線為1bit。一般都不是我們所需要的,是以需要進行模式切換

FPGA驅動eMMC系列(二)-------上電初始化

模式切換以及資料位寬選擇都是通過CMD6來實作的,CMD6指令非常重要的,需要好好研究一下,後面會詳細講解。

整個上電初始化的過程就是這樣子的,完成後,就可以進行讀寫操作了。

指令發送過程如下 ,下節将介紹如何編寫指令發送與接收響應的代碼

FPGA驅動eMMC系列(二)-------上電初始化

繼續閱讀