stm32擴(kuò)展外部SRAM總結(jié)

SRAM

博客主頁(yè)蟆融,歡迎訪問(wèn):blog.spursgo.com

折騰過(guò)電腦的朋友都知道草巡,當(dāng)電腦運(yùn)行比較卡的時(shí)候,我們可以通過(guò)給電腦加裝內(nèi)存條來(lái)改善電腦的性能振愿。那么號(hào)稱(chēng)微型計(jì)算機(jī)的單片機(jī)能不能像電腦一樣加裝內(nèi)存條呢捷犹?裝內(nèi)存條倒是不行,但是我們可以給單片機(jī)外加和內(nèi)存條效果一樣的SRAM來(lái)提升單片機(jī)的性能冕末。下面以STM32F407ZGT6單片機(jī)來(lái)講解一下來(lái)擴(kuò)展外部SRAM萍歉。

原理:給STM32芯片擴(kuò)展內(nèi)存與給PC擴(kuò)展內(nèi)存的原理是一樣的,只是PC上一般以?xún)?nèi)存條的形式擴(kuò)展档桃,內(nèi)存條實(shí)質(zhì)是由多個(gè)內(nèi)存顆粒(即SRAM芯片)組成的通用標(biāo)準(zhǔn)模塊枪孩,而STM32直接與SRAM芯片連接。

從上面的圖片中我們可以看到藻肄,ARM芯片的下面就是我們今天的主角SRAM蔑舞,具體型號(hào)為IS62WV51216。

黑黢黢的芯片我們也看不出什么東西來(lái)嘹屯,下面就來(lái)看一看IS62WV51216的管腳圖吧攻询。


管腳圖


哇!這么居然這么多管腳州弟!別著急钧栖,下面我們來(lái)慢慢分析這些管腳。

除開(kāi)基本的電源和地線婆翔,IS62WV51216的管腳大概可以這么來(lái)分類(lèi):


管腳說(shuō)明

看吧拯杠!這樣一分類(lèi),是不是就沒(méi)有那么恐怖啦啃奴。

所以IS62WV51216的管腳總的來(lái)說(shuō)大致分為:電源線潭陪、地線、地址線、數(shù)據(jù)線依溯、片選線老厌、寫(xiě)使能端、讀使能端和數(shù)據(jù)掩碼信號(hào)線黎炉。

從這個(gè)圖中我們可以看出IS62WV51216有19根地址線和16根數(shù)據(jù)線梅桩,從這些數(shù)據(jù)中我們可以分析出IS62WV51216的存儲(chǔ)大小為1M,那么這個(gè)1M是怎么分析出來(lái)的呢拜隧?

我們得來(lái)說(shuō)說(shuō)IS62WV51216的存儲(chǔ)原理。

首先趁仙,我們來(lái)談一談一般的SRAM的存儲(chǔ)原理:


sram存儲(chǔ)矩陣模型

sram的存儲(chǔ)模型我們可以用矩陣來(lái)說(shuō)明:

SRAM內(nèi)部包含的存儲(chǔ)陣列洪添,可以把它理解成一張表格,數(shù)據(jù)就填在這張表格上雀费。和表格查找一樣干奢,指定一個(gè)行地址和列地址,就可以精確地找到目標(biāo)單元格盏袄,這是SRAM芯片尋址的基本原理忿峻。這樣的每個(gè)單元格被稱(chēng)為存儲(chǔ)單元,而這樣的表則被稱(chēng)為存儲(chǔ)矩陣辕羽。地址譯碼器把N根地址線轉(zhuǎn)換成2的N次方根信號(hào)線逛尚,每根信號(hào)線對(duì)應(yīng)一行或一列存儲(chǔ)單元,通過(guò)地址線找到具體的存儲(chǔ)單元刁愿,實(shí)現(xiàn)尋址绰寞。如果存儲(chǔ)陣列比較大,地址線會(huì)分成行和列地址铣口,或者行滤钱、列分時(shí)復(fù)用同一地址總線,訪問(wèn)數(shù)據(jù)尋址時(shí)先用地址線傳輸行地址再傳輸列地址脑题。

但是呢件缸?你會(huì)發(fā)現(xiàn),這個(gè)原理好像不太適用于IS62WV51216叔遂,為什么呢他炊?

其實(shí)不然,因?yàn)槲覀兪褂玫腟RAM比較小掏熬,IS62WV51216沒(méi)有列地址線佑稠。它只有19根行地址線,那么旗芬,我們就可以這么來(lái)解釋?zhuān)篒S62WV51216有16根數(shù)據(jù)線舌胶,也就是說(shuō)它的數(shù)據(jù)寬度為16位,一個(gè)行地址也就對(duì)應(yīng)16位疮丛,即2字節(jié)空間幔嫂。好辆它,那現(xiàn)在來(lái)計(jì)算一下IS62WV51216有多少個(gè)行地址。2的19次方等于512K履恩,在512K的基礎(chǔ)之上在乘我們之前計(jì)算的2字節(jié)锰茉,不正好是1024K,也就是1M嗎切心?1M后面的單位是B飒筑,即Byte,而不是Bit哦绽昏。

