日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

eMMC基础技术8:操作模式1-boot mode

發布時間:2024/4/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eMMC基础技术8:操作模式1-boot mode 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.前言

eMMC總線操作包含:

  • boot mode
  • device identification mode
  • interrupt mode
  • data transfer mode

本文主要描述boot mode。

2. boot operation mode

2.1 boot mode狀態機

?

圖 eMMC boot mode state

  • ?pre-idle state

. 三種方式可以進入pre-idle狀態:(1)power on后;(2)GO_PRE_IDLE_STATE命令(CMD0+0xf0f0f0f0參數);(3)hw reset by host

. GO_PRE_IDLE_STATE或hw reset assert后,device端output bus將呈現高阻態,device的初始地址被設置為0x0001,bus會有默認的驅動能力

. device可以檢測到rst_n產生一段脈沖信號,通過上升沿來確定device是否發生了reset操作

.?有兩個boot分區,每個分區大小最小為128KB,boot分區與user area是分離的,單獨編址

.?可以使用CMD6來設置BOOT_PARTITION_ENABLE=1從boot area啟動(否則從user area啟動),進入到pre-boot state,如果BOOT_PARTITION_ENABLE=0或不支持boot mode(4.2以前的版本)則直接進入到idle state

  • pre-boot state

. 上電或reset后且發送第一個命令CMD1之前,CMD LINE要保持至少74個周期的低電平,device識別到,進入boot state執行初始化,并準備boot data

? 若是CMD lines沒有保持74個時鐘周期的LOW,又若是host在初始話過程之前發送任意的正常eMMC命令的話,slave應該沒有任何反應且會退出boot mode到Idle State狀態即card identification mode

注:CMD0+0xfffffffa執行alternative boot初始化是針對4.4的規范,CMD LINE不是保持74個周期的低電平,而是通過發送CMD0,并帶有參數0XFFFFFFFA

  • boot state

主要進行boot數據的讀取操作:

. host要讀取的分區以及data size可以通過extended csd來設置

. 通過保持CMD line低電平或發送CMD0+0XFFFFFFFA來讀取boot數據

. 在讀取數據期間,cmd line必須保持低電平

. host必須采用push-pull模式,直到boot mode結束

. host可以采用single data rate(SDR)或dual data rate(DDR)

. HS200 & HS400在boot mode不支持

. host可以設置是否從device接收boot acknowledge

. 通過拉高CMD line則會終止boot mode進入idle state,從此離開boot mode 進入到card identification mode

注1:在SDR模式中,數據由設備發出的時鐘控制而host則在時鐘上升沿取樣。而且每一個data line都有一個單獨的CRC內容。 注2:在DDR模式中,數據則會在時鐘的上升和下降沿同時取樣,而且每一個data line有兩個CRC內容。在這個模式下,block長度總是為512 bytes,而且數據會以4bit或者8bit模式交叉出現。奇數bytes(1,3,5……511)會被host在時鐘上升沿取樣,而偶數bytes(2,4,6……512)則被host在時鐘的下降沿取樣。設備會附加兩個CRC16到每個有效地data line上(若是4bit數據模式,則有4個line是無效的),一個對應上升沿的奇數bytes,一個對應下降沿的偶數bytes。 注3:所有DAT lines的時序都應該按照DDR時序來。開始bit,結束bit 還有boot acknowledge只在時鐘的上升沿有效。如果這些數據出現在下降沿是沒用的。

2.2 boot mode時序

圖 boot mode時序

進入boot state后:

. 若是boot acknowledge被激活,在CMD信號變LOW之后的50ms之內,slave必須發送acknowledge內容"010"到host。若是boot acknowledge沒被激活,slave不會 ?發送;

.在CMD line變低的1S內,device 必須發出第一個數據給host;

.host必須保持CMD信號為LOW來讀取所有的boot數據,?host必須使用push-pull模式

.當boot數據讀取操作完成,boot操作將會終止;

.通過拉高CMD line則會終止boot mode進入idle state,從此進入card identification mode

.當拉高CMD line后需要經過至少56個clock,才可以發送CMD1

注1:host選擇從哪個partition讀取boot數據是可以被提前設置的(EXT_CSD byte[179], bits[5:3]). Master可以讀取的boot數據大小也是可以計算的(128KB x BYTE_SIZE_MULT (EXT_CSD byte[226]))

注2:host可以通過設置EXT_CSD byte[179],bit 6來選擇是否從slave接受acknowledge,若是選擇接受host可以通過acknowledge確認slave是在boot模式中運行。

注3:在數據傳輸階段若是host把CMD拉高,slave必須在Nst個時鐘周期內中終止數據或者acknowledge內容的傳輸。Nst值為一個數據周期和一個結束bit周期。若是在block傳輸過程中,master終止了boot模式,則slave必須在Nst個時鐘周期內釋放data lines。

3.參考文檔

[1]http://www.jedec.org/sites/default/files/docs/JESD84-B51.pdf

[2]eMMC啟動過程 ?http://blog.sina.com.cn/s/blog_6cb8cdbd0102vno5.html

?

轉載于:https://www.cnblogs.com/smartjourneys/p/6663561.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的eMMC基础技术8:操作模式1-boot mode的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。