0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用SRAM来代指对SRAM和PSRAM芯片的支持

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-18 16:29 次阅读

MM32系列微控制器为用户提供了丰富的选择,可适用于工业控制智能家电、建筑安防、医疗设备以及消费类电子产品等多方位嵌入式系统设计。在一些应用中,使用MM32F3270系列的片内SRAM还不够支持应用的需要,就要用外扩SRAM/PSRAM的方式来扩展。这时可以采用MM32F3270片内的FSMC接口来扩展SRAM/PSRAM。

因为SRAM和PSRAM的异步读写接口完全相同,只是时序方面需要根据不同的芯片所规定的参数不同而做相关的设置即可。本文接下来就使用SRAM来代指对SRAM和PSRAM芯片的支持。

前文已经介绍了MM32F3270的FMSC的接口功能与特色。结合MM32F3270 的FMSC外部接口信号,可使用异步方式访问SRAM,可以选用复用或非复用方式扩展SRAM,还可以通过配置实现外扩8位总线或16位总线接口的SRAM。

wKgZomUD8zqAZJh8AAAid0QA-Go866.png 表1、FSMC控制器外部信号

MM32F3270系列MCU因为封装的原因,导致只有部分MCU产品可以通过硬件复用出全部或部分的FSMC接口的相关GPIO,才能支持外接SRAM存储器扩展存储空间。其中LQFP144引脚封装MCU芯片支持连接地址数据非复用和复用方式外扩并行SRAM;而LQFP100引脚封装芯片因地址线缩减,仅支持连接地址数据复用方式外扩并行SRAM。LQFP64因为无法引出足够的地址与数据总线,不支持外扩并行SRAM。

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

目前市场上非复用型16位数据总线接口的SRAM/PSRAM较为普遍,下面就非复用方式,介绍MCU与SRAM的硬件原理图设计和软件寄存器配置。

在此用MM32F3270扩展ISSI的SRAM :IS62WV51216,其原理框图如下:

wKgZomUD9SyAJUIgAAD_20IlWQo137.png 图1、SRAM原理框图
wKgZomUD9S2AW7nFAAAeUTWnWMQ734.png 表3、SRAM引脚信号

IS62WV51216的数据按 16 位的Half Word寻址,容量1M字节。IS62WV51216可以通过CS, OE, WR, UB, LB控制电路,结合Address与Data I/O实现数据的高速读写。

01、FSMC非复用方式控制SRAM的硬件设计

wKgaomUD9S-AbGv8AABSBH61foo379.png 表4、SRAM信号对应的电源、复位与MCU接口的引脚说明

外部设备地址映像从FSMC的角度看,FMSC外扩寻址空间用于访问最多4个FSMC地址映射空间,可以用于访问4个NOR闪存或SRAM/PSRAM存储设备,并对应的有4个专用的片选FSMC_NE[4:1]。

外部存储器划分为固定大小为64M字节的四个存储块,见下图。

wKgaomUD89iAccUZAAAMsiGarK0040.png

存储区块与片选信号对应关系:

wKgZomUD9TKAJ0GBAAAPwmI6z_k352.png

HADDR是需要转换到外部存储器的内部AHB地址线。HADDR[25:0]包含外部存储器地址。HADDR是字节地址,而存储器访问不都是按字节访问,因此接到存储器的地址线依存储器的数据宽度有所不同,如下表:

wKgaomUD89uAU1mpAAASelpXpcU760.png

对于16位宽度的外部存储器,FSMC将在内部使用HADDR[25:1]产生外部存储器的地址FSMC_A[24:0]。不论外部存储器的宽度是多少(16位或8位),FSMC_A[0]始终应该连到外部存储器的地址线A[0]。

根据外部SRAM设计原理图:

wKgZomUD9TSALVlXAAJnqx9azxo680.png

02、FSMC非复用方式控制SRAM的硬件设计

根据配置的接口电路配置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 // ……部分代码请参考样例程序 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); }

从选择的片选信号与FSMC外扩存储映像空间可以得出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与读写片内SRAM是一样的操作,不同的是从不同的对应地址读写数据。通过上述代码可以观察到写入数据与读出的数据相同,表明配置准确,Demo实验成功。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409134
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161986
  • sram
    +关注

    关注

    6

    文章

    742

    浏览量

    113900
  • 接口信号
    +关注

    关注

    0

    文章

    9

    浏览量

    8989
