|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)教關(guān)于DRAM的問題 |
| 作者:tangqiaoti 欄目:嵌入式系統(tǒng) |
各位高手: 小弟現(xiàn)需使用單片機(jī)模擬DRAM時(shí)序,但對(duì)DRAM的一些操作規(guī)則不是很了解,而從alldatasheet.com上下載到的datasheet說(shuō)得很不詳細(xì),只描述了各個(gè)操作的時(shí)序,但沒介紹其功能,所以有以下問題希望各位解答: 我用的DRAM(km44v4000)有一項(xiàng)操作是CAS before RAS self refresh,是不需要輸入地址的;還有一種操作是CAS before RAS refresh,不需要地址;還有一種 RAS ONLY refresh,是需要ROW地址的;問題是:這三種刷新有什么區(qū)別?RAS ONLY refresh 操作是否只針對(duì)一行進(jìn)行操作?CAS before RAS self refresh 是否可以一次刷新所有的行?(因?yàn)樗枰辽?00us,相對(duì)其他操作來(lái)說(shuō)已經(jīng)是非常非常的久了) 我在2K赫茲中斷里面調(diào)用了CAS before RAS refresh這個(gè)函數(shù)多次(因?yàn)槲铱催^一些資料說(shuō)自動(dòng)刷新的話DRAM內(nèi)部有行計(jì)數(shù)器,每調(diào)用一次會(huì)自加,而且該操作不用輸入地址,比較簡(jiǎn)單)以保證在64ms內(nèi)每一行都刷新到。但是讀寫不正確,寫入5,但讀出是0。 請(qǐng)幫忙回答我上面的問題,非常感謝。 |
| 2樓: | >>參與討論 |
| 作者: iversonma 于 2006/5/10 17:56:00 發(fā)布:
應(yīng)該是刷新速度不夠~ 第一個(gè)問題: 刷新操作分為兩種:自動(dòng)刷新(Auto Refresh,簡(jiǎn)稱AR)與自刷新(Self Refresh,簡(jiǎn)稱SR)。不論是何種刷新方式,都不需要外部提供行地址信息,因?yàn)檫@是一個(gè)內(nèi)部的自動(dòng)操作。對(duì)于AR, SDRAM內(nèi)部有一個(gè)行地址生成器(也稱刷新計(jì)數(shù)器)用來(lái)自動(dòng)的依次生成行地址。由于刷新是針對(duì)一行中的所有存儲(chǔ)體進(jìn)行,所以無(wú)需列尋址,或者說(shuō)CAS在 RAS之前有效。所以,AR又稱CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新過程中,所有L-Bank都停止工作,而每次刷新所占用的時(shí)間為9個(gè)時(shí)鐘周 期(PC133標(biāo)準(zhǔn)),之后就可進(jìn)入正常的工作狀態(tài),也就是說(shuō)在這9 個(gè)時(shí)鐘期間內(nèi),所有工作指令只能等待而無(wú)法執(zhí)行。64ms之后則再次對(duì)同一行進(jìn)行刷新,如此周而復(fù)始進(jìn)行循環(huán)刷新。顯然,刷新操作肯定會(huì)對(duì)SDRAM的性 能造成影響,但這是沒辦法的事情,也是DRAM相對(duì)于SRAM(靜態(tài)內(nèi)存,無(wú)需刷新仍能保留數(shù)據(jù))取得成本優(yōu)勢(shì)的同時(shí)所付出的代價(jià)! SR則主要用于休眠模式低功耗狀 態(tài)下的數(shù)據(jù)保存,這方面最著名的應(yīng)用就是STR(Suspend to RAM,休眠掛起于內(nèi)存)。在發(fā)出AR命令時(shí),將CKE置于無(wú)效狀態(tài),就進(jìn)入了SR模式,此時(shí)不再依靠系統(tǒng)時(shí)鐘工作,而是根據(jù)內(nèi)部的時(shí)鐘進(jìn)行刷新操作。在 SR期間除了CKE之外的所有外部信號(hào)都是無(wú)效的(無(wú)需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并進(jìn)入正常操作狀態(tài)! 第二個(gè)問題: 看你用的是2k的中斷, 實(shí)際上存儲(chǔ)體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000秒),也就是說(shuō)每一行 刷新的循環(huán)周期是64ms。這樣刷新速度就是:行數(shù)量/64ms。 比如:我們?cè)诳磧?nèi)存規(guī)格時(shí),經(jīng)常會(huì)看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的標(biāo)識(shí),這里的4096與8192就代表這個(gè)芯片中每個(gè)L-Bank的行數(shù)。刷新命令一次對(duì)一行有效,發(fā)送間隔也是隨總行數(shù)而變 化,4096行時(shí)為15.625μs(微秒,1/1000毫秒),8192行時(shí)就為7.8125μs! |
|
| 3樓: | >>參與討論 |
| 作者: tangqiaoti 于 2006/5/10 18:35:00 發(fā)布:
多謝答復(fù) 我是用的2K赫茲中斷,但每次中斷都調(diào)用CAS before RAS refresh 32次(也試過更多)。請(qǐng)問假如時(shí)序沒有錯(cuò)誤的話,這種用2K赫茲中斷,每次調(diào)用32次以上,以保證每行在64毫秒內(nèi)都刷新到,這種刷新的框架結(jié)構(gòu)正確或者說(shuō)合理嗎?如果不行,非要每15個(gè)微秒刷新一行,那樣太占系統(tǒng)資源了。還有,CAS before RAS refresh 是每次刷新一行嗎? |
|
| 4樓: | >>參與討論 |
| 作者: iversonma 于 2006/5/11 9:59:00 發(fā)布:
回復(fù)DRAM 應(yīng)該是每次刷新一行, 不清楚你為什么要選用單片機(jī)做DRAM控制器,速度有點(diǎn)太慢了~ |
|
| 5樓: | >>參與討論 |
| 作者: tangqiaoti 于 2006/5/12 10:25:00 發(fā)布:
沒辦法 用DRAM只是臨時(shí)的,之后還要換成SDRAM。不僅僅是DRAM控制器,還要錄音以及播放,工作需要。這兩天終于可以正常讀寫了,錄音也可以了,之前不能正確讀寫是時(shí)序問題。不過我發(fā)現(xiàn),即使每次中斷只調(diào)用一次CAS before RAS refresh 也可以正確存儲(chǔ)數(shù)據(jù),真奇怪。 |
|
| 6樓: | >>參與討論 |
| 作者: 陳雙君 于 2006/6/11 11:03:00 發(fā)布:
這個(gè)速度是和晶振成比例關(guān)系的吧 這個(gè)速度是和晶振成比例關(guān)系的吧 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |