5.2 IO接口试验
5.2.1 实验说明
实验目的:
熟悉ARM 芯片I/O 端口程序设定方法。
通过实验掌握ARM 芯片的I/O 端口控制LED显示的方法。
实验设备:
1) 硬件需要S3C44b0开发板平台,配套调试器,PC 主机。
2) 软件需要ADS1.2 整合开发环境,Windows 2000/NT/XP。
实验内容:
ARM 芯片的I/O 端口通常都是和其它引脚复用的,要熟悉ARM 芯片I/O 端口的程序设定方法,熟悉S3C44B0X 芯片的I/O 端口设定寄存器, 程序实现实验板上的LED 指示灯LED1 和LED2和LED3 轮流点亮和熄灭。
5.2.2. 实验原理
S3C44B0X芯片上共有71 个多功能的输入输出引脚,它们分为7组I/O端口。
两个9 位的输入/输出端口(端口E 和端口F)。
两个8 位的输入/输出端口(端口D 和端口G)。
一个16 位的输入/输出端口(端口C)。
一个10 位的输出端口(端口A)。
一个11 位的输出端口(端口B)。
每组端口都可以通过软件设定寄存器来满足不同系统和设计的需要。在执行主程序之前, 必须先对每一个用到的引脚的功能进行设定, 如果某些引脚的复用功能没有使用, 可以先将该引脚设定为I/O端口。S3C44B0X 芯片和端口相关的寄存器有:
端口设定寄存器(PCONA-G)
在S3C44B0X 芯片中, 大部分引脚是多功能的, 所以要确定每个引脚的功能。PCONn(端口控制寄存器)能够定义引脚功能。如果PG0-PG7 作为掉电模式下的唤醒信号,则这些端口必须设定成中断模式。
端口数据寄存器(PDATA-G)
如果端口定义为输出端口,则输出资料可以写入PDATn 中相应的位;如果端口定义为输入端口,则输入的数据可以从PDATn 相应的位中读入。
端口上拉寄存器(PUPC-G)
通过设定端口上拉寄存器可以使该组端口和上拉电阻连接或断开。当寄存器中相应的位设定0 时, 该引脚接上拉电阻; 当寄存器中相应的位设定1 时,该引脚不接上拉电阻。
外部中断控制寄存器(EXTINT)
通过不同的信号方式可以使8 个外部中断被请求,EXTINT 寄存器可以根据外部中断的需要将中断触发信号设定为低电位触发、高电位触发、下降沿触发、上升沿触发和上下沿触发几种方式。
I/O端口控制寄存器
端口A 控制寄存器
|
寄存器 |
地址 |
R/W |
描述 |
复位值 |
|
PCONA |
0x01D20000 |
R/W |
端口A的引脚配置 |
0x3ff |
|
PDATA |
0x01D20004 |
R/W |
端口A的数据寄存器 |
Undef |
端口A 控制寄存器(PCONA,PDATA)
|
PCONA |
Bit |
Description |
|
PA9 |
[9] |
0 = Output |
1 = ADDR24 |
|
PA8 |
[8] |
0 = Output |
1 = ADDR23 |
|
PA7 |
[7] |
0 = Output |
1 = ADDR22 |
|
PA6 |
[6] |
0 = Output |
1 = ADDR21 |
|
PA5 |
[5] |
0 = Output |
1 = ADDR20 |
|
PA4 |
[4] |
0 = Output |
1 = ADDR19 |
|
PA3 |
[3] |
0 = Output |
1 = ADDR18 |
|
PA2 |
[2] |
0 = Output |
1 = ADDR17 |
|
PA1 |
[1] |
0 = Output |
1 = ADDR16 |
|
PA0 |
[0] |
0 = Output |
1 = ADDR0 |
|
PDATA |
Bit |
描述 |
|
PA[9:0] |
[9:0] |
当端口配置为输出时,对应脚的状态和该位的值相同,当端口配置为功能引脚时,如果读该位的值,将是一个不确定的值。 |
|