再上一篇:5.2.3 电源管理器寄存器
上一篇:5.2.4 协处理机 14 的时钟和电源管理
主页
下一篇:5.3.2 中断控制器
再下一篇:5.3.3 实时时钟
文章列表

5.3 系统集成单元

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

系统集成单元(SIU)控制处理机的系统功能。

5.3.1 通用 I/O

PXA250 应用处理机有81 根通用I/O(GPIO)脚。

一、GPIO 操作
应用处理机的GPIO 脚可产生和捕捉输入和输出信号。每个脚可设置为输入或输出。 使用GPDR 可置GPIO 脚为输出或输入。编程为输出的脚,可由GPSR 对应位写入1 来
置高,向GPCR 的对应位写入1 来清0。
读出GPLR 可得到各个GPIO 脚的状态。可通过GPER 和GFER 来设置上升或/和下降沿 检测,并可用GEDR 来读出跳变检测状态,允许时可产生中断。GPIO15~0 也可产生唤醒事 件。
许多GPIO 脚有第二功能。可程控它们为第二功能,但仍需通过GPDR 设置它们的方向。 图5-3 给出了一个GPIO 脚的框图。

图 5-3 GPIO 框图
二、GPIO 第二功能
许多GPIO 脚有第二功能,有的能有多个第二功能。表5-5 列出了具有第二功能的GPIO
和它们的设置方法。





表 5-5 GPIO 第二功能

引脚

第二功能名称

第二功能赋值

AF{

n} 编 码

源单元

信号描述和注释

GP1

GP_RST

ALT_FN_1_IN

01

时钟和电源

管理单元

Active low GP_reset

GP6

MMCCLK

ALT_FN_1_OUT

01

多媒体卡(MMC)

MMC Clock

GP6

MMCCLK

ALT_FN_1_OUT

01

控制器

MMC Clock

GP7

48 MHz

ALT_FN_1_OUT

01

时钟和电源

48 MHz 时钟输出

GP7

clock†

ALT_FN_1_OUT

01

管理单元

48 MHz 时钟输出

GP8

MMCCS0

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 芯片选择0

GP9

MMCCS1

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 芯片选择1

GP10

RTCCLK

ALT_FN_1_OUT

01

系统集成单元

实时时钟(1HZ)

GP11

3.6 MHz

ALT_FN_1_OUT

01

时钟和电源

管理单元

3.6 MHz 振荡器out

GP12

32 kHz

ALT_FN_1_OUT

01

时钟和电源

管理单元

32 kHz out

GP13

MBGNT

ALT_FN_2_OUT

10

内存控制器

内存控制器允许

GP14

MBREQ

ALT_FN_1_IN

01

内存控制器

内存控制器第二总线

住请求

引脚

第二功能名称

第二功能赋值

AF{

n} 编 码

源单元

信号描述和注释

GP15

nCS_1

ALT_FN_2_OUT

10

内存控制器

激活低芯片选择1

GP16

PWM0

ALT_FN_2_OUT

10

系统集成

PWM0 输出

GP17

PWM1

ALT_FN_2_OUT

10

系统集成

PWM1 输出

GP18

RDY

ALT_FN_1_IN

01

内存控制器

外部总线准备

GP19

DREQ[1]

ALT_FN_1_IN

01

内存控制器

外部DMA 请求

GP20

DREQ[0]

ALT_FN_1_IN

01

内存控制器

外部DMA 请求

GP23

SCLK

ALT_FN_2_OUT

10

SSP 串行端口

SSP 时钟

GP24

SFRM

ALT_FN_2_OUT

10

SSP 串行端口

SSP 帧

GP25

TXD

ALT_FN_2_OUT

10

SSP 串行端口

SSP 传送

GP26

RXD

ALT_FN_1_IN

01

SSP 串行端口

SSP 接收

GP27

EXTCLK

ALT_FN_1_IN

01

SSP 串行端口

SSP ext_clk

GP28

BITCLK

ALT_FN_1_IN

01

AC97 控制单元

AC97 bit_clk

GP28

BITCLK

ALT_FN_2_IN

10

I2S 控制器

I2S bit_clk

GP28

BITCLK

ALT_FN_1_OUT

01

I2S 控制器

I2S bit_clk

GP28

BITCLK

ALT_FN_2_OUT

10

AC97 控制单元

AC97 bit_clk

GP29

SDATA_IN0

ALT_FN_1_IN

01

AC97 控制单元

AC97 Sdata_in0

GP29

SDATA_IN

ALT_FN_2_IN

10

I2S 控制器

I2S Sdata_in

GP30

SDATA_OUT

ALT_FN_1_OUT

01

I2S 控制器

I2S Sdata_out

GP30

SDATA_OUT

ALT_FN_2_OUT

10

AC97 控制单元

AC97 Sdata_out

GP31

SYNC

ALT_FN_1_OUT

01

I2S 控制器

I2S 同步

GP31

SYNC

ALT_FN_2_OUT

10

AC97 控制单元

AC97 同步

GP32

SDATA_IN1