這樣的話你就會(huì)發(fā)現(xiàn)IS62WV51216這個(gè)名字中本身就包含了大量的信息:IS62WV51216共有512K個(gè)行地址协屡,數(shù)據(jù)寬度為16位,再加以計(jì)算就可以得到它的存儲(chǔ)大小為1M啦全谤,有趣吧肤晓!

SRAM的大致原理我們講完了,但是SRAM到底在stm32中到底是怎么被使用的呢认然?

下面补憾,一位大神即將登場(chǎng),F(xiàn)SMC卷员。

STM32F407系列芯片使用FSMC外設(shè)來(lái)管理擴(kuò)展的存儲(chǔ)器

FSMC是Flexible StaticMemory Controller的縮寫(xiě)盈匾,就是靈活的靜態(tài)存儲(chǔ)控制器。它可以用于驅(qū)動(dòng)包括SRAM子刮、NOR FLASH以及NAND FLSAH類(lèi)型的存儲(chǔ)器

其他我們不用管威酒,從上面我們可以總結(jié)的是,stm32雇傭FSMC這個(gè)管家來(lái)管理我們的IS62WV51216挺峡。

來(lái)來(lái)來(lái)葵孤,我們來(lái)看看FSMC的廬山真面目:


FSMC控制器框圖

蒙了吧!又是這么多信號(hào)線橱赠,不要怕尤仍,我們還是來(lái)總結(jié)歸納一下。

我們FSMC控制SRAM為例來(lái)說(shuō)明:

FSMC中的SRAM控制信號(hào)線

你會(huì)發(fā)現(xiàn)居然和SRAM中的線居然高度統(tǒng)一(那是當(dāng)然喏狭姨,我們就是講的FSMC嘛T桌病)

1.FSMC_NBL[1:0]分別對(duì)應(yīng)于LB#、UB#饼拍,有什么用呢赡模?提供數(shù)據(jù)掩碼信號(hào)。具體是怎么回事呢师抄?

還記得前面提到的行地址線嗎漓柑?一根行地址線對(duì)應(yīng)16位的數(shù)據(jù),我們可以把16位的數(shù)據(jù)分為高字節(jié)和低字節(jié)。當(dāng)要訪問(wèn)寬度為16位的數(shù)據(jù)時(shí)辆布,使用行地址線指出地址瞬矩,然后把UB#和LB#線都設(shè)置為低電平(FSMC_NBL0和FSMC_NBL1為低電平),那么I/O0-I/O15線(FSMC_D0到FSMC_D15)都有效锋玲,它們一起輸出該地址的16位數(shù)據(jù)(或者接收16位數(shù)據(jù)到該地址)景用;當(dāng)要訪問(wèn)寬度為8位的數(shù)據(jù)時(shí),使用行地址線指出地址惭蹂,然后把UB#(FSMC_NBL0)設(shè)置為低電平伞插,I/O8-I/O15(FSMC_D8到FSMC_D15)會(huì)對(duì)應(yīng)輸出該地址的高8位,I/O0-I/O7的信號(hào)無(wú)效(或者把LB#(FSMC_NBL1)設(shè)置為低電平盾碗,I/O0-I/O7(FSMC_D0到FSMC_D7)會(huì)對(duì)應(yīng)輸出該地址的低8位蜂怎,I/O8-I/O15的信號(hào)無(wú)效。這樣是不是有一部分信號(hào)沒(méi)有用呢置尔?好像被掩蓋了。因此它們被稱(chēng)為數(shù)據(jù)掩碼信號(hào)氢伟。

2.FSMC_NE[1:4]是個(gè)很有趣的東西榜轿,它決定了FSMC可以控制多個(gè)存儲(chǔ)器。

這里就要提及FSMC的地址映射啦朵锣!


FSMC地址映射

首先谬盐,有一點(diǎn)我們必須明白,對(duì)于32位的stm32單片機(jī)來(lái)說(shuō)诚些,它能夠管理的地址大小為4GB飞傀,而stm32將4GB的地址空間中的0x60000000到0x9FFFFFFF共1GB的空間分給外部?jī)?nèi)存,所以這1GB的空間就成了我們的小天地诬烹,供我們自由玩耍砸烦。

然后強(qiáng)勢(shì)的FSMC就接管了這1GB的空間,F(xiàn)SMC將圖中的1GB大小的External RAM存儲(chǔ)區(qū)域分成了4個(gè)Bank區(qū)域绞吁,每個(gè)Bank對(duì)應(yīng)于stm32內(nèi)部尋址空間的不同地址范圍幢痘。那么為什么要分為不同的Bank區(qū)域呢?因?yàn)椴煌腂ank可以來(lái)管理不同的外部存儲(chǔ)設(shè)備家破,比如NOR Flash及SRAM存儲(chǔ)器只能使用Bank1的地址颜说,NAND Flash存儲(chǔ)器只能使用Bank2和Bank3的地址,等。

