当前位置: 首页 > news >正文

外部存储器接口(EMIF)

外部存储器接口(EMIF)

该设备支持双核架构;为了为每个CPU子系统提供一个专用的EMIF,该设备支持两个EMIF模块——EMIF1和EMIF2。两个模块完全相同,具有相同的功能集,但具有不同的地址/数据大小。EMIF1在CPU1和CPU2子系统之间共享,而EMIF2专用于CPU1子系统。

在这里插入图片描述
在这里插入图片描述
在该设备上,如果EMIF1被选择为具有32位数据宽度,则不能使用EMIF2,因为EMIF2数据引脚与EMIF1 MSB数据引脚复用。

外围设备的用途

该EMIF存储器控制器与JESD21-C SDR SDRAM存储器兼容,采用32位/16位数据总线。该EMIF的目的是为CPU提供一种连接到各种外部设备的方式,包括:
单数据速率SDRAM
异步设备,包括NOR闪存和SRAM

特性

EMIF控制器包括许多功能,以增强连接到外部SDR SDRAM和异步设备的方便性和灵活性。

支持异步内存

EMIF控制器支持异步:SRAM存储器;NOR闪存
有一个外部等待输入,允许较慢的异步存储器扩展存储器访问。EMIF模块支持多个芯片选择(启用)。每个芯片选择都具有以下可单独编程的属性:数据总线宽度;读取周期计时:设置、保持、选通;写入周期定时:设置、保持、选通;总线转换时间;可编程超时的延长等待选项;选择选通选项。

支持同步DRAM内存

EMIF模块还支持16位/32位SDRAM。它有一个单一的SDRAM芯片选择。支持的SDRAM配置为:
•一、二和四组SDRAM设备
•具有八、九、十和十一列地址的设备
•两个或三个时钟周期的CAS延迟
•16位/32位数据总线宽度
•3.3V LVCMOS接口此外,EMIF支持将SDRAM置于自我刷新和断电模式。
自刷新模式允许SDRAM处于低功率状态,同时仍然保留存储器内容,因为即使没有来自微控制器的时钟,SDRAM也将继续刷新自己。断电模式可以实现更低的功率,但如果需要数据保留,微控制器必须定期唤醒并发出刷新。
请注意,EMIF模块不支持移动SDRAM设备

功能框图

EMIF及其内部请求程序之间的连接,以及外部EMIF引脚。
包含MCU内部可以向EMIF发送请求的实体及其优先级的描述。
描述了EMIF外部引脚,并总结了它们与SDRAM和异步设备接口时的用途。
在这里插入图片描述

配置设备引脚

GPIO多路复用器寄存器必须配置为将此外围设备连接到设备引脚。为了避免引脚出现故障,必须首先配置GPyGMUX位(同时将相应的GPyMUX位保持为默认值零),然后将GPyMUX寄存器写入所需值。某些IO功能是由GPIO寄存器设置定义的,与此外围设备无关。对于输入信号,应通过将适当的GPxQSELn寄存器位设置为11b,将GPIO输入资格设置为异步模式。内部上拉可以在GPyPUD寄存器中进行配置。有关GPIO多路复用器和设置的更多详细信息,请参阅GPIO章节。

EMIF模块体系结构

提供有关EMIF的体系结构和操作的详细信息。SDRAM和异步接口以及其他与系统相关的配置(如时钟控制)都包含在内。

EMIF时钟控制

EMIF时钟在EM1CLK引脚上输出,应在与外部SDRAM设备接口时使用。EMIF模块获得PLLSYSCLK时钟域作为输入。用户可以通过配置时钟控制模块中PERCLKDIVSEL寄存器中的EMIF1CLKDIV字段,选择以PLLSYSCLK/1或PLLSYSCL K/2时钟频率运行EMIF。

EMIF请求

MCU内的不同来源可以向EMIF发出请求。这些请求包括对SDRAM存储器、异步存储器和EMIF寄存器的访问。EMIF一次只能处理一个请求。因此,高性能主仲裁块存在于MCU内,以向EMIF提供来自不同源的优先请求。来源如下:CPU1、CPU1.DMA。
如果同时从两个或多个源提交请求,交叉开关将首先向EMIF转发最高优先级的请求。在完成请求后,主仲裁块再次评估未决请求,并将最高优先级的未决请求转发给EMIF。
主仲裁块总是允许来自任何主的RD访问。但对于WR访问(或执行访问),主仲裁块仅允许来自CPU子系统的主控器访问,该CPU子系统基于存储器控制器模块中的EMIF1MSEL寄存器中的配置获取EMIF模块的主控所有权。
当EMIF收到请求时,可能会立即处理,也可能不会立即处理。在某些情况下,EMIF将在处理请求之前执行一个或多个自动刷新周期。有关EMIF在执行请求和执行自动刷新周期之间的内部仲裁的详细信息。

EMIF信号说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SDRAM控制器和接口

EMIF控制器为大多数标准SDR SDRAM设备提供无胶接口,并支持自刷新模式和优先刷新等功能。此外,它还通过可编程参数提供了灵活性,如刷新率、CAS延迟和许多SDRAM时序参数。以下部分详细介绍了如何接口和正确配置EMIF,以便对外部连接的SDR SDRAM设备执行读写操作。此外,提供了将EMIF与通用SDRAM设备接口的详细示例。

SDRAM命令

EMIF控制器支持表中描述的SDRAM命令。显示了SDRAM命令的真值表,PRE命令的示例时序波形如图所示。在本例中,EM1A[10]被拉低以仅停用EM1BA引脚指定的组。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SDRAM的接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

相关文章:

外部存储器接口(EMIF)

外部存储器接口(EMIF) 该设备支持双核架构;为了为每个CPU子系统提供一个专用的EMIF,该设备支持两个EMIF模块——EMIF1和EMIF2。两个模块完全相同,具有相同的功能集,但具有不同的地址/数据大小。EMIF1在CPU…...

华为认证HCIP报名条件有哪些?考试要求介绍

华为HCIP认证是很多网络工程师的考证首选,尤其对于刚入行不久的网络工程师们来说,这个证书无论是从难度出发还是从含金量出发,都是值得一考的。 那么如果想报名华为HCIP认证有哪些条件以及考试要求,华为HCIP的报名需不需要通过机…...

【Python】变量的引用

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

nextjs13如何进行服务端渲染?

目录 一、创建一个新项目 二、动态获取后端数据进行服务端渲染出现的问题 三、nextjs13如何进行服务端渲染 nextjs13是nextjs的一个重大升级,一些原本在next12当中使用的API在nextjs13上使用十分不便。本文将着重介绍在nextjs13及以上版本当中进行服务端渲染的方…...

Redis-基础篇

Redis是一个开源、高性能、内存键值存储数据库,由 Salvatore Sanfilippo(网名antirez)创建,并在BSD许可下发布。它不仅可以用作缓存系统来加速数据访问,还可以作为持久化的主数据存储系统或消息中间件使用。Redis因其数…...

【好书推荐-第七期】《RTC程序设计:实时音视频权威指南》(音视频开发必看!)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:洲与AI。 🎈 本文专栏:本文收录…...

还在犹豫学不学?鸿蒙技术是否有前途的最强信号来了

2024年3月3日 上午10 点,深圳官方账号发布了一篇关于鸿蒙技术发展的重要文章,看到这篇文章后我非常激动,忍不住和大家分享一下! 华为鸿蒙系统自提出以来,网友们的态度各不相同,有嘲笑“安卓套壳”的&#x…...

webpack的plugin 插件教程

Webpack 是一个流行的前端打包工具,通过使用插件(plugin),我们可以对 Webpack 进行扩展和定制,实现更多功能和优化构建过程。在本教程中,我将向你介绍如何编写一个简单的 Webpack 插件,并演示如…...

v72.关于指针操作的补充

1.指针作为函数参数 调用函数时,传递参数的形式决定了是否可以修改这些参数。 传值方式:传递了参数给函数,并且这个参数是基本数据类型,如(int,float),那么函数内对参数的任何操作…...

【学习心得】爬虫JS逆向通解思路

我希望能总结一个涵盖大部分爬虫逆向问题的固定思路,在这个思路框架下可以很高效的进行逆向爬虫开发。目前我仍在总结中,下面的通解思路尚不完善,还望各位读者见谅。 一、第一步:明确反爬手段 反爬手段可以分为几个大类 &#…...

如何使用Logstash搜集日志传输到es集群并使用kibana检测

引言:上一期我们进行了对Elasticsearch和kibana的部署,今天我们来解决如何使用Logstash搜集日志传输到es集群并使用kibana检测 目录 Logstash部署 1.安装配置Logstash (1)安装 (2)测试文件 &#xff…...

AutoEncoder和 Denoising AutoEncoder学习笔记

参考: 【1】 https://lilianweng.github.io/posts/2018-08-12-vae/ 写在前面: 只是直觉上的认识,并没有数学推导。后面会写一篇(抄)大一统文章(概率角度理解为什么AE要选择MSE Loss) TOC 1 Au…...

计算机系统基础

一、计算机系统概述 计算机系统:硬件软件,软件包括系统软件和应用软件 二、计算机组成结构 三、存储结构 3.1 层次化存储结构 3.2 Cache Cache(高速缓存)的功能:提高CPU数据输入输出的速率,突破冯.若依曼瓶…...

live555学习 - 环境准备

环境:Ubuntu 16.04.7 ffmpeg-6.1 1 代码下载 最新版本: http://www.live555.com/liveMedia/public/ 历史版本下载 https://download.videolan.org/pub/contrib/live555/ 选择版本live.2023.01.19.tar.gz ps:没有选择新版本是新版本在…...

C++ 模拟OJ

目录 1、1576. 替换所有的问号 2、 495. 提莫攻击 3、6. Z 字形变换 4、38. 外观数列 5、 1419. 数青蛙 1、1576. 替换所有的问号 思路:分情况讨论 ?zs:左边没有元素,则仅需保证替换元素与右侧不相等;z?s:左右都…...

MariaDB MaxScale实现mysql8读写分离

MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 MaxScale 实验环境 中间件192.168.142.13…...

代码随想录day11(1)字符串:反转字符串中的单词 (leetcode151)

题目要求:给定一个字符串,将其中单词顺序反转,且每个单词之间有且仅有一个空格。 思路:因为本题没有限制空间复杂度,所以首先想到的是用split直接分割单词,然后将单词倒叙相加。 但如果想让空间复杂度为O…...

PlantUML - 时序图

时序图主要内容 下面是一个简单的时序图,我们可以很容易并且美观的表达我们的交互流程,只需要在箭头的两边指定一个名字,加上描述即可: startuml bkloanapply -> bkloanapprove : request bkloanapprove --> bkloanapply :…...

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行

VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行功能,即滚动 UI 显示当前源代码范围。便于在代码行数比较多的时候更好的知道自己所在的位置。粘性滚动UI 显示用户在滚动期间所处的范围,将显示编辑器顶部所在的类/接口/命名空间/函数/方法/构造函数&a…...

Java中的List

List集合的特有方法 方法介绍 方法名描述void add(int index,E element)在此集合中的指定位置插入指定的元素E remove(int index)删除指定索引处的元素,返回被删除的元素E set(int index,E element)修改指定索引处的元素,返回被修改的元素E get(int inde…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...