分类: 嵌入式
2009-04-01 21:23:15
1.GPIO硬件介绍:
GPIO(General Purpose I/O Ports)意思为通用输入/输出接口,通俗的说,就是一些引脚可以通过他们输出高低电平或者通过他们读入引脚的状态--是高电平还是低电平。
S3C2410有117个I/O端口,共分为A-H8组:GPA,GPB,GPC.....GPH。S3C2440有130个I/O端口,分为A-J9组:GPA,GPB,GPC......GPJ。可以通过设置寄存器来确定某个引脚是用于输入,输出还是其他特殊功能
2.通过寄存器来操作GPIO引脚
既然一个引脚可以用于输入输出或者其他的特殊功能,那么一定就有寄存器来选择这些功能:(1),对于输入,一定可以通过读某个寄存器来确定引脚的电平是高还是低。(2),对于输出,一定可以通过写入某个寄存器来让某个引脚输出高电平或者低电平。(3),对于其他特殊功能,则有另外的寄存器来控制这些IO口来实现这些特殊的功能。
一般来说:GPxCON用于选择引脚的功能,GPxDAT用于读写引脚数据,GPxUP用于确定是否使用内部的上拉电阻。但是,有个特例---没有GPAUP这个寄存器。
3.GPxCON---选择引脚的功能
Port A与Port B-H/J在功能选择上有所不同,GPACON中每一位对应一根引脚(23根引脚),当某位被设为0时,相应引脚为输出引脚,此时可以向GPADAT中写入数据来让对应的引脚输出高低电平。当某位被设为1时,相应引脚为地址线或用于地址控制,此时GPADAT无用。
一般而言,GPACON通常全被设为1,以便访问外部存储器件。
Port B--Port H/J在寄存器操作方面完全的不同,GPxCON中每两位控制一根引脚:
00表示输入,01表示输出,10表示特殊功能,11保留不用。
4.GPxDAT---
对该寄存器读可以获得相应引脚的电平的高低,写该寄存器可以让相应的引脚输出高低电平。
5.GPxUP---
当某位为1时,表明相应的引脚无内部上拉电阻,为0时,表明相应的引脚使用内部上拉电阻。
注意:不存在GPAUP这个寄存器