細(xì)心的你肯定還會(huì)發(fā)現(xiàn)汰聋,每個(gè)Bnak中居然還有4x64MB這種文字门粪,這是什么意思呢?


Bank內(nèi)部的256MB空間又被分成4個(gè)小塊烹困,每塊64M玄妈,各自有相應(yīng)的控制引腳用于連接片選信號(hào)。以Bank1為例,見(jiàn)下圖:


Bank1內(nèi)部的小塊地址分配

OK措近!重點(diǎn)來(lái)了溶弟!

剛剛前面提到的FSMC_NE[4:1]信號(hào)線就分別對(duì)應(yīng)圖中的FSMC bank1 NOR/PSRAM4到FSMC bank1 NOR/PSRAM1。當(dāng)STM32訪問(wèn)0x6C000000-0x6FFFFFFF地址空間時(shí)瞭郑,會(huì)訪問(wèn)到Bank1的第3小塊區(qū)域:FSMC bank1 NOR/PSRAM3相應(yīng)的FSMC_NE3信號(hào)線會(huì)輸出控制信號(hào)(即片選信號(hào))辜御,如果這個(gè)時(shí)候FSMC_NE3處剛好接上IS62WV51216的CS端,那么IS62WV51216就可以任由我們擺布啦屈张。

因此擒权,對(duì)于你使用IS62WV51216來(lái)說(shuō),一定要注意你的CS端是接的FSMC的哪個(gè)FSMC_NE端阁谆,這決定你在程序訪問(wèn)哪個(gè)地址范圍碳抄。

下面來(lái)說(shuō)一下在stm32F407中SRAM的硬件連接:


外部SRAM硬件連接圖

圖中需要注意的是,除了PG12的連接不固定外场绿,其他的管腳都要按照?qǐng)D中的方式連剖效,為什么呢?因?yàn)閷?duì)于FSMC來(lái)說(shuō)焰盗,它已經(jīng)集成到了單片機(jī)內(nèi)部璧尸,它的提供給的管腳已經(jīng)確定了,是不能改動(dòng)的熬拒。唯一具有靈活性的就是FSMC_NE爷光,具體用哪個(gè)FSMC_NE管腳來(lái)和你的SRAM相連,當(dāng)然是你的自由澎粟,但是不要忘了蛀序,你要找到你選的FSMC_NE所對(duì)應(yīng)的地址范圍,不然寫(xiě)程序的時(shí)候就搞不清喏活烙!

怎么樣徐裸?用FSMC來(lái)控制IS62WV51216還是很簡(jiǎn)單吧!

對(duì)于編程的具體細(xì)節(jié)我這里就不講解了啸盏,懂了原理倦逐,寫(xiě)起代碼來(lái)也很簡(jiǎn)單的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宫补,一起剝皮案震驚了整個(gè)濱河市檬姥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粉怕,老刑警劉巖健民,帶你破解...
    沈念sama閱讀 212,332評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贫贝,居然都是意外死亡秉犹,警方通過(guò)查閱死者的電腦和手機(jī)蛉谜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)崇堵,“玉大人型诚,你說(shuō)我怎么就攤上這事≡Ю停” “怎么了狰贯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,812評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)赏廓。 經(jīng)常有香客問(wèn)我涵紊,道長(zhǎng),這世上最難降的妖魔是什么幔摸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,607評(píng)論 1 284
  • 正文 為了忘掉前任摸柄,我火速辦了婚禮,結(jié)果婚禮上既忆,老公的妹妹穿的比我還像新娘驱负。我一直安慰自己,他們只是感情好患雇,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布电媳。 她就那樣靜靜地躺著,像睡著了一般庆亡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捞稿,一...
    開(kāi)封第一講書(shū)人閱讀 49,919評(píng)論 1 290
  • 那天又谋,我揣著相機(jī)與錄音,去河邊找鬼娱局。 笑死彰亥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衰齐。 我是一名探鬼主播任斋,決...
    沈念sama閱讀 39,071評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耻涛!你這毒婦竟也來(lái)了废酷?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,802評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抹缕,失蹤者是張志新(化名)和其女友劉穎澈蟆,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體卓研,經(jīng)...
    沈念sama閱讀 44,256評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趴俘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評(píng)論 2 327
  • 正文 我和宋清朗相戀三年睹簇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寥闪。...
    茶點(diǎn)故事閱讀 38,712評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡太惠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疲憋,到底是詐尸還是另有隱情凿渊,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評(píng)論 4 332
  • 正文 年R本政府宣布柜某,位于F島的核電站嗽元,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏喂击。R本人自食惡果不足惜剂癌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翰绊。 院中可真熱鬧佩谷,春花似錦、人聲如沸监嗜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)裁奇。三九已至桐猬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刽肠,已是汗流浹背溃肪。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,473評(píng)論 2 360
  • 正文 我出身青樓浑度,卻偏偏與公主長(zhǎng)得像千埃,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容