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