收藏 人收藏

    评论

    相关推荐

    各品牌PSRAM产品的简介及型号特性

    本帖最后由 英尚---Fay 于 2017-6-2 10:38 编辑 Pseudo SRAM简称为PSRAM,从在技术层面来说就是用用 DRAM 伪装 SRAM,所以才称之为
    发表于 06-02 10:34

    FSMC扩展SRAM,它的地址可以令其自动分配吗

    现在扩展的SRAM可以手动分配地址进行读写了,但手动觉得比较麻烦, 传说修改改链接脚本文件可以实现地址自动分配,修改改链接脚本文件是MDK中红色圈中的设置吗,如下:SRAM为51216,挂到NOR
    发表于 06-03 04:35

    请问串口SRAM和并口SRAM的引脚区别?

    元器件,代理品牌有NETSOL、JSC、everspin代理、杨Lyontek、ISSI、CYPRESS等多个品牌总代理资质,主要产品线为sram、mram、psram等其他存储器芯片
    发表于 06-17 16:26

    灵动微课堂 (第189讲) | 使用MM32F3270 FSMC驱动SRAM

    根据不同的芯片所规定的参数不同而做相关的设置即可。本文接下来就使用SRAMSRAM
    发表于 11-10 09:22

    SRAM时序进行分析

    以下针对目前项目所用到的SRAM时序进行分析,同时也对SRAM应用在STM32F4上进行详细解说。以此也可以类推出NAND/PSRAM等时序的应用技巧。时序当前用到的是模式A,其中读时序如下。图片截
    发表于 01-07 07:20

    AT32 支持的几种与SRAM/PSRAN/NOR FLASH界面简介

    XMC:AT32的XMC是一个将AHB传输信号转换与外部存储器信号相互转换的外设。支持的外部存储器有静态随机存储器SRAM、NOR FLASH、PSRAM、NAND FLASH、PC卡和同步动态随机
    发表于 03-14 20:31

    可以将SRAM/pSRAM与QUAD SPI上的STM32L496控制器接口吗?

    我们使用了 STM32L496 控制器,我可以在 QSPI 引脚上连接外部 SRAMpSRAM 吗?如果不是,访问外部 SRAM 的其他选项是什么。
    发表于 01-29 07:25

    PSRAM/SRAM与XMC硬件连接的推荐方法

    PSRAM/SRAM与XMC硬件连接的推荐方法描述了在AT32系列100引脚封装芯片上以XMC连接PSRAM的硬件推荐方法,达到器件容易取得及价格合理的目标。
    发表于 10-24 06:17

    SRAM,SRAM原理是什么?

    SRAM,SRAM原理是什么? 静态随机存取存储器SRAMSRAM主要用于二级高速缓存(Level2 C ache)。它利用晶体管来存储数据。与DRAM相比,
    发表于 03-24 16:11 8545次阅读

    双端口SRAM中读干扰问题,读干扰的原理分析

    cpu与其周边控制器等类似需要直接访问存储器或者需要随机访问缓冲器之类的器件之间进行通信的情况。下面专注于代理销售sram芯片PSRAM等存储芯片供应商介绍关于双端口
    发表于 07-23 13:45 2022次阅读
    双端口<b class='flag-5'>SRAM</b>中读干扰问题,读干扰的原理分析

    同步SRAM技术的特性和优势,为应用而选择正确的存储器

    SRAM选择的一些关键因素是密度,等待时间,速度,读/写比和功率。通过了解这些因素如何影响性能,可靠性和成本,设计人员可以为其应用选择最佳的同步SRAM。宇芯电子专注代理销售SRAM,异步SR
    发表于 08-03 15:32 1187次阅读
    同步<b class='flag-5'>SRAM</b>技术的特性和优势,为应用而选择正确的存储器

    如何对SRAM进行分类

    应用也越来越广泛。 从用途来看SRAM可以分为独立式SRAM和嵌入式SRAM(e-SRAM),其中独立式SRAM主要应用在板级电路中,而集成
    的头像 发表于 09-19 11:46 3569次阅读

    PSRAM在数据缓冲应用中可以替代SRAM或SDRAM

    PSRAM它具有类SRAM的接口协议:给出地址、读、写命令,就可以实现存取,不像DRAM需要memory controller来控制内存单元定期数据刷新,因此结口简单;但它的内核是DRAM架构
    发表于 01-20 16:24 1903次阅读

    pSRAMSRAM相比较,它的优势是什么

    pSRAMSRAM相比,PSRAM采用的是1T+1C的技术,所以在体积上更小,同时,PSRAM的I/O接口与SRAM相同.
    发表于 04-08 15:26 9406次阅读

    32位MCU外扩SRAM芯片VTI7064MSME

    双块Flash存储器和256KB SRAM,在一些应用中,使用单片机片内SRAM还不够支持应用的需要,就要用外扩SRAM的方式来扩展。这时可以采用VTI7064MSME来扩展MCU。
    发表于 12-07 17:32 743次阅读