PN学堂GD32教程第17篇——EXMC与SRAM
17.1 SRAM芯片工作原理SRAM 速度快、稳定但成本高容量小DRAM 容量大、便宜但速度慢且需刷新。SRAM静态RAM优点速度极快延迟约1~10ns无需刷新数据稳定性高待机功耗低。缺点每个单元需6个晶体管集成度低、容量小、成本高。典型用途CPU 高速缓存L1/L2/L3 Cache。DRAM动态RAM优点结构简单1晶体管1电容集成度高、容量大、成本低。缺点需定期刷新否则数据丢失速度比 SRAM 慢很多。典型用途计算机主内存DDR 内存条、显存。两者在系统中互补SRAM 做高速缓存DRAM 做主存。常见SRAM内部的block diagram和片内RAM不同SRAM访问一个地址里面存储着16bits。读写时序时序trc是一个完整的读取周期。开发板上使用的就是55ns的型号单片机的指令周期时钟周期✖1.25片内的SRAM读取通常需要10ns左右。1~2个指令周期且120M外部晶振全开。17.2 EXMC工作原理带有EXMC/FSMC外设的ARM单片机拥有存储器映射的功能不能驱动DRAM动态保持数据仅针对当前平台GD32F303ZET6一些高性能的新型号单片机是可以实现的。寻址范围0x6000 0000~0xA000 0000一共1GB的寻址空间内部还分为了4个bank。现在重点研究第一个bank整个信号链路分为三层第一层系统总线CPU视角CPU发出的地址信号为HA27~HA0共28根地址线CPU采用字节寻址方式每个地址对应1个字节第二层EXMC外设地址转换层EXMC_NE(3:0)转换模块将高位地址HA26、HA27转换为片选信号CS地址直通通道HA1→EA0→MA0HA2→EA1→MA1依次类推直到HA25→EA24→MA24UB/LB掩码信号转换模块将最低位地址HA0转换为字节使能信号UB和LB第三层外部SRAM存储芯片接收片选CS、地址MA24~MA0、字节掩码UB/LB、数据线D15~D0读时序写时序17.3 SRAM保存数据方法1观察原理图可得SRAM的片选引脚连接了MCU的EXMC_NE3:查手册我们知道bank0有4个region0~3NE的序号也是0~3一一对应那么我们这里就是需要把SRAM映射到bank0的Region3位置。因此有代码#define BANK0_REGON3_ADDR ((uint32_t)(0x6C000000)) // Bank0 Regon3起始地址IS62WV51216BLL的物理容量是512K512*1024此外这个SRAM一个存储单元对应着16bits总bytes512*1024*2。#define EX_SRAM_BUFFER_SIZE (2 * 512 * 1024) // 外部sram一个存储单元存放16bits总共512K个存储单元 #define EX_SRAM_BEGIN_ADDR (BANK0_REGON3_ADDR) #define EX_SRAM_END_ADDR (BANK0_REGON3_ADDR EX_SRAM_BUFFER_SIZE - 1) // 0x6C100000 - 1