娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

SDRAM:Synchronous Dynamic Random Access Memory,同步動態隨機存儲器,同步是指內存工作需要同步時鐘,內部的命令的發送與數據的傳輸都以它為基準;動態是指存儲陣列需要不斷的刷新來保證數據不丟失;隨機是指數據不是線性依次存儲,而是自由指定地址進行數據讀寫


一.內部結構

原理圖如下:

在這里插入圖片描述

存儲邏輯結構:

在這里插入圖片描述

可以看出SDRAM的內部是一個陣列,就像表格一樣,其尋址方式是按照塊、行、列來的,即先選定SDRAM芯片,然后發出塊信號確定那一塊,再發出行信號確定哪一行,再發出列信號確定哪一列。


CPU對SDRAM的訪問可以分為以下幾步:


CPU對存儲控制器發出統一編址

內存控制器發出片選信號,選定SDRAM芯片

選定哪一個Bank(通過ADDR24、ADDR25信號線選定,總共4個Bank)

對選定的Bank進行行列尋址

找到對應的地址,通過32根數據線進行數據傳輸(原理圖中是32位)

看起來很簡單,但是我們要考慮到,不同規格SDRAM對應著不同的尋址方式,因為不同的SDRAM可能行列數不一樣,對時序要求不一樣,所以在訪問SDRAM之前,我們要配置存儲控制器中的一些寄存器來匹配SDRAM!!!


二.相關寄存器

存儲控制器一共有13個寄存器,6種寄存器,對BANK0~BANK5進行訪問時,只需要配置BWSCON和BANKCONx寄存器,但是對SDRAM訪問,不僅僅需要對這倆個寄存器進行配置,還需要額外配置4個寄存器。


下面以訪問SDRAM為例子介紹一下這些寄存器(按照芯片手冊中的順序來介紹):


BWSCON

位寬&等待控制寄存器

在這里插入圖片描述

ST6:決定是否使用SDRAM的數據掩碼,對SDRAM時為0,對SRAM時為1。

WS6:決定是否使用WAIT信號,一般不使用。(WAIT信號就是在SDRAM沒準備好的時候,由SDRAM發給CPU,請求延遲一段時間)

DW6:決定BANK位寬,自然是32位。

所以,BWSCON寄存器要或運算的值為:0x02000000


BANKCON6

BANK控制寄存器,用來控制外接設備的訪問時序的,BANK0~BANK5默認0X0700

在這里插入圖片描述

對于SDRAM的訪問,我們需要配置的就是圖中陰影部分的:


MT:決定BANK外接的是SDRAM還是SRAM,SDRAM選擇11.


Trcd:行列信號之間的延遲時間,根據芯片手冊得知最小為21ns,而我們的HCLK時鐘為100MHz,一個clock10ns,所以保險起見選擇30ns,即:01。


SCAN:設置列地址位,這里使用的SDRAM列地址一共9位,所以為:01.

在這里插入圖片描述

所以,BANKCON6寄存器要或運算的值為:0x00018005


REFRESH

刷新控制寄存器,用來控制SDRAM的刷新模式和刷新頻率。我們知道,SDRAM中的存儲陣列需要不斷的刷新來保證數據不丟失,所以就要配置刷新控制寄存器。

在這里插入圖片描述

REFEN:決定使能刷新功能,當然是開啟了,值為:1


TREFMD:刷新的模式,一般自動刷新,值為:0


Trp:根據芯片手冊得知20ns保險,對應2clocks,值為:00


Tsrc:默認即可


Refresh Counter:刷新計數的值,查SDRAM的手冊可得8192個刷新周期為64ms,則每一個刷新周期為7.8125ns,通過公式計算可得刷新計數的值為:1955

在這里插入圖片描述

所以,REFRESH寄存器要或運算的值為:0x008c07a3


BANKSIZE

在這里插入圖片描述

BURST_EN:決定是否允許突發傳輸,值為:1。

SCKE_EN:決定是否使用SCKE信號來決定省電模式,值為:1。

SCLK_EN:決定SCLK時鐘信號的產生模式,值為:1。

BK76MAP:決定BANK6、BANK7的大小,這里SDRAM是64M,所以值為:001。(BANK0~BANK5的大小是128M固定的,BANK6、BANK7的大小是可以控制的)

