0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用SRAM來代指對(duì)SRAM和PSRAM芯片的支持

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-09-18 16:29 ? 次閱讀

MM32系列微控制器為用戶提供了豐富的選擇,可適用于工業(yè)控制智能家電、建筑安防、醫(yī)療設(shè)備以及消費(fèi)類電子產(chǎn)品等多方位嵌入式系統(tǒng)設(shè)計(jì)。在一些應(yīng)用中,使用MM32F3270系列的片內(nèi)SRAM還不夠支持應(yīng)用的需要,就要用外擴(kuò)SRAM/PSRAM的方式來擴(kuò)展。這時(shí)可以采用MM32F3270片內(nèi)的FSMC接口來擴(kuò)展SRAM/PSRAM。

因?yàn)镾RAM和PSRAM的異步讀寫接口完全相同,只是時(shí)序方面需要根據(jù)不同的芯片所規(guī)定的參數(shù)不同而做相關(guān)的設(shè)置即可。本文接下來就使用SRAM來代指對(duì)SRAM和PSRAM芯片的支持。

前文已經(jīng)介紹了MM32F3270的FMSC的接口功能與特色。結(jié)合MM32F3270 的FMSC外部接口信號(hào),可使用異步方式訪問SRAM,可以選用復(fù)用或非復(fù)用方式擴(kuò)展SRAM,還可以通過配置實(shí)現(xiàn)外擴(kuò)8位總線或16位總線接口的SRAM。

wKgZomUD8zqAZJh8AAAid0QA-Go866.png 表1、FSMC控制器外部信號(hào)

MM32F3270系列MCU因?yàn)榉庋b的原因,導(dǎo)致只有部分MCU產(chǎn)品可以通過硬件復(fù)用出全部或部分的FSMC接口的相關(guān)GPIO,才能支持外接SRAM存儲(chǔ)器擴(kuò)展存儲(chǔ)空間。其中LQFP144引腳封裝MCU芯片支持連接地址數(shù)據(jù)非復(fù)用和復(fù)用方式外擴(kuò)并行SRAM;而LQFP100引腳封裝芯片因地址線縮減,僅支持連接地址數(shù)據(jù)復(fù)用方式外擴(kuò)并行SRAM。LQFP64因?yàn)闊o法引出足夠的地址與數(shù)據(jù)總線,不支持外擴(kuò)并行SRAM。

wKgaomUD9SmAF-ezAAAZor36G24858.png 表2、MM32F3270不同封裝芯片與SRAM接口

目前市場(chǎng)上非復(fù)用型16位數(shù)據(jù)總線接口的SRAM/PSRAM較為普遍,下面就非復(fù)用方式,介紹MCU與SRAM的硬件原理圖設(shè)計(jì)和軟件寄存器配置。

在此用MM32F3270擴(kuò)展ISSI的SRAM :IS62WV51216,其原理框圖如下:

wKgZomUD9SyAJUIgAAD_20IlWQo137.png 圖1、SRAM原理框圖
wKgZomUD9S2AW7nFAAAeUTWnWMQ734.png 表3、SRAM引腳信號(hào)

IS62WV51216的數(shù)據(jù)按 16 位的Half Word尋址,容量1M字節(jié)。IS62WV51216可以通過CS, OE, WR, UB, LB控制電路,結(jié)合Address與Data I/O實(shí)現(xiàn)數(shù)據(jù)的高速讀寫。

01、FSMC非復(fù)用方式控制SRAM的硬件設(shè)計(jì)

wKgaomUD9S-AbGv8AABSBH61foo379.png 表4、SRAM信號(hào)對(duì)應(yīng)的電源、復(fù)位與MCU接口的引腳說明

外部設(shè)備地址映像從FSMC的角度看,F(xiàn)MSC外擴(kuò)尋址空間用于訪問最多4個(gè)FSMC地址映射空間,可以用于訪問4個(gè)NOR閃存或SRAM/PSRAM存儲(chǔ)設(shè)備,并對(duì)應(yīng)的有4個(gè)專用的片選FSMC_NE[4:1]。

外部存儲(chǔ)器劃分為固定大小為64M字節(jié)的四個(gè)存儲(chǔ)塊,見下圖。

wKgaomUD89iAccUZAAAMsiGarK0040.png

存儲(chǔ)區(qū)塊與片選信號(hào)對(duì)應(yīng)關(guān)系:

wKgZomUD9TKAJ0GBAAAPwmI6z_k352.png

HADDR是需要轉(zhuǎn)換到外部存儲(chǔ)器的內(nèi)部AHB地址線。HADDR[25:0]包含外部存儲(chǔ)器地址。HADDR是字節(jié)地址,而存儲(chǔ)器訪問不都是按字節(jié)訪問,因此接到存儲(chǔ)器的地址線依存儲(chǔ)器的數(shù)據(jù)寬度有所不同,如下表:

wKgaomUD89uAU1mpAAASelpXpcU760.png

