在許多的電子產(chǎn)品中都有使用串行閃存(Serial/SPI Flash)的需求,它有較簡單的控制程序與電路以及可靠的儲存能力,使它倍受青睞。因此,常被用于電子產(chǎn)品里放置較關(guān)鍵的開機程序(Boot code)或系統(tǒng)設定數(shù)據(jù)(System setting)。每當系統(tǒng)啟動時,Serial Flash 就會忙碌起來,盡快的把儲存在里面的程序或數(shù)據(jù)加載系統(tǒng)內(nèi)。但越來越復雜的命令組合以及命令差異,使得開發(fā)與除錯工作變得更加困難。本文將會介紹使用邏輯分析儀來進行 Serial Flash 的量測工作。
單線模式譯碼
早期的 Serial Flash 使用 SPI 總線架構(gòu),定義了 4 根與命令數(shù)據(jù)傳輸有關(guān)的腳位分別是 Chip Select (CS)、Clock (SCK) 、Data In (DI) 、Data Out (DO)。傳輸時,由 DI 將命令或數(shù)據(jù)傳入 Serial Flash,而 DO 將數(shù)據(jù)讀出。如圖一所示。一般稱之為單線模式(Single mode)。
* JEDEC Standard No.216: (x-y-z): 標示Serial Flash I/O 的模式,分別為命令碼(opcode x),地址(address y),數(shù)據(jù)(Data z)。
用戶若需量測 Serial Flash 總線時,只需使用具有 SPI 總線的儀器或工具,就可以將單線模式之Serial Flash 命令/地址/數(shù)據(jù)解出。這是業(yè)界行之多年的作法。
雙線及四線模式譯碼
有鑒于電子產(chǎn)品越來越需要大容量的儲存空間,Serial Flash 容量也順應擴大。
儲存容量擴大之后衍生而來的問題是,讀取數(shù)據(jù)的時間越來越長,于是 Serial Flash 開始提高其工作頻率,藉由較高的傳輸頻率,以縮短傳輸數(shù)據(jù)的時間。
但這樣還是不夠快,因此進一步發(fā)展出現(xiàn)所謂雙線模式(Dual mode)如圖二,與四線模式(Quad Mode),如圖三的 Serial Flash。其總線傳輸?shù)募軜?gòu),已漸漸與單線模式之 SPI 架構(gòu)不同,也使原有的 SPI 儀器或工具用在此類 Serial Flash 的總線除錯工作開始出現(xiàn)困難。
在各廠商所推出的Serial Flash,更增加了多種不同數(shù)量的命令與數(shù)據(jù)組合,若沒辦法識別 Flash 命令的軟件工具,將很難看出總線的內(nèi)容。因為這樣的需求,使得具有支持 Serial Flash 總線分析的邏輯分析儀成為不可或缺的工具,它可協(xié)助分析這種多樣性的訊號。他可以隨著 Flash 命令的改變,而做出相應的分析。
使用邏輯分析儀分析不同命令組合分析
A. 隨著命令的不同,Serial Flash 會以不同數(shù)量的傳輸線工作
下列的范例,列舉了幾個不同形式結(jié)構(gòu)的 Serial Flash 結(jié)構(gòu),可以一窺命令差異所帶來的影響。
范例一:如圖四所示,此命令 3Bh (Fast Read Dual I/O) 是個 (1-1-2) 結(jié)構(gòu)的命令,輸入命令與地址時只需要使用 1 條線,但數(shù)據(jù)輸出時為雙線。圖例可以看出,傳送命令須使用 8個 Clock,但接收數(shù)據(jù)只需 4 個 Clock。

圖四 Flash 命令 3Bh 波形畫面 (1-1-2)
范例二: 如圖五所示,此命令 EBh (Fast Read Quad I/O) 是個 (1-4-4)結(jié)構(gòu)的命令,輸入命令使用 1條線,但地址與數(shù)據(jù)皆為 4 條線。圖例可以看出,傳送命令須使用 8個 Clock,但傳送地址與接收數(shù)據(jù)只需 2 個 Clock。

圖五 Flash 命令 EBh波形畫面(1-4-4)
范例三:如圖六所示,此命令 6Bh(Fast Read Quad Ouput)是個 (1-1-4) 結(jié)構(gòu)
的命令,與地址時只需要使用 1 條線,但數(shù)據(jù)輸出時為 4線。圖例可以看出,傳送命令與地址須使用 8個 Clock,但接收數(shù)據(jù)只需 2 個 Clock。

