首页 > 其他分享 >初学 FSMC - 扩展外部SRAM(一)

初学 FSMC - 扩展外部SRAM(一)

时间:2024-03-26 17:01:29浏览次数:20  
标签:信号线 控制 芯片 SRAM 读写 FSMC 地址 初学

1. SRAM控制原理

​ STM32控制器芯片内部有一定大小的SRAM及FLASH作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在STM32芯片的外部扩展存储器了。 STM32F407系列芯片可以扩展外部SRAM用作内存 。

  • 型号为IS62WV51216的SRAM芯片外观 :

image-20240326163356033

  • SRAM芯片的内部功能框架

    image-20240326163521978

    ​ A0-A18有19位,寻址范围为219=28x1024=512K 。I/O0-I/O7控制低字节,I/O8-I/O15控制高字节,

    所以512*16刚好可以全部寻址,512行。19个地址位用于寻址,高低数据位用于传输数据

    类似与:

    image-20240326164028184

  • SRAM信号线

    image-20240326163603016

​ SRAM的控制比较简单, 只要控制信号线使能了访问, 从地址线输入要访问的地址, 即可从I/O数据线写入或读出数据。

  • SRAM的存储矩阵

    image-20240326163700663

​ SRAM内部包含的存储阵列,可以把它理解成一张表格,数据就填在这张表格上。和表格查找一样,指定一个行地址和列地址,就可以精确地找到目标单元格,这是SRAM芯片寻址的基本原理。这样的每个单元格被称为存储单元,而这样的表则被称为存储矩阵。

​ 控制电路主要包含了片选、读写使能以及上面提到的宽度控制信号UB#和LB#。利用CS2或CS1#片选信号,可以把多个SRAM芯片组成一个大容量的内存条。OE#和WE#可以控制读写使能,防止误操作。

2. SRAM的读写流程

  • 对SRAM进行数据时,它各个信号线的时序流程如下:

image-20240326164422113

  • 对SRAM进行数据时,它各个信号线的时序流程如下:

image-20240326164455299

3. SRAM的读写流程

读写时序的流程很类似,过程如下:
(1) 主机使用地址信号线发出要访问的存储器目标地址;

(2) 控制片选信号CS1#及CS2#使能存储器芯片;

(3) 若是要进行读操作,则控制读使能信号OE#表示要读数据,若进行写操作则控制写使能信号WE#表示要写数据;

(4) 使用掩码信号LB#与UB#指示要访问目标地址的高、低字节部分;

(5) 若是读取过程,存储器会通过数据线向主机输出目标数据,若是写入过程,主要使用数据线向存储器传输目标数据。

4. SRAM的读写时序参数

image-20240326164623137

image-20240326164639523

视频推荐

[FSMC-扩展外部SRAM](【野火F407开发板-霸天虎视频-【高级篇】】 https://www.bilibili.com/video/BV16t411D7m3/?share_source=copy_web&vd_source=33eab7a0768c0a7ed227e8f0668349ef)

标签:信号线,控制,芯片,SRAM,读写,FSMC,地址,初学
From: https://www.cnblogs.com/lyk-23/p/18097061

相关文章

  • 初学可视化PyQt5
    【初学可视化PyQt5系列】第1章PyQt5简介第2章PyQt5新增功能第3章Hellomyfourrotordrone第4章PyQt5主要类第5章PyQt5使用Qt设计器第6章PyQt5信号与插槽第7章PyQt5布局与管理第8章PyQt5基本小部件第9章PyQt5QDialog类第10章PyQt5QMessageBox......
  • 0编程经验的初学者,该怎么学Python?要注意哪些隐秘的错误认知?
    对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,而有特别明显的两个错误认知是:错误认识一:一些初学者认为python很简单,就以为编程很简单。错误认识二:没有学好基础知识,听说django很火,就开始学django开发we......
  • 百度【灵境矩阵】智能体开发初学笔记
    AIAgent(人工智能代理)是一种能够感知环境、进行决策和执行动作的智能实体。AIAgent可以称为“智能体”,也可以理解为“智能业务助理”,指在大模型技术驱动下,让人们以自然语言为交互方式高自动化地执行和处理专业或繁复的工作任务,从而极大程度释放人员精力。灵境矩阵是百度推出的......
  • 快速上手 Vue.js 框架:初学者指南
    快速上手Vue.js框架:初学者指南Vue.js是一个轻量级且灵活的JavaScript框架,专为构建交互式的Web界面而设计。它的设计哲学是使得开发者可以轻松上手,同时提供强大的功能来构建复杂的单页应用(SPA)。如果你是前端开发的新手,或者想要学习一种新的框架来提升你的技能,那么Vu......
  • 初学STM32 CAN通信(三)
    1.stm32CAN通信标准库函数//CAN通信初始化函数uint8_tCAN_Init(CAN_TypeDef*CANx,CAN_InitTypeDef*CAN_InitStruct);//筛选器初始化函数voidCAN_FilterInit(CAN_FilterInitTypeDef*CAN_FilterInitStruct);//发送信息函数uint8_tCAN_Transmit(CAN_TypeDef*CANx,C......
  • 初学STM32 CAN通信(二)
    初学STM32CAN通信(二)1.STM32的CAN外设​ STM32的芯片中具有bxCAN控制器(BasicExtendedCAN),它支持CAN协议2.0A和2.0B标准。​ 该CAN控制器支持最高的通讯速率为1Mb/s;可以自动地接收和发送CAN报文,支持使用标准ID和扩展ID的报文;外设中具有3个发送邮箱,发送报文的优先级可以使......
  • 初学STM32 CAN通信(一)
    #初学STM32CAN通信(一)1.CAN协议简介​ CAN是控制器局域网络(ControllerAreaNetwork)的简称,是国际上应用最广泛的现场总线之一,近年来,它具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强及振动大的工业环境。​ ......
  • SRAMC_UVMTB - 3
    验证计划AHB-SRAMC验证计划......
  • SRAMC_UVMTB - 2
    ICVerificationFlow阅读designspecification编写验证计划搭建验证平台编写testcaseregression回归测试:周期往复的进行回归验证,为测试案例提供不同的seed分析代码/功能覆盖率写测试报告SRAMCDesignSpec可以到ICFrontEndDesign中的项目中找SRAMC的设计AHB_SRA......
  • AHB_SRAMC_UVMTB
    如何开展验证的工作?拿到设计spec,理解和分析spec写验证计划:验证功能点提取,规划test,tb架构,用什么方法学,功能覆盖率的提取coverpoint,检查机制.....)搭建验证环境(UVMTB)coding编写用例测试,调试debug,发现RTL的bugregression(跑不同的seed)coverage(codefunction)......