對(duì)于16位寬度的外部存儲(chǔ)器,F(xiàn)SMC將在內(nèi)部使用HADDR[25:1]產(chǎn)生外部存儲(chǔ)器的地址FSMC_A[24:0]。不論外部存儲(chǔ)器的寬度是多少(16位或8位),F(xiàn)SMC_A[0]始終應(yīng)該連到外部存儲(chǔ)器的地址線A[0]。

根據(jù)外部SRAM設(shè)計(jì)原理圖:

wKgZomUD9TSALVlXAAJnqx9azxo680.png

02、FSMC非復(fù)用方式控制SRAM的硬件設(shè)計(jì)

根據(jù)配置的接口電路配置GPIO初始化程序與FSMC初始化程序。

void FSMC_SRAM_Init(void) { FSMC_InitTypeDef FSMC_InitStructure; FSMC_NORSRAM_Bank_InitTypeDef FSMC_BankInitStructure; FSMC_NORSRAM_BankStructInit( FSMC_BankInitStructure); FSMC_NORSRAMStructInit( FSMC_InitStructure); RCC_AHB3PeriphClockCmd(RCC_AHB3ENR_FSMC, ENABLE); FSMC_BankInitStructure.FSMC_SMReadPipe = 0; FSMC_BankInitStructure.FSMC_ReadyMode = 0; FSMC_BankInitStructure.FSMC_WritePeriod = 7; FSMC_BankInitStructure.FSMC_WriteHoldTime = 0; FSMC_BankInitStructure.FSMC_AddrSetTime = 1; FSMC_BankInitStructure.FSMC_ReadPeriod = 9; FSMC_BankInitStructure.FSMC_DataWidth = FSMC_DataWidth_16bits; FSMC_NORSRAM_Bank_Init( FSMC_BankInitStructure, FSMC_NORSRAM_BANK1); FSMC_InitStructure.FSMC_Mode = FSMC_Mode_NorFlash; FSMC_InitStructure.FSMC_TimingRegSelect = FSMC_TimingRegSelect_0; FSMC_InitStructure.FSMC_MemSize = FSMC_MemSize_64MB; FSMC_InitStructure.FSMC_MemType = FSMC_MemType_NorSRAM; FSMC_InitStructure.FSMC_AddrDataMode = FSMC_AddrDataDeMUX; FSMC_NORSRAMInit( FSMC_InitStructure); }

GPIO初始化

void SRAM_PIN_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB | RCC_AHBENR_GPIOC | RCC_AHBENR_GPIOA | RCC_AHBENR_GPIOD | RCC_AHBENR_GPIOE | RCC_AHBENR_GPIOF | RCC_AHBENR_GPIOG, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_12); //DA2 GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_12); //DA3 // ……部分代碼請(qǐng)參考樣例程序 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOB, GPIO_InitStructure); }

從選擇的片選信號(hào)與FSMC外擴(kuò)存儲(chǔ)映像空間可以得出Bank1地址為0x64000000,使用該地址作為讀寫外部SRAM的基地址。

#define Bank1_SRAM3_ADDR ((uint32_t)(0x64000000)) //used NE2 PG9 p = (vu16*)Bank1_SRAM3_ADDR; for (i = 0x00; i < BUFFERLEN; i++) { *p++ = (u16)writebuffer[i]; } p = (vu16*)Bank1_SRAM3_ADDR; for (i = 0x00; i < BUFFERLEN; i++) { readbbuffer[i] = *p++; }

