c8051f020 I/O配置小结
c8051f020 I/O配置小结
注意的问题:
1.低端口既能按位寻址,也可以按字节寻址;高端口只能按字节寻址。
2.没有被分配到的引脚作为一般的数字通用I/O口。
3.P1口还可以用作ADC1的模拟输入。
4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的输出状态。
5.EMIF(外部存储器接口)是用于CPU与片外XRAM之间的数据传输通道,通过寄存器EMI0CF和EMI0CN选择和管理端口实现数据的传输。
6.为了能访问片外存储器空间,必须设置EMI0CN寄存器的内容为片外存储器的空间页地址。
7.如果把外部存储器接口(EMIF)设置在高端口则首先要把EMI0CF的PRTSEL位设置为1,选择高端口,同时选择地址的复用或非复用方式,在把XBR的外部寄存器的EMIFLE位设置为0。
8.复用方式配置:在复用方式下,数据总线和地址总线的第8位共用相同的引脚(AD0~AD7)。在该方式下,要用一个外部锁存器(如74HC373或相同功能的锁存器)保持RAM地址的低8位。外部锁存器由ALE(地址锁存使能)信号控制,ALE信号由外部存储器接口逻辑驱动。
9.在总线复用时,需要把地址数据复用端口配置为漏极开路。
10.ALE高/低脉宽占1个SYSCLK周期,地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期,EMIF工作在地址/数据复用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步骤是:先将EMIF选到低端口或高端口;然后选择复用方式或非复用方式;再选择存储器的模式(只用片内存储器、不带块选择的分片方式、带块选择的分片方式或只用片外存储器);然后设置EMI0TC;最后通过寄存器PnMDOUT和P74OUT选择所期望的相关端口的输出方式。如:
void PORT_Init (void)
{
}
11.避免高端口处于“浮空”状态,以避免因输入浮空为无效逻辑电平而导致不必要的功率消耗,为此应采取如下措施的任何一种:a.将XBR2.7位设置为逻辑0选择弱上拉状态
R/W
WEAKPUD
位7
位7 WEAKPUD 弱上拉禁止位
0 弱上拉全局允许
1 弱上拉全局禁止
位6 XBARE 交叉开关允许位
0 交叉开关禁止端口0 1 2 和3 的所有引脚被强制为输入方式
1 交叉开关允许
位5 未用读0 写=忽略
位4 T4EXE T4EX 输入允许位
0 T4EX 不连到端口引脚
1 T4EX 连到端口引脚
位3 T4E T4 输入允许位
0 T4 不连到端口引脚
1 T4 连到端口引脚
位2 UART1E UART1 I/O 允许位
0 UART1 I/O 不连到端口引脚
1 UART1 TX 和RX 连到两个端口引脚
位1 EMIFLE 外部存储器接口低端口允许位
0 P0.7 P0.6 和P0.5 的功能由交叉开关或端口锁存器决定
1 如果EMI0CF.4 = 0 外部存储器接口为复用方式
则P0.7 (/WR) P0.6 (/RD)和P0.5 (/ALE)被交叉开关跳过它们的输出
状态由端口锁存器和外部存储器接口决定
1 如果EMI0CF.4 = 1 外部存储器接口为非复用方式
则P0.7 (/WR)和P0.6 (/RD)被交叉开关跳过它们的输出状态由端口锁
存器和外部存储器接口决定
位0 CNVSTE 外部转换启动输入允许位
0 CNVSTR 不连到端口引脚
1 CNVSTR 连到端口引脚;
b.令P74OUT=0xFF,将高端口输出方式配置为推拉方式(P74OUT为高端口输出方式寄存器);
c.向高端口数据寄存器P4、P5、P6和P7写0。
12.配置端口引脚的输出方式
每个端口引脚的输出方式都可被配置为漏极开路或推挽方式。在推挽方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚被驱动到VDD ,在漏极开路方式下向端口数据寄存器中的相应位写逻辑0 将使端口引脚被驱动到GND 写逻辑1 将使端口引脚处于高阻状态,当系统中不同器件的端口引脚有共享连接。即多个输出连接到同一个物理线时(例如SMBus 连接中的SDA 信号),使用漏极开路方式可以防止不同器件之间的冲突。(推挽方式在有些书中称为推拉方式)
转载-关于开漏、推挽方式2008-01-27 17:53漏级开路即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态,若需要产生高电平,则需使用外部上拉电阻或使用如LCX245等电平转换芯片。有些朋友,尤其是未学过此方面知识的朋友,在实际工作
c8051f020IO配 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)