所以,BANKSIZE寄存器要或運算的值為:0x000000b1


MRSR

SDRAM模式設置寄存器

在這里插入圖片描述

只有CL的值是可以修改的,查詢芯片手冊:

在這里插入圖片描述

可知,CL可以是2clock或者是3clock,保險起見,值為:011


所以,MRSR寄存器要或運算的值為:0x00000030


/**********************************************************************************************************************/

綜上所述,對SDRAM初始化的代碼為:


void SDRAM_Init(void)

{

    /* 對BANK6進行配置 以訪問SDRAM */

    BWSCON   |= 0x02000000;//對SDRAM使用數據掩碼、不使用WAIT信號、設置BANK6位寬32bit

    BANKCON6 = 0x00018005;//BANK6外接SDRAM、行列信號間延遲3clocks、設置列地址位數

    REFRESH  = 0x008c07a3;//配置刷新模式及刷新計數值

    BANKSIZE = 0x000000b1;//設置BANK6大小為64MB

    MRSRB6   = 0x00000030;//設置CL為3clocks

}


三.讀寫SDRAM

對SDRAM進行配置之后,進行讀寫操作,看看寫進去的值和讀出來的值是否統一。


測試就直接寫在main.c中吧:


#include "s3c2440_soc.h"

#include "uart.h"


void SDRAM_Init(void)

{

    /* 對BANK6進行配置 以訪問SDRAM */

    BWSCON   |= 0x02000000;//對SDRAM使用數據掩碼、不使用WAIT信號、設置BANK6位寬32bit

    BANKCON6 = 0x00018005;//BANK6外接SDRAM、行列信號間延遲3clocks、設置列地址位數

    REFRESH  = 0x008c07a3;//配置刷新模式及刷新計數值

    BANKSIZE = 0x000000b1;//設置BANK6大小為64MB

    MRSRB6   = 0x00000030;//設置CL為3clocks

}


int SDRAM_Test(void)

{

    /* BANK6 基地址0x30000000 */

    volatile unsigned char *p = (volatile unsigned char *)(0x30000000);

    int n;

    /* 寫入20Byte數據 */

    for( n=0;n<20;n++ )

    {

        *(p+n) = 0xbb;

    }


    for( n=0;n<20;n++ )

    {

        if( 0xbb != *(p+n) )

        return 0;

    }


    return 1;

}


int main(void)

{

    SDRAM_Init();

    uart0_init();


    if( SDRAM_Test() )

        puts("OK!!!n");

    else

        puts("NOT OK!!!n");


    return 0;

    

}


代碼親測可以。

關鍵字:S3C2440  內部結構 引用地址:S3C2440—8.讀寫SDRAM

上一篇:S3C2440—9.復制程序到SDRAM中執行
下一篇:S3C2440—7.存儲控制器訪問外設

推薦閱讀