讀寫外部SRAM與讀寫片內(nèi)SRAM是一樣的操作,不同的是從不同的對(duì)應(yīng)地址讀寫數(shù)據(jù)。通過上述代碼可以觀察到寫入數(shù)據(jù)與讀出的數(shù)據(jù)相同,表明配置準(zhǔn)確,Demo實(shí)驗(yàn)成功。

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49622

    瀏覽量

    417093
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7365

    瀏覽量

    163085
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    757

    瀏覽量

    114450
  • 接口信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    9006
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問串口SRAM和并口SRAM的引腳區(qū)別?

    元器件,代理品牌有NETSOL、JSC、everspin代理、楊Lyontek、ISSI、CYPRESS等多個(gè)品牌總代理資質(zhì),主要產(chǎn)品線為sram、mram、psram等其他存儲(chǔ)器芯片
    發(fā)表于 06-17 16:26

    靈動(dòng)微課堂 (第189講) | 使用MM32F3270 FSMC驅(qū)動(dòng)SRAM

    根據(jù)不同的芯片所規(guī)定的參數(shù)不同而做相關(guān)的設(shè)置即可。本文接下來就使用SRAM對(duì)SRAM
    發(fā)表于 11-10 09:22

    對(duì)SRAM時(shí)序進(jìn)行分析

    以下針對(duì)目前項(xiàng)目所用到的SRAM時(shí)序進(jìn)行分析,同時(shí)也對(duì)SRAM應(yīng)用在STM32F4上進(jìn)行詳細(xì)解說。以此也可以類推出NAND/PSRAM等時(shí)序的應(yīng)用技巧。時(shí)序當(dāng)前用到的是模式A,其中讀時(shí)序如下。圖片截
    發(fā)表于 01-07 07:20

    AT32 支持的幾種與SRAM/PSRAN/NOR FLASH界面簡介

    XMC:AT32的XMC是一個(gè)將AHB傳輸信號(hào)轉(zhuǎn)換與外部存儲(chǔ)器信號(hào)相互轉(zhuǎn)換的外設(shè)。支持的外部存儲(chǔ)器有靜態(tài)隨機(jī)存儲(chǔ)器SRAM、NOR FLASH、PSRAM、NAND FLASH、PC卡和同步動(dòng)態(tài)隨機(jī)
    發(fā)表于 03-14 20:31

    可以將SRAM/pSRAM與QUAD SPI上的STM32L496控制器接口嗎?

    我們使用了 STM32L496 控制器,我可以在 QSPI 引腳上連接外部 SRAMpSRAM 嗎?如果不是,訪問外部 SRAM 的其他選項(xiàng)是什么。
    發(fā)表于 01-29 07:25

    PSRAM/SRAM與XMC硬件連接的推薦方法

    PSRAM/SRAM與XMC硬件連接的推薦方法描述了在AT32系列100引腳封裝芯片上以XMC連接PSRAM的硬件推薦方法,達(dá)到器件容易取得及價(jià)格合理的目標(biāo)。
    發(fā)表于 10-24 06:17

    新一NV SRAM技術(shù)

    新一NV SRAM技術(shù) 第一NV SRAM模塊問世近20年,NV SRAM技術(shù)不斷更新,
    發(fā)表于 11-26 08:24 ?961次閱讀
    新一<b class='flag-5'>代</b>NV <b class='flag-5'>SRAM</b>技術(shù)

    SRAM,SRAM原理是什么?

    SRAM,SRAM原理是什么? 靜態(tài)隨機(jī)存取存儲(chǔ)器SRAM。 SRAM主要用于二級(jí)高速緩存(Level2 C ache)。它利用晶體管
    發(fā)表于 03-24 16:11 ?8719次閱讀

    sram作用

    SRAM主要用于二級(jí)高速緩存。它利用晶體管存儲(chǔ)數(shù)據(jù)。與DRAM相比,SRAM的速度快,但在相同面積中SRAM的容量要比其他類型的內(nèi)存小。
    的頭像 發(fā)表于 04-01 16:28 ?1w次閱讀

    同步SRAM技術(shù)的特性和優(yōu)勢(shì),為應(yīng)用而選擇正確的存儲(chǔ)器

    SRAM選擇的一些關(guān)鍵因素是密度,等待時(shí)間,速度,讀/寫比和功率。通過了解這些因素如何影響性能,可靠性和成本,設(shè)計(jì)人員可以為其應(yīng)用選擇最佳的同步SRAM。宇芯電子專注代理銷售SRAM,異步SR
    發(fā)表于 08-03 15:32 ?1298次閱讀
    同步<b class='flag-5'>SRAM</b>技術(shù)的特性和優(yōu)勢(shì),為應(yīng)用而選擇正確的存儲(chǔ)器

    關(guān)于提升SRAM性能的傳統(tǒng)方法的詳細(xì)介紹

    功耗的優(yōu)化成了芯片功耗優(yōu)化的關(guān)鍵所在。本篇文章由專注于銷售代理SRAM、MRAM、PSRAM等存儲(chǔ)芯片供應(yīng)商宇芯電子介紹如何利用傳統(tǒng)方法提升SRAM
    發(fā)表于 12-02 16:29 ?825次閱讀

    PSRAM在數(shù)據(jù)緩沖應(yīng)用中可以替代SRAM或SDRAM

    PSRAM它具有類SRAM的接口協(xié)議:給出地址、讀、寫命令,就可以實(shí)現(xiàn)存取,不像DRAM需要memory controller控制內(nèi)存單元定期數(shù)據(jù)刷新,因此結(jié)口簡單;但它的內(nèi)核是DRAM架構(gòu)
    發(fā)表于 01-20 16:24 ?2045次閱讀

    pSRAMSRAM相比較,它的優(yōu)勢(shì)是什么

    pSRAMSRAM相比,PSRAM采用的是1T+1C的技術(shù),所以在體積上更小,同時(shí),PSRAM的I/O接口與SRAM相同.
    發(fā)表于 04-08 15:26 ?9948次閱讀

    如何采用MM32F3270單片機(jī)的FSMC接口擴(kuò)展SRAM

    支持應(yīng)用的需要,就要用外擴(kuò)SRAM/PSRAM的方式擴(kuò)展。這時(shí)可以采用MM32F3270片內(nèi)的FSMC接口擴(kuò)展
    發(fā)表于 11-19 16:32 ?601次閱讀

    32位MCU外擴(kuò)SRAM芯片VTI7064MSME

    雙塊Flash存儲(chǔ)器和256KB SRAM,在一些應(yīng)用中,使用單片機(jī)片內(nèi)SRAM還不夠支持應(yīng)用的需要,就要用外擴(kuò)SRAM的方式擴(kuò)展。這時(shí)可
    發(fā)表于 12-07 17:32 ?881次閱讀