C8051F02X外部存储器接口和I/O端口配置

时间:2020-10-06 13:35:31 理工毕业论文 我要投稿

C8051F02X外部存储器接口和I/O端口配置

摘要:介绍美国Cygnal公司生产的C8051F02X系列单片机的外部存储器接口、I/O端口配置方法和有关注意的问题;在此基础上列举两个关于EMIF、I/O的配置应用。

美国Cygnal公司C8051F02X系列单片机是集成在一起芯片上的混合信号系统级单片机。该单片机具有32/64位数字I/O端口(引脚)、25MIPS高速流水线式8051微控制器内核、64KB在系统可编程Flash存储器、64KB地址的外部存储器接口、4352(4096 256)B片内RAM、各自独立的SPI、SMBUS/I2C和两个UART串行接口等特点。其最突出的优点就是,通过设置交叉开关寄存器控制片内数字资源映射到外部I/O引脚,这就允许用户根据自己的特定应用,选择通用I/O端口和所需要数字资源。当然,在设置数字交叉开关寄存器时,应该首先考虑EMIF的配置问题。其配置不同,将导致单片机通过不同的端口(低或高)访问片外存储器和存储器映像的I/O部件,以及数字交叉开关是否分配外部设备给P0.7(WR)、P0.6(RD)、P0.5(ALE)引脚。(如图EMIF设置为多路器模式。)

1 EMIF和I/O配置方法

1.1 外部存储器接口(EMIF)配置

C8051F02X系列MCU有4KB的RAM可以只映射在片内,也可以映射在64KB外部数据存储器地址空间,还可以同时映射到片内和片外(4KB地址以内在片内存储器空间访问,4KB以上经过EMIF访问)三种方式。对于后两种存储器工作模式,需通过外部存储器接口使用MOVX和DPTR或MOVX和R0(R1)指令访问外部数据存储器和存储器映像的I/O设备。但是对于高8位地址,必须由外部存储器接口寄存器(EMI0CN)提供;而EMIF可将外部数据存储器接口映射到低端口(P0~P3)(F020/2/3系列)或高端口(P4~P7)(F020/2系列),以及配置为复用模式或非复用模式等。配置外部存储器接口的步骤下:

*设置EMIF为低端口或高端口;

*设置EMIF为复用模式或非复用模式;

*选择存储器模式(片内方式、无块选择分片方式、带块选择分片方式、片外方式);

*设置片外存储器或片外设备时基;

*选择相关I/O端口(寄存器PnMOUT、P74OUT)的输出模式。

外部存储器接口(EMI)映射为低端口(P0~P3)即PRTSEL位(EMIOCH.5)置为0,如PRTSEL位置为1,EMI映射为高端口(P4~P7)(适用于P020/2系列)。此时如果EMIFLE位(XBR2.5)被设置为逻辑1,那么,数字交叉开关将不分配外部设备给P0.7(WR)、P0.6(RD)、P0.5(ALE)引脚(如果EMI设置为多中模式);如果EMIFLE位设为0,那么P0.7、P0.6、P0.5引脚的功能将由交叉开关寄存器或端口锁存器来决定。外部存储器接口只有执行片外MOVX指令期间使用相关的端口引脚,一旦MOVX指令执行完毕,端口锁存器或交叉开关寄存器又重新恢复对端口引脚的控制。

1.2 I/O端口配置

数字交叉开关译码器按照被使用设备的优先权顺序将端口P0~P7的引脚分配给外部数字外设。端口引脚的分配是从P0.0开始,没有被使用的引脚可作为一般通用的I/O引脚,通过读写相应的端口数据寄存器访问。在数字交叉开关寄存器XBR0、XBR1、XBR2中将相应的内部数字资源使能位置1,数字资源就映射到I/O端口引脚。例如:将UART0EN位(XBR0.2)置为1,那么,TX0和RX0引脚被分别映射到P0.0和P0.1。因为UART0具有最高的优先权,故在它的使能位置1时,TX0和RX0引脚总是被映射到P0.0和P0.1。如果一个数字外设的使能位没有置1,它的端口的I/O引脚上是不能被访问的。数字交叉开关寄存器被正确配置以后,通过置XBARE(XBR2.4)位1来使能交叉开关。在交叉开关使能后。P0~P3(F020/1/2/3系列)或P0~P7(F020/2系列)输出驱动自动被禁止,从而避免了交叉开关寄存器和其它寄存器写入时在端口引脚上产生的冲突。注意:对于由交叉开关分配的输入引脚(如T0、INT0、RX0等),其输出驱动自动被禁止,因此,端口数据寄存器和PnMDOUT寄存器的值对这些引脚的状态没有影响。