STM32的使用有利有弊,種類多---但是種類有太多,資料也是比較亂的,還有就是庫的調用,經常忘記一些函數的使用------比如最常用的串口------------------------------------------------------------------------------------USART ----設置-------------------------------void USART1_Config(void){ GPIO_InitTypeDef GPIO_InitStructure...
近日,印度研究人員宣布開發出一種可充電的鐵離子電池,它以低碳鋼為陽極,具備性價比高、可儲存電量高等優勢。相關研究成果近期發表在英國皇家化學會期刊《化學通訊》上。論文說,印度理工學院馬德拉斯分院研究團隊研發的這種鐵離子電池,以低碳鋼為陽極,五氧化二釩為陰極,電解液為含高氯酸鐵的醚基電解液。研究顯示,這種電池可進行150次循環充放電,...
  美國激光狂熱者帕特里克?普里布(Patrick Priebe)發明了一種名為LaserWatch的激光手表,它既是一種數字式顯示手表,又可以向外發射激光束。  普里布曾經制造過激光槍、激光刀具、激光手套,甚至激光眼鏡。LaserWatch是普里布的最新發明。  這款激光手表擁有金屬機身,表盤均勻覆蓋著碳素纖維,并裝有一個小型的數字顯示時鐘。它可以發射功率為1...
DHT11模塊簡介DHT11數字溫濕度傳感器,用來測量環境的溫度和濕度,而且傳輸的數據是數字信號,這與DS18B20傳輸的模擬采集的數據不一樣,相比DS18B20而言DHT11的數據采集的處理更加精確,而且驅動也更加方便。DHT11傳感器包括一個電阻式測濕元件和一個NTC測溫元件,而且傳感器中嵌入一個8位單片機。傳感元件測量到數據后經過內嵌MCU處理后,能夠直接輸出處...

史海拾趣

問答坊 | AI 解惑

【轉】802.11 wifi協議大學實驗室講義

講義詳細論述了802.11協議的結構,網絡拓撲控制,以及底層協議規范。…

查看全部問答∨

一個動態創建對話框的問題,謝謝指教.

后天就要復試了,因為以前都沒有做過界面,有個模塊做不出來,是這樣的: 我用VS2008創建了一個MFC智能設備程序(基于對話框) 接下來: 我的類名是:CMyDlg 我要在工程彈出的默認對話框中, 再動態創建一個BUTTON1(創建按鈕的同時要設置它的字體+顏色, ...…

查看全部問答∨

單片機程序跑飛問題

在MSP430中, void init_UART0(void) {      P3SEL|=0x30;   P3DIR|=0X10;   UTCTL0=SSEL1+SSEL0+SWRST;   U0BR0=0x00;   U0BR1=0x03;   UMCTL0=0x00;  &nb ...…

查看全部問答∨

WinCE系統定制問題

根據http://www.cnblogs.com/walzer/archive/2008/11/01/713880.html的第一步新建立的一個模擬器,Build OS->Sysgen時報錯,不能生成image。 但是,如果在New Platform的過程中不選擇EMULATOR:X86,而選擇SamSung:2410就能順利地生成image,并且 ...…

查看全部問答∨

驅動sys + inf 打包成exe

請問如何將sys + inf形式的文件打包成可執行的exe驅動文件? 我試過將inf ->system32.inf sys->system32.driver 此路不通. 求解 謝…

查看全部問答∨

STM8S如何生成EEPROM的燒些文件

                                 除了生成Flash的.s19格式,或.hex的文件外,怎么樣才能生成EEPRM的燒些文件呢,定義了EEPROM段的變量,在map文件里查看 ...…

查看全部問答∨

求SY-EVM2407A(V2.0)評估版的測試程序

哪位大俠有SY-EVM2407A(V2.0)評估版的測試程序哪位大俠有啊,可否給小弟發送一份doublesan@163.com。小弟初涉DSP行業,在校學生,當不勝感激,謝謝好心人了,急求!!!…

查看全部問答∨

TI官方附件,包括示例代碼、GUI、設計文檔

首先貼出文件內容官方文件為slac490.zip,下面是下載頁面連接地址http://www.ti.com/tool/430boost-sense1結合slau337a.pdf 可完成初步開發,論壇已有上傳,給出連接,不再重復上傳http://bbs.eeworld.com.cn/thread-307218-1-1.html最后附上s ...…

查看全部問答∨

LM3S9B96學習(三)-----#ifndef,#define #end專題

LM3S9B96學習(三)-----#ifndef,#define #end專題有網友問到對頭文件中防止重復定義的宏不是很清楚,例如#ifndef __SYSCTL_H__#define __SYSCTL_H__......#endif現在我就專對這個宏講一下我的理解(如果我有的地方講的不對,請網友指正。共同學習) ...…

查看全部問答∨

基于basic的單片機系統設計

我要在單片機中嵌入一個basic解釋器,讀取sd卡里的basic源程序,并通過液晶屏輸出結果,怎么做啊。…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 泸州市| 合作市| 武穴市| 大连市| 浠水县| 鄂托克旗| 汶上县| 彩票| 招远市| 佛冈县| 抚顺市| 万载县| 精河县| 南阳市| 通城县| 青龙| 林口县| 广汉市| 普安县| 蒙自县| 康乐县| 亚东县| 庆城县| 盐山县| 彰武县| 海宁市| 长兴县| 乌鲁木齐市| 望城县| 泗洪县| 榆树市| 肥城市| 突泉县| 东乡族自治县| 剑阁县| 安阳市| 浦江县| 宣武区| 徐闻县| 离岛区| 东台市|