12.3內(nèi)存控制器與SDRAM_時(shí)序圖分析示例
視頻教程??
韋東山升級(jí)版全系列嵌入式免費(fèi)視頻_快速入門篇
這節(jié)我們分析一下我們了解時(shí)序圖,信號(hào)之間是怎樣一起工作的,以Nor Flash 為例。
2440和Nor Flash 之間有地址線,數(shù)據(jù)線,還有各種數(shù)據(jù)線連接。

以Nor Flash為例,分析下如何設(shè)置它的時(shí)序。
如圖是S3C2440的Nor Flash控制器的讀時(shí)序圖,里面很多參數(shù)都需要根據(jù)外接芯片的性能進(jìn)行設(shè)置,有的芯片性能好、響應(yīng)時(shí)間快,就可以把參數(shù)時(shí)間設(shè)置小一點(diǎn),釋放更好的性能。

如圖是Nor Flash芯片的讀時(shí)序。

我們需要做的就是設(shè)置S3C2440的Nor Flash控制器時(shí)序去滿足Nor Flash芯片的時(shí)序。每個(gè)參數(shù)的參考范圍可以通過AC CHARACTERISTICS得到。

結(jié)合Nor Flash芯片的兩張圖,可以得到如下信息:
發(fā)出地址數(shù)據(jù)(Addresses)后,要等待Taa(要求大于等于70ns)時(shí)間,地址數(shù)據(jù)才有效;
發(fā)出片選信號(hào)(CE#)后,要等待Tce(要求大于等于70ns)時(shí)間,片選信號(hào)才有效;
發(fā)出讀信號(hào)(OE#)后要等待Toe(要求大于等于30ns)時(shí)間,讀信號(hào)才有效;
為了簡單我們把地址數(shù)據(jù)(Addresses),片選信號(hào)(CE#),讀信號(hào)(OE#),同時(shí)發(fā)出,然后讓它們都等待70ns(等待信號(hào)有效)。對(duì)應(yīng)S3C2440的Nor Flash控制器的讀時(shí)序圖,需要讓地址信號(hào)A[24:0]、片選信號(hào)nGCS、讀信號(hào)nOE同時(shí)發(fā)出,保持Tacc大于等于70ns。
查閱S3C2240的參考手冊(cè),Nor Flash是接在BANKCON0上的,因此只需要設(shè)置BANKCON0即可。

可以看到Tacc上電初始值是111,對(duì)應(yīng)14個(gè)clocks。系統(tǒng)上電采用12MHz的晶振,HCLK=12MHz,Tacc=(1000/12*14)≈1166ns,這個(gè)值很大,幾乎可以滿足所有Nor Flash的要求。
啟動(dòng)后,將HCLK設(shè)置為100MHz,T=1000/100=10ns,Tacc需要大于等于70ns,因此設(shè)置Tacc等于101,8個(gè)clocks即可。
在前面uart實(shí)驗(yàn)的源碼基礎(chǔ)上,新建init.c和init.h兩個(gè)文件。
在init.c里面只需要設(shè)置BANKCON0寄存器即可。?

init.h進(jìn)行函數(shù)聲明。?

最后在主函數(shù)里面,通過串口獲取輸入的值,傳入bank0_tacc_set()函數(shù)里,設(shè)置Tacc,然后再讀取Nor Flash上的閃燈程序。?


實(shí)驗(yàn)效果:
輸入0~4,Tacc小于70ns,無法讀取Nor Flash上數(shù)據(jù),LED不能閃爍。
輸入4~7,Tacc大于70ns,可以讀取Nor Flash上數(shù)據(jù),LED不斷閃爍,且值越小越快(區(qū)別不明顯)。?
視頻教程??
韋東山升級(jí)版全系列嵌入式免費(fèi)視頻_快速入門篇
