在許多的電子產品中都有使用串行閃存的需求。串行閃存具有較簡單的控制程序和電路以及可靠的儲存能力,因而倍受青睞。因此,它常被電子產品用來存儲較關鍵的啟動程序或者系統設置數據。每當系統激活時,串行閃存就會忙碌起來,盡快地把儲存在里面的程序或數據加載到系統內。但越來越復雜的命令組合和命令差異,使得開發與除錯工作變得更加困難。本文將介紹使用
邏輯分析儀來進行串行閃存的測量工作。
單線(Single)模式譯碼
早期的串行閃存使用SPI總線架構定義了4根與命令/數據傳輸有關的引腳,分別是:CS(片選)、SCK(時鐘)、DI(數據輸入)和DO(數據輸出)。傳輸時,由DI將命令或數據傳入串行閃存,而DO將數據讀出,如圖1所示。這種模式一般稱之為單線模式。使用者若要測量串行閃存總線,只需使用具有SPI總線的儀器或者工具,就可以將單線模式的串行閃存命令/地址/數據解出。這是業內行之多年的作法。
圖1:串行閃存單線模式(1-1-1)。注:JEDEC標準No.216:(x-y-z)標示串行閃存I/O的模式,分別為命令碼(opcodex)、地址(addressy)和數據(Dataz)。
雙線(Dual)及四線(Quad)模式譯碼
鑒于電子產品越來越需要大容量的儲存空間,串行閃存的容量也相應擴大。儲存容量擴大之后衍生而來的問題是讀取數據的時間越來越長。于是串行閃存開始提高其工作頻率——通過較高的傳輸頻率縮短傳輸數據的時間。但這樣卻還不夠快,因而進一步發展出了所謂的雙線模式(如圖2)和4線模式(如圖3)的串行閃存。其總線傳輸的架構已漸漸與單線模式的SPI架構不同,這也使原有的SPI儀器或工具用于此類串行閃存的總線除錯工作開始出現困難。
圖2:串行閃存雙線模式(2-2-2)。
圖3:串行閃存4線模式(4-4-4)。
各廠商推出的串行閃存更增加了多種不同數量的命令與數據組合。若沒有識別閃存命令的軟件工具,將很難看出總線的內容。這樣的需求使得具有支持串行閃存總線分析的邏輯分析儀成為了*的工具,它可以協助分析這種多樣性的信號。它可以隨著閃存命令的改變,而做出相應的分析。
使用邏輯分析儀分析不同命令的組合
隨著命令的不同,串行閃存會以不同數量的傳輸線工作。以下范例列舉了幾種不同形式的串行閃存結構,從中可以一窺命令差異所帶來的影響。
范例一:如圖4所示,此命令3BH(FastReadDualI/O)是一個(1-1-2)結構的命令。輸入命令與地址時只需要使用1根線,但數據輸出時為雙線。從圖例可以看出,傳送命令需要使用8個時鐘周期,但接收數據只需4個時鐘周期。
圖4:閃存命令3BH波形畫面(1-1-2)。
范例二:如圖5所示,此命令EBH(FastReadQuadI/O)是一個(1-4-4)結構的命令,輸入命令使用1根線,但地址與數據皆為4根線。從圖例可以看出,傳送命令需要使用8個時鐘周期,但傳送地址和接收數據只需2個時鐘周期。
圖5:閃存命令EBH波形畫面(1-4-4)。
范例三:如圖6所示,此命令6BH(FastReadQuadOuput)是一個(1-1-4)結構的命令,傳送地址時只需要使用1根線,但數據輸出時為4根線。從圖例可以看出,傳送命令與地址需要使用8個時鐘周期,但接收數據只需2個時鐘周期。
圖6:閃存命令6BH波形畫面(1-1-4)。
更勝于SPI總線分析的功能:從圖7可以看出,有別于SPI數據,當輸入與輸出分成兩根線時,不容易判別數據輸出的時間點。光標A所在位置,就是串行閃存開始輸出數據的時刻。從信道SPI-DO查看時,必須自行數到第5個字節,才算是數據的輸出點。有時候串行閃存在輸入時還會安插虛擬字節(DummyByte),這樣就更增加了查看輸出信號的困擾。但若采用串行閃存總線分析,借由清楚的文字說明,就可以清楚地標示數據的意義。
圖7:串行閃存(SFlash)與SPI(SPI-DI、SPI-DO)總線分析比較。
圖8:即使閃存進入性能增強模式,地址與數據也可被正確分析出來。
性能增強模式(PEM)的分析:為了加快閃存數據的傳輸速度,在進入性能增強模式后,讀取數據不需要再下命令。因此,*筆輸入數據即為地址,而非命令。此法可減少下命令的次數,以達到加速的效果。由于性能增強模式的設置參數都是包含在虛擬字節里面,并且各廠商設置與復位的規則也不相同,這使得在判讀上困難許多。圖8所示就是一個設置進入性能增強模式的波形范例。
邏輯分析儀串行閃存分析設置畫面:在設置畫面的左上角,可以選擇不同的閃存制造商和閃存型號。分析軟件已經收錄了閃存數據手冊數據作為分析的參考。數據沒有*對應到型號,因此也可以采用兼容型號進行譯碼。設置畫面左側則是信道設置及譯碼分析設置。有些設置值如QPI(4外設接口)模式,在系統激活時就已被軟件設置好。這樣的話,使用者也可以通過手動方式邏輯分析儀分析,從而無誤地解析出數據,如圖9所示。
圖9:串行閃存分析設置畫面。
完整的串行閃存分析報告:不管是多線的組合或是性能增強模式,都可以借由完整的報告,將命令、地址、增強模式設置值、數據(十六進制與ASCII)詳細地呈現。這樣就可以快速得知分析的內容,盡快地找到問題點,如圖10所示。
圖10:串行閃存分析報告。
利用SPI觸發來進行信號定位
雖然串行閃存會有多線的組合,但仍有一部分命令及地址是單線模式。因此,可利用邏輯分析儀的SPI觸發功能協助信號定位。圖11即是使用SPI觸發功能,其主要就是把命令和地址數據輸入,這樣就可以針對特定條件進行觸發。
圖11:設置SPI觸發功能以觸發串行閃存命令0BH,地址12H23H45H。“AfterCS”打勾是指CS變為低電平便開始判斷。
在使用SPI觸發的同一時間,若可以將邏輯分析儀與示波器堆棧,就可以使用邏輯分析儀代替示波器定位,如圖12所示。這樣,問題分析就可以同時具有串行閃存數字與模擬信號的分析,從而更加詳盡清楚。通過檔案共享,亦可使整個工作團隊共享擷取的信號,加快分析問題的速度。
圖12:結合邏輯分析儀與示波器來看串行閃存總線信號。
本文小結
通過本文的介紹,串行閃存總線的分析工作將可以由邏輯分析儀觸發和軟件的配合完成。這便使原本復雜的命令組合變化和命令的定位工作都變得容易控制。從而,使用者可以專心于確認本身的設計問題,而不用花費時間去找到錯誤波形以及分析。這將是一個效率的解決方案。