圖六 Flash 命令 6Bh波形畫面(1-1-4)
B. 更勝于 SPI 總線分析的功能
如圖七所示,可看出有別于 SPI 數(shù)據(jù)輸入與輸出分成兩條線時,不容易判別何時是數(shù)據(jù)輸出的時間點。在光標A所在位置,就是 Serial Flash 開始輸出數(shù)據(jù)的地方,從信道 SPI-DO 查看時必須自行數(shù)到第5個Byte 才算是數(shù)據(jù)輸出點。
有時候 Serial Flash 在輸入時還會安插 Dummy Byte,這樣就更增加查看輸出訊號的困擾。但若采用 Serial Flash 總線分析,藉由清楚的文字說明,就可以清楚的標示來數(shù)據(jù)的意義。

圖七 Serial Flash(SFlash) 與 SPI (SPI-DI, SPI-DO) 總線分析比較
C. 效能提升模式 PEM (Performance enhance mode)的分析
為了加快 Flash 數(shù)據(jù)傳輸速度,在進入效能提升模式后,讀取數(shù)據(jù)不需要再下命令;因此**筆輸入數(shù)據(jù)即為地址,而非命令。此法可減少下命令的次數(shù),以達到加速的效果。
由于效能提升模式的設定參數(shù),都是包含在 Dummy byte 里面。而且,各
廠商之設定(Set)與取消 (Reset) 規(guī)則也不同,也使得判讀上困難許多。如圖八所示,就是一個設定進入效能提升模式波形范例。

圖八 即使Flash 進入效能提升模式,地址與數(shù)據(jù)也可正確地被分析出來
D. 邏輯分析儀 Serial Flash 分析設定畫面
在設定畫面左上角,可選擇不同的 Flash 制造商及Flash型號。分析軟件已經(jīng)收錄 Flash Data Sheet 數(shù)據(jù),作為分析的參考,實時沒有完全對應到型號,也可以拿兼容的型號來解碼都是可以的。
設定畫面左側(cè)則是信道設定及譯碼分析設定,有些設定值如 QPI(Quad Peripheral Interface)模式,在系統(tǒng)啟動時就被軟件設定好。這樣的話使用者也可以透過手動的方式指定邏輯分析儀分析,就可以無誤的解析出數(shù)據(jù),如圖九所示。

圖九 Serial Flash 分析設定畫面
E. 完整的Serial Flash分析報告
不管是多線的組合或是效能提升模式都可藉由完整的報告,將命令、地址、提升模式設定值、數(shù)據(jù)(十六進制與 ASCII) 都可詳細的呈現(xiàn)。這樣,就可快速的得知分析的內(nèi)容,盡速的找到問題點,如圖十所示。

圖十 Serial Flash 分析報告
利用 SPI 觸發(fā)來進行訊號定位
雖然 Serial Flash 會有多線的組合,但仍有一部分的命令及地址是單線模式。因此,可利用邏輯分析儀的 SPI觸發(fā)功能協(xié)助訊號定位。圖十一即是使用 SPI 觸發(fā)功能,主要就是把將命令及地址數(shù)據(jù)輸入。這樣,就可以針對特定條件進行觸發(fā)。

圖十一 設定 SPI觸發(fā)功能以觸發(fā) Serial Flash 命令0Bh,地址 12h 23h 45h.
After CS 打勾的意思是指從 CS go low 之后就開始判斷
在使用SPI觸發(fā)的同一個時間,若可以將邏輯分析儀與示波器堆棧,就可以使用邏輯分析儀替示波器定位,如圖十二所示。這樣,問題分析就同時具有 Serial Flash 數(shù)字與模擬訊號的分析,更加的詳盡清楚。透過檔案共享,亦可使整個工作團隊共享擷取的訊號,加快分析問題的速度

圖十二 結(jié)合邏輯分析儀與示波器來看 Serial Flash 總線訊號
結(jié)語
藉由本文的介紹,Serial Flash 總線分析工作將可藉由邏輯分析儀觸發(fā)及軟件的配合。使原本復雜的命令組合變化及命令的定位工作都變得容易控制。這樣,使用者可專心于確認本身的設計問題,而不用花費時間去找到錯誤波形及分析。這會是個非常有效率的解決方案。