ALT_FN_1_IN

01

AC97 控制单元

AC97 Sdata_in1

GP32

SYSCLK

ALT_FN_1_OUT

01

I2S 控制器

I2S 系统时钟

GP33

nCS[5]

ALT_FN_2_OUT

10

内存控制

激活低芯片选择5

GP34

FFRXD

ALT_FN_1_IN

01

UARTs

FFUART 接收

GP34

MMCCS0

ALT_FN_2_OUT

10

多媒体卡(MMC)

控制器

MMC 芯片 0

GP35

CTS

ALT_FN_1_IN

01

UARTs

FFUART 清除发送

GP36

DCD

ALT_FN_1_IN

01

UARTs

FFUART 数据载波检

GP37

DSR

ALT_FN_1_IN

01

UARTs

FFUART 数据设置准

GP38

RI

ALT_FN_1_IN

01

UARTs

FFUART 环指示器

GP39

MMCCS1

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 芯片 1

GP39

FFTXD

ALT_FN_2_OUT

10

UARTs

FFUART 传输数据










GP40

DTR

ALT_FN_2_OUT

10

UARTs

FFUART 数据终端准

GP41

RTS

ALT_FN_2_OUT

10

FFUART 请求发送

引脚

第二功能名称

第二功能赋值

AF{

n} 编 码

源单元

信号描述和注释

GP42

BTRXD

ALT_FN_1_IN

01

UARTs

BTUART 接收数据

GP43

BTTXD

ALT_FN_2_OUT

10

UARTs

BTUART 传送数据

GP44

CTS

ALT_FN_1_IN

01

UARTs

BTUART 清除发送

GP45

RTS

ALT_FN_2_OUT

10

UARTs

BTUART 请求发送

GP46

ICP_RXD

ALT_FN_1_IN

01

红外线通讯端口

ICP 接收数据

GP46

RXD

ALT_FN_2_IN

10

UARTs

STD_UART 接收数

GP47

TXD

ALT_FN_1_OU

01

UARTs

STD_UART 传输数

GP47

ICP_TXD

ALT_FN_2_OUT

10

红外线通讯端口

ICP 接收数据

GP48

nPOE

ALT_FN_2_OUT

10

内存控制器

卡空间的输出使能

GP49

nPWE

ALT_FN_2_OUT

10

内存控制器

卡空间的写使能

GP50

nPIOR

ALT_FN_2_OUT

10

内存控制器

卡空间的I/O 读

GP51

nPIOW

ALT_FN_2_OUT

10

内存控制器

卡空间的I/O 写

GP52

nPCE[1]

ALT_FN_2_OUT

10

内存控制器

卡空间的卡使能

GP53

nPCE[2]

ALT_FN_2_OUT

10

内存控制器

卡空间的卡使能

GP53

MMCCLK

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 时钟

GP54

MMCCLK

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 时钟

GP54

nPSKTSEL

ALT_FN_2_OUT

10

内存控制器

卡空间的Socket 选择

GP55

nPREG

ALT_FN_2_OUT

10

内存控制器

卡地址第16 位

GP56

nPWAIT

ALT_FN_1_IN

01

内存控制器

卡空间的等待信号

GP57

nIOIS16

ALT_FN_1_IN

01

内存控制器

I/O 卡空间总线宽度

选择

GP58

LDD[0]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚0

GP59

LDD[1]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚1

GP60

LDD[2]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚2

GP61

LDD[3]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚3

GP62

LDD[4]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚4

GP63

LDD[5]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚5

GP64

LDD[6]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚6

GP65

LDD[7]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚7

GP66

LDD[8]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚8

GP66

MBREQ

ALT_FN_1_IN

01

内存控制器

内存控制器第二总线

主请求

GP67

LDD[9]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚9

GP67

MMCCS0

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 芯片选择0

引脚

第二功能名称

第二功能赋值

AF{

n} 编 码

源单元

信号描述和注释

GP68

MMCCS1

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC 芯片选择1

GP68

LDD[10]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚10

GP69

MMCCLK

ALT_FN_1_OUT

01

多媒体卡(MMC)

控制器

MMC_CLK

GP69

LDD[11]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚11

GP70

RTCCLK

ALT_FN_1_OUT

01

系统集成状态

实时时钟(1Hz)

GP70

LDD[12]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚12

GP71

3.6 MHz

ALT_FN_1_OUT

01

时钟和电源管理

3.6 MHz 振荡器时钟

GP71

LDD[13]

A LT_FN_2_OUT

10

LCD 控制器

LCD 数据脚13

GP72

32 kHz

ALT_FN_1_OUT

01

时钟和电源管理

32 kHz 时钟

GP72

LDD[14]

ALT_FN_2_OUT

10

LCD 控制器

LCD 数据脚14

GP73

LDD[15]

A LT_FN_2_OUT

10

LCD 控制器

LCD 数据脚15

GP73

MBGNT

ALT_FN_1_OUT

01

内存控制器

内存控制器允许

GP74

LCD_FCLK

ALT_FN_2_OUT

10

LCD 控制器

