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