AN070242
CAT9555 I/O 口扩展芯片 Demo 应用范例
Rev 1.0
Date: 2010/04/08
产品应用手册
类别
关键词
文件信息
内容
CAT9555,I/O 口扩展,I2C 总线
摘要
本文主要介绍 CAT9555 在 I/O 口扩展中的使用。
APPLICATION
NOTE
http://www.zlgmcu.com
广州周立功单片机发展有限公司
广州周立功单片机发展有限公司 AN070242
技术支持
如果您对文档有所疑问,您可以在办公时间(星期一至星期五上午 8:30~11:50;下午
1:30~5:30;星期六上午 8:30~11:50)拨打技术支持电话或 E-mail 联系。
网 址: www.zlgmcu.com
联系电话: +86 (020) 22644358 22644359 22644360 22644361
E-mail:
80c51mcu@zlgmcu.com
销售与服务网络
广州周立功单片机发展有限公司
地址:广州市天河北路 689 号光大银行大厦 12 楼 F4 邮编:510630
电话:(020)38730972 38730976 38730916 38730917 38730977
传真:(020)38730925
网址:http://www.zlgmcu.com
广州专卖店
地址:广州市天河区新赛格电子城 203-204 室
电话:(020)87578634 87569917 87578842
传真:(020)87578842
北京周立功
地址:北京市海淀区知春路 113 号银网中心 A 座
1207-1208 室(中发电子市场斜对面)
电话:(010)62536178 62536179 82628073
传真:(010)82614433
杭州周立功
地址:杭州市天目山路 217 号杭州电子科技大楼 502
室
电话:(0571) 28139611 28139612 28139613
传真:(0571) 28139621
深圳周立功
地址:深圳市深南中路 2070 号电子科技大厦 C 座 4
楼 D 室
电话:(0755)83781788(5 线)
传真:(0755)83793285
上海周立功
地址:上海市北京东路 668 号科技京城东座 7E 室
电话:(021)53083452 53083453 53083496
传真:(021)53083491
南京周立功
地址:南京市珠江路 280 号珠江大厦 2006 室
电话:(025)83613221 83613271 83603500
传真:(025)83613271
重庆周立功
地址:重庆市石桥铺科园一路二号大西洋国际大厦
(赛格电子市场)1611 室
电话:(023)68796438 68796439
传真:(023)68796439
成都周立功
地址:成都市一环路南二段 1 号数码同人港 401 室(磨
子桥立交西北角)
电话:(028) 85439836 85437446
传真:(028)85437896
武汉周立功
地址:武汉市洪山区广埠屯珞瑜路 158 号 12128 室(华
中电脑数码市场)
电话:(027)87168497 87168297 87168397
传真:(027)87163755
西安办事处
地址:西安市长安北路 54 号太平洋大厦 1201 室
电话:(029)87881296 83063000 85399492
传真:(029)87880865
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
ii
广州周立功单片机发展有限公司 AN070242
目 录
1.1
第 1 章 CAT9555 I/O口扩展芯片Demo 应用范例....................................................1
CAT9555 芯片简介 ......................................................................................................1
1.1.1 芯片概述...........................................................................................................1
1.1.2 功能特点...........................................................................................................1
1.1.3 管脚介绍...........................................................................................................1
1.1.4 应用场合...........................................................................................................2
1.2 相关寄存器介绍及操作...............................................................................................2
1.2.1 相关寄存器介绍...............................................................................................3
1.2.2 相关寄存器操作...............................................................................................4
CAT9555 I/O扩展芯片DEMO .....................................................................................6
CAT9555 I/O扩展芯片应用.........................................................................................7
1.4.1 系统概述...........................................................................................................7
1.4.2 系统软件设计...................................................................................................8
1.5 小结.............................................................................................................................14
A.1 版本信息.....................................................................................................................15
A.2 版权声明.....................................................................................................................15
1.3
1.4
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
iii
广州周立功单片机发展有限公司 AN070242
第1章 CAT9555 I/O口扩展芯片Demo 应用范例
1.1 CAT9555 芯片简介
1.1.1 芯片概述
CAT9555 是 24 脚的 CMOS 器件,它提供了 I2C/SMBus 应用中的 16 位通用并行输入/
输出口 GPIO 的扩展。当应用中需要额外的 I/O 口来连接 ACPI 电源开关、传感器、按钮、
LED、风扇等设备时可使用 I/O 扩展器件 CAT9555 实现简单的解决方案。I/O 扩展器件
CAT9555 被广泛地应用于白色电器、手持设备、数据通信等领域。
1.1.2 功能特点
高驱动能力;
极性反转寄存器;
低电平有效中断输出;
I/O 口可承受5V 电压;
工作电源电压2.3V~5.5V;
内部上电复位;
低待机电流;
SCL/SDA 输入的噪声滤波器;
上电时无干扰脉冲信号;
16个I/O口,默认为16个高电平输入口;
0~400kHz 的I2C时钟频率;
符合工业温度范围;
可级联8个器件;
独立的输入输出配置寄存器;
提供 3 种封装 SOIC24、TSSOP24 和 TQFN24。
1.1.3 管脚介绍
SOIC (W), TSSOP (Y)
INT
A1
A2
I/O0.0
I/O0.1
I/O0.2
I/O0.3
I/O0.4
I/O0.5
I/O0.6
I/O0.7
Vss
1
2
3
4
5
6
7
8
9
01
11
21
42
32
22
12
02
91
81
71
61
51
41
31
VCC
SDA
SCL
A0
I/O1.7
I/O1.6
I/O1.5
I/O1.4
I/O1.3
I/O1.2
I/O1.1
I/O1.0
I/O0.0
I/O0.1
I/O0.2
I/O0.3
I/O0.4
I/O0.5
1
2
3
4
5
6
TQFN 4 x 4mm (HV6)
(Top View)
2
A
24
1
A
23
T
N
I
22
C
C
V
21
A
D
S
20
L
C
S
19
7
8
9
10
11
12
18
A0
17
16
15
14
I/O1.7
I/O1.6
I/O1.5
I/O1.4
13
I/O1.3
.
6
0
O
/
I
.
7
0
O
/
I
s
s
V
.
0
1
O
/
I
.
1
1
O
/
I
.
2
1
O
/
I
图 1.1 管脚配置
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
1
广州周立功单片机发展有限公司 AN070242
CAT9555 的管脚描述见表 1.1。
表 1.1 CAT9555 的管脚描述
SOIC/TSSOP
TQFN
1
2
3
4-11
12
13-20
21
22
23
24
方框图
符号
/INT
A1
A2
描述
中断输出(开漏)
地址输入 1
地址输入 2
I/O0.0-I/O0.7
VSS
输入、输出端口 0.0—0.7
地
22
23
24
1-8
9
10-17
I/O1.1-I/O1.7
输入、输出端口 1.0—1.7
18
19
20
21
A0
SCL
SDA
VCC
地址输入 0
串行时钟
串行数据
电源
1.1.4 应用场合
图 1.2 方框图
1.2 相关寄存器介绍及操作
CAT9555 包含两个 8 位配置寄存器(输入或输出选择)、8 位输入寄存器、8 位输出寄
存器和极性反转(高电平或低电平操作有效)寄存器,系统主控器通过写 I/O 口相应的配
置位来激活端口的输入或输出。每个输入或输出口的数据都保存在相应的输入/输出寄存器
中。读寄存器操作的极性根据极性反转寄存器内容而反转,系统主控器可以读取所有寄存器
的内容。
当任何输入口状态与相应输入口寄存器的值不同时,CAT9555 的开漏中断输出就被激
活。该中断可用来向系统主控器指明输入端口状态的改变,上电复位将所有寄存器设置成默
Rev. 1.0
CAT9555 I/O 口扩展芯片 Demo 应用范例
Guangzhou ZLGMCU Development Co., Ltd.
Date: 2010/04/08
2
广州周立功单片机发展有限公司 AN070242
认值并使器件状态机初始化。
1.2.1 相关寄存器介绍
1. 命令字节
命令字节是在写数据发送过程中紧跟地址字节之后的第一个字节,它作为一个指针指向
要进行写或读操作的寄存器。详细命令字节如表 1.2所示。
表 1.2 CAT9555 的命令字节描述
命令
0
1
2
3
4
5
6
7
寄存器
输入端口 0
输入端口 1
输出端口 0
输出端口 1
极性反转端口 0
极性反转端口 1
配置端口 0
配置端口 1
2. 寄存器 0 和 1—输入端口寄存器
输入端口寄存器是一个只读端口。无论寄存器 6 和 7 将端口定义成输入或输出,它都只
反映管脚的输入逻辑电平。对此寄存器的写操作无效。
位
默认
位
默认
I0.7 I
X
I1.7 I
X
0.6 I
X
1.6 I
X
表 1.3 输入端口寄存器
0.5 I
X
1.5 I
X
0.4 I
X
1.4 I
X
0.3 I
X
1.3 I
X
0.2 I
X
1.2 I
X
0.1 I
X
1.1 I
X
0.0
X
1.0
X
3. 寄存器 2 和 3—输出端口寄存器
输出端口寄存器是一个只可输出口。它反映了由寄存器 2、3 定义的管脚的输出逻辑电
平。当管脚定义为输入时,该寄存器中的位值无效。从该寄存器读出的值表示的是触发器控
制的输出选择,而非真正的管脚电平。
表 1.4 输出端口寄存器
位
默认
位
默认
O0.7 O
1
O1.7 O
1
0.6 O
1
1.6 O
1
0.5 O
1
1.5 O
1
0.4 O
1
1.4 O
1
0.3 O
1
1.3 O
1
0.2 O
1
1.2 O
1
0.1 O
1
1.1 O
1
0.0
1
1.0
1
4. 寄存器 4 和 5—极性反转寄存器
用户可利用极性反转寄存器对输入端口寄存器的内容取反。若该寄存器某一位被置位
(写入 1)相应输入端口数据的极性取反,若寄存器的某一位被清零(写入 0)则相应输入
端口数据保持不变。
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
3
广州周立功单片机发展有限公司 AN070242
位
默认
位
默认
表 1.5 极性反转寄存器
N0.7 N
0
N1.7 N
0
0.6 N
0
1.6 N
0
0.5 N
0
1.5 N
0
0.4 N
0
1.4 N
0
0.3 N
0
1.3 N
0
0.2 N
0
1.2 N
0
0.1 N
0
1.1 N
0
0.0
0
1.0
0
5. 寄存器 6 和 7—配置寄存器
配置寄存器用于设置 I/O 管脚的方向。若该寄存器中某一位被置位(写入 1),则相应
的端口配置成带高阻输出驱动器的输入口;若寄存器的某一位被清零(写入 0)则相应的端
口配置成输出口。复位时,I/O 口配置为带弱上拉的输入口。
表 1.6 配置寄存器
位
默认
位
默认
C0.7 C
1
C1.7 C
1
0.6 C
1
1.6 C
1
0.5 C
1
1.5 C
1
0.4 C
1
1.4 C
1
0.3 C
1
1.3 C
1
0.2 C
1
1.2 C
1
0.1 C
1
1.1 C
1
0.0
1
1.0
1
1.2.2 相关寄存器操作
1. 器件地址
CAT9555 有 3 个硬件管脚 A0 A1 A2 ,可通过 A0 A1 A2 来实现不同的固定 I2C 地址,
CAT9555 最多允许 8 个器件共用一个 I2C /SMBus 总线上。
图 1.3 CAT9555 器件地址
2. 总线地址—写操作
对CAT9555 的写操作需要两个步骤:第一.写配置寄存器,将扩展的I/O配置为输出口;
第二.写输出端口寄存器。I2C总线上数据的传输是通过图 1.5和图 1.4所示的写模式发送到
CAT9555。程序清单 1.1为CAT9555 写操作例程。
写配置寄存器的操作步骤如下:
启动 I2C 总线(图中符号为 S);
发送器件地址(最后一位为写操作);
等待从机应答信号;
发送命令字节;
等待从机应答信号;
发送配置端口 0 寄存器值;
等待从机应答信号;
发送配置端口 1 寄存器值;
等待应答信号,结束总线(图中符号为 P)。
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
4
广州周立功单片机发展有限公司
AN070242
图 1.4 写配置寄存器
写出来端口寄存器的操作步骤如下:
启动 I2C 总线(图中符号为 S);
发送器件地址(最后一位为写操作);
等待从机应答信号;
发送命令字节;
等待从机应答信号;
发送输出端口 0 寄存器值;
等待从机应答信号;
发送输出端口 1 寄存器值;
等待应答信号,结束总线(图中符号为 P)。
图 1.5 写输出端口寄存器
程序清单 1.1 CAT9555 写操作例程
程序清单 1.1为使用周立功公司 I2C 软件包实现的对CAT9555 写操作例程
unsigned char temp[]={0x00,0x00,0x55,0x55};
ISendStr(0x40,0x06,temp,2);
//对输出端口寄存器进行写操作,设置 P0、P1 输出的数据
ISendStr(0x40,0x02,temp+2,2);
//寄存器值
//对配置寄存器进行写操作,P0、P1 口为输出口
3. 总线地址—读操作
对CAT9555 的操作需要两个步骤:第一.写配置寄存器,将扩展的I/O配置为输入口;第
二.读输出端口寄存器。CAT9555 寄存器读取数据是通过图 1.6和图 1.7所示的读模式来实
现。由于CAT9555 不带自动增加功能,因此发送一个命令字节后被寻址的寄存器将一直被读
操作访问,直到发送新的命令字节为止。程序清单 1.2为CAT9555 读操作例程
读模式操作如下:
启动 I2C 总线;
发送器件地址(最后一位为写操作);
CAT9555 I/O 口扩展芯片 Demo 应用范例
Date: 2010/04/08
Rev. 1.0
Guangzhou ZLGMCU Development Co., Ltd.
5