Component - EMIF V1.30 - Chinese

PSoC® Creator™ Component Datasheet
外部存储器接口(EMIF)
1.30
性能
 8 位、16 位、24 位地址总线宽度
 8 位、16 位数据总线宽度
 支持外部同步存储器
 支持外部异步存储器
 支持存储器自定义接口
 支持外部存储器速度变化范围(5-200 ns)
 支持外部存储器断电、睡眠和唤醒模式
概述
EMIF组件可以通过CPU或DMA访问PSoC 3/PSoC 5LP外部存储器IC。它简化了EMIF硬件及UDB
和GPIO的所需设置。EMIF可以控制同步或异步存储器,无需在同步和异步模式下配置任何
UDB。在UDB模式下,必须配置UDB,用来生成外部控制信号。
何时使用 EMIF
EMIF用于扩展可用存储器空间。这支持在片下存储器器件中扩展数据存储。外部存储器 IC 连接
至 PSoC,通常旨在保存大量数据阵列,例如,文本、音频或视频内容。其他预期应用包括数据记
录,这些应用可用作外部LCD像素数据的缓冲区。
赛普拉斯半导体公司• 198 Champion Court • San Jose,CA 95134-1709 • 408-943-2600
Document Number: 001-88862 Rev. *A
修订时间 October 22, 2013
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
原理图宏信息
默认情况下,PSoC Creator 组件目录包含 EMIF 组件的原理图宏实现。这些宏已经包含连接的输
出引脚。原理图宏即可用于异步和同步类型的外部存储器接口。
同步EMIF宏
异步EMIF宏
输入/输出连接
本节介绍 EMIF 的各种输入和输出连接。I/O 列表中的星号(*)表示 I/O 可能在某种 SAR ADC 配
置下隐藏。
udb_ready — 输入*
外部逻辑信号向 PHUB 指示 AHB 总线数据操作已完成(高电平有效)。将 External Memory
Type(外部存储器类型)参数设置为 Custom(自定义)时,此输入可见。
xmem_wr — 输出*
自定义接口的通用写入信号(高电平有效)。外部逻辑信号向 PHUB 指示 AHB 总线数据操作已完
成(高电平有效)。将 External Memory Type(外部存储器类型)参数设置为 Custom 自定
义)时,此输出可见。
xmem_rd — 输出*
自定义接口的通用读取信号(高电平有效)。将 External Memory Type(外部存储器类型)参
数设置为 Custom(自定义)时,此输出可见。
页 2/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
External Memory Interface (EMIF)
cen — 输出*
外部存储器芯片使能(低电平有效)。将 External Memory Type(外部存储器类型)参数设置
为 Synchronous(同步)或 Asynchronous(异步)时,此输出可见。
wen — 输出*
外部存储器写使能(低电平有效)。将 External Memory Type(外部存储器类型)参数设置为
Synchronous(同步)或 Asynchronous(异步)时,此输出可见。
oen — 输出*
外部存储器输出使能(低电平有效)。将 External Memory Type(外部存储器类型)参数设置
为 Synchronous(同步)或 Asynchronous(异步)时,此输出可见。
mem_clk — 输出*
用于外部同步存储器的时钟。将 External Memory Type(外部存储器类型)参数设置为
Synchronous(同步)时,此输出可见。
adscn — 输出*
外部同步存储器的地址探针(低电平有效)。将 External Memory Type(外部存储器类型)参
数设置为 Synchronous(同步)时,此输出可见。
mem_sleep — 输出*
外部同步存储器睡眠引脚的睡眠信号(高电平有效)。将 External Memory Type(外部存储器
类型)参数设置为 Synchronous(同步)时,此输出可见。
Document Number: 001-88862 Rev. *A
页 3/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
组件参数
将 EMIF 拖入设计中,双击该组件,打开 Configure(配置)对话框。
EMIF 提供下列参数:
外部存储器类型
确定外部存储器类型。默认的设置根据每个操作而不同。
地址宽度(位)
确定外部存储器地址总线的位数。默认地址总线宽度为 24 位。
数据宽度(位)
确定外部存储器数据总线的位数。默认数据总线宽度为 16 位。
外部存储器速度(ns)
确定外部存储器的速度(ns)。默认外部存储器速度为 30 ns。
总线时钟频率
显示所选总线时钟频率(百万赫兹)。
页 4/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
External Memory Interface (EMIF)
存储器数据操作



