eMMC5.1 DDR50&HS400 SI Lesson Learn

DDR50 SI Meassurement Lesson Learn 2019/03/29

  1. SI的量測要用到的文檔有:a- 客戶的電路板的點位圖,知道的1-CMD,2-VDD,3-CLK,4-VSS,5-D0點位;b- Jedec eMMC5.1的規格書,知道在DDR50下要量測的信號有哪些,信號的定義和Spec等;c- 最好有一份之前量測的PPT作參考。
  2. SI的量測要用到的硬件有:a- 示波器;b- 有源探頭2根;c- u盤;d- PC。
  3. 量測的過程中犯的錯誤和注意事項:
    a. 頭一次量測的時候,只測量的VCC和VCCQ的上電時間, 而clock,data信號測得完全不對,clock不對原因有二:一是信號過沖,不要用普通探頭,用有源探頭;二是信號的週期看不出來,只是大致能看出一個週期是多少,完全達不到JEDEC要求的標準,根據Jedec要求,在放大的比較清楚的情況下,測量上升沿的一半到一半之間的時長(1.65 to next 1.65)。而且信號的高低電平定義,在Jedec中有定義,Input mode(host輸入到EMMC)和Output mode(host 輸入到Host)時,VIH/VIL和VOH/VOL是不一樣的,找到對應的高低電平才能正確的測出上升時間(tTLH)和下降時間(tTHL).
    b. 第二次量測的時候,根據Jedec的DDR50的列表,測得大部分信號,但是Output Data mode tODLYddr沒有測出來,還沒從根本上理解這個值的概念,以及對Input CMD 和Output CMD沒有理解,Input CMD是指Host給eMMC發送命令時CMD線上的信號,Output CMD是指eMMC給Host的response信號,也在CMD線上。而區分CMD和Response要根據這兩種信號的發送格式來確定。For CMD,一般是[47:0], 先發送bit[47], bits[47]是一個低電平,將CMD拉低,作為start信號,標誌著信號的開始,bit[46]是傳送位,表明了信號的傳輸方向,“1”表示Host -> eMMC, 表示此信號是一個CMD;而“0”表示eMMC -> Host, 表示此信號是一個Response。測量Input CMD和Output CMD就從這兩個信號來測。
    c. 在此重新測量tODLY 信號,Output CMD不要測這個tODLY信號,因為CMD沒有DDR模式,規格書中也是寫著參照SDR,而Output CMD SDR中沒有tODLY這個值;測量Output Data tODLYddr,終於看懂了規格書中的該值的定義,在反復量測信號的過程中,量測了eMMC初始上電時的時鐘信號,有400K和26M的SDR,對比SDR可以確定之前量測的DDR信號是正確的,只是沒有正確的解讀。DDR和線寬的設定是在寄存器HS_TIMING和BUS_WIDTH中,可設置頻率以及SDR還是DDR。之前一直懷疑抓到的波形中clk是否真的為DDR,但從測量中可以確定確實是50MHz DDR模式,之後就是怎麼解讀的問題。
    tODLYddr,該值的解讀如下:DDR意味著data在上升沿和下降沿都是有效的。實際測量中測得的信號大多是1個以上的bit連在一起的,並且不會出現如規格書中的那種“在一個時鐘週期開始前已經是高,再到時鐘的中間下降,再在后半段時鐘週期中再上升為高”的情況,被這個圖困擾了好久。實際的情況是:在clk為1之前,data已經由0到1,然後clk開始由0到1,此時clk和data都是1,如果接下來data是10,則data會一直持續為1,直到clk為0后,才有data從1到0並且持續到下個clk由0到1;如果接下來是 01,則data會在clk中間由1到0,並且持續到clk由1到0,然後在下一個clk由0到1之前,data先完成由0到1的過程。
    明白以上的tODLYddr的解讀後,再來看規格書的figure83,就會知道, tODLYddr(min) 指的是在data為10時,clk的中值到data降到VOH的這段時間。tODLYddr(max)指的是data為01時,clk的中值到data升到VOH的這段時間。所以測min,要找data為10,測max要找data為01.
    d. 改PPT的細節:1. 不要出現SanDisk的圖標以及頁腳,因為這不是原廠給的報告;2. 標題的EMCP改為eMMC;3. 改芯片的料號;4. 客戶的名字;5. OS就只寫Android;6. platform寫Freescale IMX6,可以看CPU的信號知道平台的廠家。

EMMC HS400 SI Timming Report 2019/05/15

  1. For Vcc, it’s 3.3v, not 1.8v. So it’s 3.3v-Core, 1.8v-I/O;
  2. For HS400 Input data, can’t enter ADB mode at first, only iAP interface instead. Check with Li, the SW version is not support ADB mode, go and refresh the SW version, it worked,next time, ask them to enter ADB mode before they sent the PCB;
  3. For the HS400 Output DS Duty-Cycle Distortion, the waveforms are not as good as expect, cause the data and rclk were sent by eMMC device, they shouldn’t be measured at the eMMC side or near eMMC device, or the reflect would cause the signal distortion. For the best outcomes, they should be measured at the receiver(AKA SOC), but check with HW, there are no direct TP for the data or rclk, only a through-hole around the SOC, the only way to do it is scrape the surface paint and measure it properly, turns out it worked well.
  4. ADB Interface uasge:
    ADB(Andriod Debug Bridge) interface is used to communicate with Andriod device, especially without UI(touch screen). Steps to install ADB in computer.
    S1. download SDK platform-tools on http://developer.android.google.cn/studio/releases/platform-tools;
    S2. Unzip the package to C:;
    S3. Enter CMD mode, enter the root of C disk, enter platform-tools;
    S4. Now we can use “adb devices” to check the connected devices, “adb push/pull source target” to send file to device or get file from device;
    S5. “adb root” to get the root authority, and “adb shell” to enter devices’ root folder;
  5. What if the Device manager can’t recongize the devices when we plug-in the device?
    Make sure we have installed the ADB firmware at our computer, download ADBDriverInstaller.exe from web and run at local, ADB driver will be installed if needed.
  6. How can we know that we can push and pull the file with devices?
    enter your device manager, and you will see the “ADB Interface” without yellow mark sign on it, then you got it.

你可能感兴趣的:(EMMC)