C8051F02X外部存储器接口和I/O端口配置
发布时间:2008/5/27 0:00:00 访问次数:632
来源:单片机及嵌入式系统应用 作者:魏永红 张 勉 赵 捷
摘要:介绍美国cygnal公司生产的c8051f02x系列单片机的外部存储器接口、i/o端口配置方法和有关注意的问题;在此基础上列举两个关于emif、i/o的配置应用。
关键词:c8051f02x 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寄存器的值对这些引脚的状态没有影响。
在给单片机内部数字资源分配了相应的i/o引脚后,还应设置其输出方式:推挽和漏极开路。pnmdout寄存器各位决定p0~p7端口引脚的输出方式,某一位置1,则该位为推挽输出方式;置0,为漏极开路输出方式。pnmdout寄存器控制端口引脚的输出方式,而与交叉开关是否把端口引脚分配给数字外设无关。注意:对于由交叉开关分配的输入引脚(如:sda、scl、rx0、rx1等)自动配置为漏极开路方式,而与相应的端口配置寄存器的设置无关。但对于一般的i/o引脚配置为输入时,与这一引脚相关的pnmdout设置为漏极开路,同时端口配置寄存器位必须清0。
尽管在c8051f021/3中p4、p5、p6和p7没有对应的引脚,但端口数据寄存器仍然存在
来源:单片机及嵌入式系统应用 作者:魏永红 张 勉 赵 捷
摘要:介绍美国cygnal公司生产的c8051f02x系列单片机的外部存储器接口、i/o端口配置方法和有关注意的问题;在此基础上列举两个关于emif、i/o的配置应用。
关键词:c8051f02x 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寄存器的值对这些引脚的状态没有影响。
在给单片机内部数字资源分配了相应的i/o引脚后,还应设置其输出方式:推挽和漏极开路。pnmdout寄存器各位决定p0~p7端口引脚的输出方式,某一位置1,则该位为推挽输出方式;置0,为漏极开路输出方式。pnmdout寄存器控制端口引脚的输出方式,而与交叉开关是否把端口引脚分配给数字外设无关。注意:对于由交叉开关分配的输入引脚(如:sda、scl、rx0、rx1等)自动配置为漏极开路方式,而与相应的端口配置寄存器的设置无关。但对于一般的i/o引脚配置为输入时,与这一引脚相关的pnmdout设置为漏极开路,同时端口配置寄存器位必须清0。
尽管在c8051f021/3中p4、p5、p6和p7没有对应的引脚,但端口数据寄存器仍然存在