写入周期长度 — 表示写入周期的长度(纳秒)。总线时钟频率周期显示在括号中。

信号 Oen 脉宽(Toel) — 表示 Toel 参数(启用信号脉宽的写入)(纳秒)。有关详细信
息,请参见直流和交流电气特性这一章节。
读取周期长度 — 表示读取周期的长度(纳秒)。总线时钟频率周期显示在括号中。
信号 Wen 脉宽(Twel) — 表示 Twel 参数(启用信号脉宽的写入)(纳秒)。有关详细信
息,请参见直流和交流电气特性这一章节。
应用编程接口
通过应用编程接口(API)子程序,您可以使用软件对组件进行配置。下面的表格列出并说明了每
个函数的接口。以下各节将更详细地介绍每个函数。
默认情况下,PSoC Creator 将实例名称“EMIF_1”分配给指定设计中组件的第一个实例。您可
以将其重命名为遵循标识符语法规则的任何唯一值。实例名称会成为每个全局函数名称、变量和
常量符号的前缀。出于可读性考虑,下表中使用的实例名称为“EMIF”。
函数
说明
EMIF_Start()
调用EMIF_Init()和EMIF_Enable()
EMIF_Stop()
禁用EMIF模块。返回所有相关的I/O端口和引脚至HI-Z模式
EMIF_Init()
初始化或恢复当前自定义程序状态的EMIF配置
EMIF_Enable()
启用EMIF硬件模块、相关I/O端口和引脚
EMIF_ExtMemSleep()
设置外部存储器睡眠信号为高电平;注意:根据所使用的外部存储器IC的类型,可能需
要反转该信号
EMIF_ExtMemWakeup()
设置外部存储器睡眠信号为低电平;注意:根据所使用的外部存储器IC的类型,可能需
要反转该信号
EMIF_SaveConfig()
保存EMIF非保留寄存器的用户配置。通过EMIF_Sleep()调用此子程序,以便在进入睡
眠模式前保存组件配置
EMIF_Sleep()
停止EMIF操作,保存用户配置与EMIF的启用状态
EMIF_RestoreConfig()
恢复EMIF非保留寄存器的用户配置。通过EMIF_Wakeup()调用此子程序,以便在退出
睡眠模式时恢复组件配置
EMIF_Wakeup()
恢复用户配置和启用状态
Document Number: 001-88862 Rev. *A
页 5/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
void EMIF_Start(void)
说明:
这是开始执行组件操作的首选方法。EMIF_Start()调用EMIF_Init()函数,然后再调用
EMIF_Enable()函数。
参数:
无
返回值:
无
其他影响:
无
void EMIF_Stop(void)
说明:
禁用EMIF模块。返回所有相关的I/O端口和引脚至HI-Z模式
参数:
无
返回值:
无
其他影响:
无
void EMIF_Init(void)
说明:
根据自定义程序“配置”对话框设置初始化或恢复组件。无需调用EMIF_Init(),因为
EMIF_Start()子程序会调用此函数,这是开始组件操作的首选方法。
参数:
无
返回值:
无
其他影响:
无
void EMIF_Enable(void)
说明:
激活硬件并开始执行组件操作。无需调用EMIF_Enable(),因为EMIF_Start()子程序会调用此
函数,这是开始组件操作的首选方法。
参数:
无
返回值:
无
其他影响:
无
页 6/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
External Memory Interface (EMIF)
void EMIF_ExtMemSleep(void)
说明:
在EMIF_PWR_DWN寄存器中设置‘mem_pd’位。这将外部存储器睡眠信号设置为高电平。
根据所使用的外部存储器IC的类型,可能需要反转该信号。
参数:
无
返回值:
无
其他影响:
无
void EMIF_ExtMemWakeup(void)
说明:
在EMIF_PWR_DWN寄存器中复位“mem_pd”位。这将外部存储器睡眠信号设置为低电平。
根据所使用的外部存储器IC的类型,可能需要反转该信号
参数:
无
返回值:
无
其他影响:
无
void EMIF_SaveConfig(void)
说明:
此函数保存组件配置。它将保存非保存寄存器。此函数还将保存当前“Configure”对话框中
所定义的或通过相应API修改的组件参数值。通过EMIF_Sleep()函数调用此函数。
参数:
无
返回值:
无
其他影响:
无
Document Number: 001-88862 Rev. *A
页 7/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
void EMIF_Sleep(void)
说明:
这是准备组件睡眠的首选子程序。EMIF_Sleep()子程序保存当前组件状态。然后调用
EMIF_Stop()函数和EMIF_SaveConfig()以保存硬件配置。
调用EMIF_Sleep()函数,然后再调用CyPmSleep()或CyPmHibernate()函数。有关功耗管理函
数的详细信息,请参考PSoC Creator《系统参考指南》。
参数:
无
返回值:
无
其他影响:
无
void EMIF_RestoreConfig(void)
说明:
此函数恢复组件配置。这将恢复非保留寄存器。此外,此函数还将组件参数值恢复为调用
EMIF_Sleep()函数之前的状态。
参数:
无
返回值:
无
副作用:
如果在调用此函数之前未调用EMIF_Sleep()或EMIF_SaveConfig()函数,可能产生意外行为。
void EMIF_Wakeup(void)
说明:
这是用来将组件恢复到调用EMIF_Sleep()时的状态的首选子程序。EMIF_Wakeup()函数调用
EMIF_RestoreConfig()函数以用来恢复该配置。如果在调用EMIF_Sleep()前启用该组件,则
EMIF_Wakeup()函数还将重新启用该组件。
参数:
无
返回值:
无
副作用:
如果在调用EMIF_Wakeup()函数之前未调用EMIF_Sleep()或EMIF_SaveConfig()函数,可能
产生意外行为。
定义
CYDEV_EXTMEM_BASE — 用于在外部存储器中定位参数的便利宏
EMIF 的地址空间超出了低 64K 地址空间。要想访问 EMIF,您需要使用扩展范围宏
CY_GET_XTND_REG8()和 CY_SET_XTND_REG8()。更多有关这些宏的细节,请参见《系统参
考指南》。
页 8/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
External Memory Interface (EMIF)
外部存储器接口
16 位存储器:

DMA 传输: 对 16 位外部存储器进行 DMA 输出/输入传输时,不支持编号为奇数的
BURSTCNT(突发技术)通道配置。因为 16 位接口中不支持 8 位数据传输。

CPU 传输:由于 PSoC 3 是 8 位处理器,所以不能从 CPU 端访问 16 位存储器。PSoC 5LP
CPU 是 32 位处理器。所以它可以访问 16 位存储器。这里限制是不能向 16 位存储器进行 8 位
的传输。
8 位存储器:

DMA 传输:对 8 位外部存储器进行 DMA 输入/输出传输时,不论 XFRCNT(传输计数)的值
如何,BURSTCNT(突发计数)始终为 1。

CPU 传输:由于 PSoC 3 是 8 位处理器,所以没有传输限制。
PSoC 5LP 只能对 8 位存储器进行 8 位访问请求。
外部存储器接口的地址映射
PSoC 3 EMIF 外部数据空间地址映射
地址范围:
0x800000 – 0xFFFFFF
PSoC 5LP EMIF 存储器地址映射
地址范围:
0x60000000 – 0x61FFFFFF
MISRA 合规性
本节介绍了 MISRA-C:2004 合规性和本组件的偏差情况。定义了两种类型的偏差:项目偏差 — 适
用于所有 PSoC Creator 组件的偏差;特定偏差 — 仅适用于该组件的偏差。本节提供了有关组件
特定偏差的信息。《系统参考指南》的 MISRA 合规性章节中介绍了项目偏差以及有关 MISRA 合
规性验证环境的信息。
此 EMIF 组件没有任何特定偏差。
Document Number: 001-88862 Rev. *A
页 9/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
样例固件源代码
在“Find Example Project”对话框中,PSoC Creator 提供了大量的示例项目,包括原理图和代
码的。要获取组件特定的示例,请打开组件目录中的对话框或原理图中的组件实例。要查看通用
示例,请打开“Start Page”或 File 菜单中的对话框。根据要求,可以通过使用对话框中的 Filter
Options 选项来限定可选的项目列表。
更多有关信息,请参考《PSoC Creator 帮助》中主题为“查找示例项目”中的内容。
功能描述
通常,此组件与PSoC Creator均不提供用于定位外部存储器中的代码、变量、结构或阵列的任何
外部支持。然而,在此组件或PSoC Creator中却没有阻止高级用户为此目的而创建或修改源代
码、链接脚本或其他任何源文件的任何程序。
初始化变量不应放置在外部存储器中。请勿在外部存储器中定位通过PSoC Creator自动生成的代
码、变量、结构和阵列。
PSoC EMIF 硬件和相关GPIO端口支持高达24位的地址总线和8位或16位数据总线。
外部存储器最多需要6个GPIO端口,用来连接地址、数据和控制行:1到3个端口用于连接地址;1
到2个端口用于连接数据,1个端口用于连接控制行。对于地址和数据来说,必须选择整个端口。
控制端口中未使用的引脚仍然可以用作GPIO。
重要的是,当EMIF组件放置在项目原理图上时,一定要为地址和数据设置I/O端口标示。不需在符
号或原理图上标示地址和数据端口;而是在“Design-Wide Resources”(设计范围资源)窗口的
“Pins”(引脚)选项卡中完成该标示。控制信号在组件符号上显示为终端;通常情况下,这些
终端应该路由至引脚组件。
共有3种EMIF类型 — 异步、同步或自定义(不常使用)。所选类型用来确定符号大小、符号中的
终端数及符号中的某些文本。自定义组件版本是包含输入终端udb_ready的唯一版本。据预计,
xmem_wr与xmem_rd信号将与基于UDB的逻辑绑定,二者均向外部IC生成相应的控制信号,同时
提供通过udb_ready终端返回至PHUB的反馈信号。您可以为自定义模式信号确定相应的时序。
页 10/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
External Memory Interface (EMIF)
下面图框介绍了自定义模式的时序。
资源
外部存储器接口(EMIF)是PSoC 3和PSoC 5LP的专用硬件模块,与 UDB 一起使用,支持与外
部存储器器件连接。
API 存储器大小
根据编译器、器件、所使用的 API 数量以及组件的配置情况不同,组件的存储器大小也不一样。
下表提供了组件配置中所有 API 占用的存储器大小。
通过使用“释放”模式下的相应编译器,可以进行测量操作。在该模式下,存储器的大小得到优
化。对于特定的设计,分析编译器生成映射文件后可以确定存储器的使用大小。
PSoC 3 (Keil_PK51)
配置
PSoC 5LP(GCC)
闪存
SRAM
闪存
SRAM
字节
字节
字节
字节
异步
168
2
204
5
同步
185
2
236
5
自定义
154
2
188
5
Document Number: 001-88862 Rev. *A
页 11/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
直流和交流电气特性
除非另有说明,否则这些规范的适用条件是:-40°C ≤ TA ≤ 85 °C 和 TJ ≤ 100 °C。除非另有说
明,否则这些规范的适用范围为 1.71 V 到 5.5 V。
T(EMIF 时钟周期) = 1/f (EMIF_clock),
其中:



如果 BUS_CLK <= 33MHz,f (EMIF_clock) = f (BUS_CLK)。
如果 33MHz <= f(BUS_CLK) <= 66MHz,f (EMIF_clock) = 1/2*f (BUS_CLK)。
如果 BUS_CLK 频率>= 67MHz,f (EMIF_clock) = 1/3* f (BUS_CLK)(仅用于 PSoC 5LP)。
异步读循环时序
Tcel
EM_CEn
Taddrv
Taddrh
EM_Addr
Address
Toel
EM_OEn
EM_WEn
Tdoesu
EM_Data
Tdoeh
Data
符号
说明
条件
最小值
典型
值
最大值
单位
VDDA ≥ 3.3 V
30.3
—
—
ns
2T – 5
—
2T + 5
ns
T
EMIF时钟周期
Tcel
EM_CEn为低的时长
Taddrv
从EM_CEn为低到EM_Addr有效的时长
—
—
5
ns
Taddrh
EM_WEn为高后的地址保持时长
T
—
—
ns
Toel
EM_OEn为低的时长
2T – 5
—
2T + 5
ns
页 12/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
符号
External Memory Interface (EMIF)
说明
条件
Tdoesu
从读取数据出现到EM_OEn为高的建立
时长
Tdoeh
EM_OEn为高后的数据保持时长
最小值
典型
值
最大值
单位
T + 15
—
—
ns
3
—
—
ns
异步写循环时序
Tcel
EM_CEn
Taddrv
Taddrh
EM_Addr
Address
EM_OEn
Twel
EM_WEn
Tdcev
EM_Data
Tdweh
Data
符号
说明
条件
最小值
典型值
最大值
单位
VDDA ≥ 3.3 V
30.3
—
—
ns
T–5
—
T+5
ns
T
EMIF时钟周期
Tcel
EM_CEn为低的时长
Taddrv
从EM_CEn为低到EM_Addr有效的时长
—
—
5
ns
Taddrh
EM_WEn为高后的地址保持时长
T
—
—
ns
Twel
EM_WEn为低的时长
T–5
—
T+5
ns
Tdcev
从EM_CEn为低到数据有效的时长
—
—
7
ns
Tdweh
EM_WEn为高后的数据保持时长
T
—
—
ns
Document Number: 001-88862 Rev. *A
页 13/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
同步读循环时序
Tcp/2
EM_Clock
Tceld
Tcehd
EM_CEn
Taddrv
Taddriv
EM_Addr
Address
Toeld
Toehd
EM_OEn
Tds
EM_Data
Data
Tadscld
Tadschd
EM_ADSCn
符号
说明
条件
最小值
典型值
最大值
单位
VDDA ≥ 3.3 V
30.3
—
—
ns
T/2
—
—
ns
T
EMIF时钟周期
Tcp/2
EM_Clock脉冲为高
Tceld
从EM_CEn为低到EM_Clock为高的
时长
5
__
__
ns
Tcehd
从EM_Clock为高到EM_CEn为高的
时长
T/2 — 5
—
—
ns
Taddrv
从EM_Addr有效到EM_Clock为高的
时长
5
—
—
ns
Taddriv
从EM_Clock为高到EM_Addr无效的
时长
T/2 – 5
—
—
ns
Toeld
从EM_OEn为低到EM_Clock为高的
时长
5
—
—
ns
Toehd
从EM_Clock为高到EM_OEn为高的
时长
T
—
—
ns
Tds
EM_OEn为高之前数据有效的时长
T + 15
—
—
ns
Tadscld
从EM_ADSCn为低到EM_clock为高
的时长
5
—
—
ns
页 14/16
Document Number: 001-88862 Rev. *A
PSoC® Creator™ Component Datasheet
Tadschd
External Memory Interface (EMIF)
T/2 – 5
从EM_Clock为高到EM_ADSCn为高
的时长
—
—
ns
同步写循环时序
Tcp/2
EM_Clock
Tceld
Tcehd
EM_CEn
Taddrv
EM_Addr
Taddriv
Address
Tweld
Twehd
EM_WEn
Tds
Tdh
EM_Data
Data
Tadscld
Tadschd
EM_ADSCn
符号
说明
条件
最小值
典型值
最大值
单位
VDDA ≥ 3.3 V
30.3
—
—
ns
T/2
—
—
ns
T
EMIF时钟周期
Tcp/2
EM_Clock脉冲为高
Tceld
从EM_CEn为低到EM_Clock为高的时
长
5
—
—
ns
Tcehd
从EM_Clock为高到EM_CEn为高的时
长
T/2 – 5
—
—
ns
Taddrv
从EM_Addr有效到EM_Clock为高的时
长
5
—
—
ns
Taddriv
从EM_Clock为高到EM_Addr无效的时
长
T/2 – 5
—
—
ns
Tweld
从EM_WEn为低到EM_Clock为高的时
长
5
—
—
ns
Document Number: 001-88862 Rev. *A
页 15/16
External Memory Interface (EMIF)
PSoC® Creator™ Component Datasheet
T/2 – 5
—
—
ns
EM_Clock为高之前数据有效的时长
5
—
—
ns
Tdh
EM_Clock为高后数据无效的时长
T
—
—
ns
Tadscld
从EM_ADSCn为低到EM_clock为高的
时长
5
—
—
ns
Tadschd
从EM_Clock为高到EM_ADSCn为高的
时长
T/2 – 5
—
—
ns
Twehd
从EM_Clock为高到EM_WEn为高的时
长
Tds
组件更改
版本
1.30.a
更改说明
更改原因/影响
更新了功能描述。
添加了自定义模式的图框。
清楚PSoC 5的参考内容。
PSoC 5被替代为PSoC5 LP。
1.30
已添加了MISRA合规性章节。
此组件没有任何特定偏差。
1.20
添加了PSoC 3/5LP的更新内容
1.10 b
更新了EMIF数据手册中EMIF存储器映射信息。
1.10
添加了PSoC 5LP支持
© 赛普拉斯半导体公司,2013。此处,所包含的信息可能会随时更改,恕不另行通知。除赛普拉斯产品内嵌的电路以外,赛普拉斯半导体公司不对任何其他电路的使用承担任何责任。也不会以明
示或暗示的方式授予任何专利许可或其他权利。除非与赛普拉斯签订了明确的书面协议,否则赛普拉斯产品不保证产品能够用于或适用于医疗、生命支持、救生、关键控制或安全应用领域。此
外,对于可能发生运转异常和故障并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统,则表示制造商将承担因此类
使用而招致的所有风险,并确保赛普拉斯免于因此而受到任何指控。
PSoC®是赛普拉斯半导体公司的注册商标,PSoC Creator™和 Programmable System-on-Chip™是赛普拉斯半导体公司的商标。此处引用的所有其他商标或注册商标归其各自所有者所有。
所有源代码(软件和/或固件)均归赛普拉斯半导体公司(赛普拉斯)所有,并受全球专利法规(美国和美国以外的专利法规)、美国版权法以及国际条约规定的保护和约束。赛普拉斯据此向获许
可者授予适用于个人的、非独占性、不可转让的许可,用以复制、使用、修改、创建赛普拉斯源代码的派生作品、编译赛普拉斯源代码和派生作品,并且其目的只能是创建自定义软件和/或固件,
以支持获许可者仅将其获得的产品依照适用协议规定的方式与赛普拉斯 集成电路配合使用。除上述指定的用途外,未经赛普拉斯的明确书面许可,不得对此类源代码进行任何复制、修改、转换、
编译或演示。
免责声明:赛普拉斯不针对此材料提供任何类型的明示或暗示保证,包括(但不仅限于)针对特定用途的适销性和适用性的暗示保证。赛普拉斯保留在不另行通知的情况下对此处所述材料进行更
改的权利。赛普拉斯不对此处所述之任何产品或电路的应用或使用承担任何责任。对于合理预计可能发生运转异常和故障,并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作
此类系统的关键器件。若将赛普拉斯产品用于生命支持系统,则表示制造商将承担因此类使用而导致的所有风险,并确保赛普拉斯免于因此而受到任何指控。
产品使用可能受适用的赛普拉斯软件许可协议限制。
页 16/16
Document Number: 001-88862 Rev. *A