b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

emif_emif接口ce3_fpga是什么

电脑杂谈  发布时间:2017-06-07 05:07:07  来源:网络整理
emif

EMIF,全称是External Memory Intece,外部存储器接口,用于片外储存器扩展和外部数据接口的一种并行数据传输片上外设。它能与三种外部存储器无缝连接:同步突发静态存储器(SBSRAM),同步动态存储器(SDRAM),异步存储器(SRAM,ROM,FLASH)等。

这里补充一下它们的区别,虽然我觉得不是重点:

SDRAM:读写操作要求与外部时钟同步;动态存储,芯片需要定时刷新;同步技术使得用于大容量、高速存储领域。

SBSRAM:支持同步突发访问,所以读写速度高;属于SRAM范畴,属于静态RAM,不需要刷新。

异步存储器:简单直接,时钟不必同步;但容量小,主要用于小容量数据存储和程序存储。

EMIF主要和EDMA和外设存储器连接通信,通过引脚。引脚中的CE片选引脚很重要,每个片选引脚对应一个CE空间。emif其它引脚如图:

虽然不同型号dsp寄存器名称有差别,但大体有如下最重要的EMIF寄存器:

GBLCTL:EMIF全局控制寄存器

CECTL0/1/2/3:CE空间控制寄存器

SDCTL:SDRAM控制寄存器

SDTIM:SDRAM时序控制寄存器

SDEXT:SDRAM扩展控制寄存器

对于与SDRAM连接的配置过程:

配置开始-》全局控制寄存器配置EMIF时钟-》CE空间寄存器配置SDRAM空间-》SDCTL配置SDRAM工作模式-》SDTIM配置刷新模式-》配置扩展功能-》配置结束

对于与Flash连接的配置过程:

配置开始-》全局配置时钟,Flash接口选择-》CE空间读写时序控制-》配置结束

一般程序架构:

#...宏定义

#include <csl.h>

#include<csl_emif.h>

...

void erase_Flash();//函数声明

void write_Flash();

unsigned int read_Flash();

EMIF_Config myFlash = {//通过结构体配置

//配置全局寄存器

EMIF_GBLCTL_RMK(

...

),

//配置CE寄存器1,但0、2、3忽略

EMIF_GECTL_DEFAULT,

EMIF_GECTL_RMK(

...

),

EMIF_GECTL_DEFAULT,

EMIF_GECTL_DEFAULT,

//忽略SDRAM相关寄存器

EMIF_SDCTL_DEFAULT,

EMIF_SDTIM_DEFAULT,

EMIF_SDEXT_DEFAULT,

...

...

}

void main()

{

...

CSL_init();

EMIF_config(&myFlash);

erase_Flash();//对flash而言,写入前先擦除

Flash_ptr = (unsigned int *)FLASH_BEGIN;//写入的初始地址

for(i = 0;i<DATA_SIZE;i)

{

write_Flash(bootfile[i],Flash_ptr);

}

...

}

void erase_Flash()

{

*FLASH_ADR2 = 0xaa;//擦除操作命令序列,flash特殊

*FLASH_ADR1 = 0x55;

*FLASH_ADR2 = 0x80;

*FLASH_ADR2 = 0xaa;

*FLASH_ADR1 = 0x55;

*FLASH_ADR2 = 0x10;

}

void write_Flash(unsigned int data,unsigned int addr)

{

*FLASH_ADR2 = 0xaa; //写操作命令序列,flash特殊,换作SDRAM则不用。

*FLASH_ADR1 = 0x55;

*FLASH_ADR2 = 0xa0;

*addr = data;

}

unsigned int read_Flash(unsigned int addr)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-51555-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 齐成公
        齐成公

        没有捕捉到美舰的动向

      热点图片
      拼命载入中...