LCD 帧时钟

GP75

LCD_LCLK

ALT_FN_2_OUT

10

LCD 控制器

LCD 线时钟

GP76

LCD_PCLK

ALT_FN_2_OUT

10

LCD 控制器

LCD 像点时钟

GP77

LCD_ACBIAS

ALT_FN_2_OUT

10

LCD 控制器

LCD AC 偏置

GP78

nCS[2]

ALT_FN_2_OUT

10

内存控制器

激活低芯片选择1

GP79

nCS[3]

ALT_FN_2_OUT

10

内存控制器

激活低芯片选择2

GP80

nCS[4]

ALT_FN_2_OU T

10

内存控制器

激活低芯片选择3

注意:PXA210 不支持有阴影的部分
† 为允许GP7 上有48 MHz 时钟输出,CKEN[11] - USB 单元的时钟允许位必须设置允许。
三、GPIO 寄存器

GPIO 模块一共有27 个32 位寄存器,它们完成9 种功能,每个有三个寄存器以设置 81 个GPIO 脚,见表5-6(所有寄存器的高4 位HeX 地址均为0x40E0,表中仅列出低4 位HeX 地址)。

表 5-6 GPIO 寄存器

寄存器

类型

寄存器功能

GPIO

[15:0]

GPIO

[31:16]

GPIO

[47:32]

GPIO

[63:48]

GPIO

[79:64]

GPIO

[80]

GPLR

监控引脚的状态

GPLR0

GPLR1

GPLR2

GPSR

控制输出引脚的

状态

GPSR0

GPSR1

GPSR2

GPCR

控制输出引脚的

状态

GPCR0

GPCR1

GPCR2

GPDR

定义引脚的方向

GPDR0

GPDR1

GPDR2

GRER

检测上升/下降沿

GRER0

GRER1

GRER2

GFER

检测上升/下降沿

GFER0

GFER1

GFER2

GEDR

检测跳变类型

GEDR0

GEDR1

GEDR2

GAFR

设置第二功能

GAFR0_L

GAFR0_U

GAFR1_L

GAFR1_U

GAFR2_L

GAFR2_U

注意:对于第二功能寄存器,X_L 表示X 寄存器配置低16 GPIOs 的第二功能,X_U 指
明X 配置高16 GPIOs 的第二功能。
注意:GPLR2[31:17], GPSR2[31:17], GPCR2[31:17], GPDR2[31:17], GRER2[31:17], GFER2[31:17], GEDR2[31:17] 和 GAFR2_U[31:2] 是保留位。写0 到这些位,而且在读的时 候忽略这些位。
注意:在复位时,所有的GPIO 寄存器被初始化为0x0,这导致所有的GPIO 引脚被初 始化为输入。

1、GPIO 引脚电平寄存器(GPLR)

读出 GPLR 可得至 GPIO 引脚的状态。GPLR0 的位 31~0 对应于 GPIO31~0,GPLR1 的 位31~0 对应于GPIO63~32,GPLR2 的位16~0 对应于GPIO80~64,GPLR2 的位31~17 为保 留位(下同)。

2、GPIO 引脚方向寄存器(GPDR)

置GPDR 的位为1,可置对应GPIO 脚为输出,复位时为0,置为输入。

3、GPIO 引脚输出置位寄存器(GPSR)和引脚清零寄存器(GPCR)

当某个GPIO 脚设置为输出时,可向对应的GPSR 位写入1 来输出1,也可向对应的GPCR
写入1 来输出0。GPSR、GPCR 只可写入。

4、GPIO 上升沿检测允许寄存器(GRER)和下降沿检测允许寄存器(GFER)。

置位GRER/GFER 的对应位,可编程每根GPIO 检测上升沿、下降沿或任何跳变。在发 生指定跳变时,置位状态位,它可控制产生中断。

5、GPIO 跳变检测状态寄存器(GEDR)

GEDR 存放与GPIO 脚有关的跳变状态位(1 有效)。

6、GPIO 第二功能寄存器(GAFR)

一共有六个GAFR,分别为GAER0_L、GAFR0_U、GAFR1_L、GAFR1_U、GAFR2_L、 GAFR2_U。GAFR 的的相邻两位对应于一根 GPIO 脚,即 GAFR0_L 的 1、0 位为 AF0,对 应于 GPIO0;位 3、2 为 AF1,对应于 GPIO1;……;GAFR0_U 的位 1、0 为 AF16,对应 于 GPIO16;…。两位 AFx 可设置四种方式:普通 GPIO 和三种第二功能。另外 GPIO 方向 寄存器GPDR 可设置数据方向为输入或输出,这样最多可有六种第二功能。AFx 设置如下:

00:普通GPIO。

01:第二输入功能1(ALT_FN_1_IN)或第二输出功能1(ALT_FN_1_OUT)。

10:第二输入功能2(ALT_FN_2_IN)或第二输出功能2(ALT_FN_2_OUT)。

11:第二输入功能3(ALT_FN_3_IN)或第二输出功能3(ALT_FN_3_OUT)。