lpc2114/2124/2210/2212/2214微控制器的arm內(nèi)核工作在最高頻率60mhz時(shí),執(zhí)行一條指令約為17ns。而flash存儲(chǔ)器的訪問周期需要50ns,即最高頻率20mhz。所以如果將代碼存放在flash中,將影響arm內(nèi)核發(fā)揮最大效能。為了能將指令從內(nèi)部flash存儲(chǔ)器更高效快速地提取到arm內(nèi)核,而設(shè)計(jì)產(chǎn)生了一個(gè)存儲(chǔ)器加速模塊(mam)。
mam結(jié)構(gòu)
存儲(chǔ)器加速模塊寄存器描述
mam控制寄存器(mamcr):
mamcr[1:0]:用于mam的模式控制,具體關(guān)系如下表。
存儲(chǔ)器加速模塊寄存器描述
mam定時(shí)寄存器(mamtim):
mamtim[2:0]:決定使用多少個(gè)cclk周期訪問flash存儲(chǔ)器,這樣可以調(diào)整mam時(shí)序使其匹配處理器操作頻率,具體關(guān)系如下表。
當(dāng)訪問周期設(shè)置為1個(gè)cclk時(shí),實(shí)際上關(guān)閉了mam,但是仍可以選擇mam模式對(duì)功耗進(jìn)行優(yōu)化。
注意:不正確的設(shè)定會(huì)導(dǎo)致器件的錯(cuò)誤操作
mam使用要點(diǎn)
當(dāng)改變mam定時(shí)值時(shí),必須先將mamcr設(shè)置為0關(guān)閉mam,然后將新值寫入mamtim。最后將需要的操作模式的對(duì)應(yīng)值(1或2)寫入mamcr,再次打開mam;
對(duì)于低于20mhz的系統(tǒng)時(shí)鐘,mamtim設(shè)定為001,將flash訪問時(shí)間設(shè)定為1cclk ;對(duì)于20mhz到40mhz之間的系統(tǒng)時(shí)鐘,建議將flash訪問時(shí)間設(shè)定為2cclk;高于40mhz的系統(tǒng)時(shí)鐘,建議使用3cclk。
相關(guān)啟動(dòng)代碼分析
外部存儲(chǔ)器控制器概述
emc模塊支持4個(gè)獨(dú)立配置的存儲(chǔ)器組,每個(gè)存儲(chǔ)器組的總線寬度可設(shè)置為8、16或者32位,但是同一個(gè)存儲(chǔ)器組的器件必須寬度相同。
每個(gè)存儲(chǔ)器組最大支持16mb尋址空間。
支持字節(jié)定位讀取。
地址輸出線是a[23:0],其中地址位a[25:24]用于4個(gè)存儲(chǔ)器組的譯碼(cs[3:0])。
外部存儲(chǔ)器總線接口描述
接口引腳描述:
這些引腳與p1、p2和p3口gpio功能復(fù)用,所以在使用外部總線前首先要正確設(shè)置pinsel2寄存器。可以在硬件上對(duì)引腳boot1:0設(shè)定,復(fù)位時(shí)微處理器自動(dòng)初始化pinsel2?;蛘咴谲浖献止?jié)初始化pinsel2,這只適用于片內(nèi)flash引導(dǎo)程序運(yùn)行的系統(tǒng)中。
外部存儲(chǔ)器讀訪問典型波形:
經(jīng)過一個(gè)等待狀態(tài)后,存儲(chǔ)器輸出有效數(shù)據(jù)。
外部存儲(chǔ)器寫訪問典型波形: