外部存储器接口(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)测试文件 ÿ…...
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…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
