MC68332與AT93C46的SPI接口時序問題
在微機自動化設(shè)計中,隨著總線速度越來越塊,芯片的上升/下降沿越來越陡,時序問題變得越來越突出。時序問題在設(shè)計中是至關(guān)重要的,尤其是隨著時鐘頻率的提高,留給數(shù)據(jù)傳輸?shù)挠行ёx寫窗n越來越小,要想在很短的時間內(nèi),使數(shù)據(jù)信號從驅(qū)動端完整地傳送到接收端,就必須進行精確的時序計算和分析。同時,時序與信號的完整性也是密不可分的,良好的信號質(zhì)量是確保時序穩(wěn)定的關(guān)鍵。由于反射、串?dāng)_造成的信號質(zhì)量問題,都很町能帶來時序的偏移和紊亂,導(dǎo)致時序余量不夠。
1 MC68332與AT93C46的SPI接口
MC68332與串行存儲器AT93C46的硬件接口比較簡單,如圖1所示。其中,MC68332的CS、CLK(和MOSI腳為SPI輸出;MISO腳為SPI輸入。
2 時序問題提出
在調(diào)試過程中出現(xiàn)批次不同的AT93C46,讀數(shù)據(jù)都能正確進行。但寫數(shù)據(jù)時,有的批次寫正確,有的則出現(xiàn)錯誤。下面分析MC68332與AT93C46 SPI接口的寫時序圖(如圖2所示)及參數(shù)(見表1)。
圖2中,tDIS為數(shù)據(jù)建立時間,AT93C46數(shù)據(jù)手冊要求其最小值為10Ons;tDIH為數(shù)據(jù)保持時間,要求其最小值為100 ns。
MC68332手冊中,tDIS最小值為5Ons,tDIH最小值為50ns。
可見tDIS數(shù)據(jù)建立時間不夠,也就是說在MC68332寫出的數(shù)據(jù)還沒有穩(wěn)定的情況下,SK時鐘的上升沿已經(jīng)來到。這時,AT93C46會將不穩(wěn)定的數(shù)據(jù)進行鎖存。這樣,大部分情況下鎖存的數(shù)據(jù)是錯的。
3 時序問題解決
時序余量不夠一般有兩方面原因:一是系統(tǒng)本身各芯片時序參數(shù)不匹配;二是信號完整性差,導(dǎo)致時序余量減少。為解決數(shù)據(jù)建立時間不夠的問題,將MC68332的SPI接口的MISO數(shù)據(jù)入,MOSI數(shù)據(jù)出,CLK時鐘信號接入EPLD中進行時序調(diào)整。將CLK信號的上升沿向后平移,下降沿向前平移,使得建立和保持時間都加長。在EPLD中調(diào)整建立和保持時間后,任何批次的AT93C46都能正確讀/寫。圖3和圖4分別是時序調(diào)整前后示波器的波形圖。
結(jié)語
在微機自動化系統(tǒng)的設(shè)計中,應(yīng)將充足的時序余量設(shè)計作為重中之重,這樣才能保證系統(tǒng)穩(wěn)定、可靠地運行,且不必因芯片速度變快而更改設(shè)計。