当前位置: 首页 > 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…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...