1.主要特点
● 扩展I/O口数量众多,可提供32位数据输入口和40位数据输出口。
●可同时提供8个开漏输出口,并能方便地进行电平转换和驱动。
● 带有可达1MHz的全速率同步串行接口,能非常方便地与通用MCU接口。
●可多个芯片级联,以扩展I/O口的数量。
●工作电压为2.7~5.6V。
●静态电流典型值为3/zA(3.3V时)。
● 动态电流在时钟频率为1MHz时的典型值为l3/-A(3。3V时)。
● 具有PLCC-84和QFP-80两种封装形式。
引脚名 引脚中文
I0~I31 异步并行数据输入端(带施密特触发器)
O0~O39 并行数据输出端(O0~O7为OC门输出,耐压值15V)相当于5个8位并行口中。
O0~O37 功能同上,适用于QFP一80封装
DIN 同步串行数据输入端
DOUTA l6位同步串行数据输出端
3.主要参数
(1)GM8164极限参数
● 电源电压Vcc:一0.5~7V。
● 输入电压V1: 0.5~Vcc+0.5v。
● 输出电压V0:一0.5~vcc+0.5v。
● 直流漏极电流(每个输出)Io:±25mA。
● 直流电流(Vcc)或地(GND)端电流Icc:±50mA。
●工作温度TA:一25~+85℃。
(2)推荐的工作条件
● 电源电压Vcc:2.0~6.0V。
●输入电压Vl:O~Vcc。
●输出电压V0:O~Vcc。
●工作温度TA:一25~+85℃。
●输入脉冲上升、下降时间tr、tf:0~500ns。
●时钟频率f:1MHz,在Vcc=5V时可提高到2MHz。
4.工作原理
GM8164是一个CMOS器件,图8—12—2所示是其内部结构。该器件内部包括5组8位串入/并出和并入/串出的寄存器,其功能如下:将串行数据转换为并行数据时,可选择5个并行口中的任意一个口输出;将并口数据输入转换为串Vl输出;将串口数据输入转换为并口输出;可存储并行数据;可多芯片级联,并可任意扩充I/O口;在时钟上升沿有效。
GM8164的功能设置如表8—12—2所列,其具体工作方式有:串行输入、并行输出工作方式,并行输入、串行输出工作方式及级联工作方式。
5.应用电路
GM8164适合与非总线单片机扩展I/O接口使用,AT89C2051与GM8164的硬件连接电路如图8—12—3所示。
GM8164适合与单片机的UART相连,也可用I/O口线来模拟UART。为了提高数据传送速度,本设计使用了单片机的异步串行口,并使之工作于方式0(即移位寄存器方式),此时波特率为fosc/12,如采用12MHz晶振,则GM8164的flk=1MHz,完全可满足GM8164对时钟频率的要求。为了不影响单片机的串口通信功能,电路中使用了一片74HC4052双4选一模拟开关来实现串行通信、输出口控制和并口数据输入的功能切换,并使用AT89C2051的Pl.0、Pl.1口实现A、B通道的选择。当P1.1P1.0=00时选择串行输入/并行输出;Pl.1P1.0=01时选择并行输入/串行输出;Pl.1P1.0=10时为串口通信功能;Pl.1P1.0=11时禁止所有功能,同时使用单片机的Pl.2~Pl.4日来分别作为I/O控制、锁存控制和高阻输出控制口。
在使用GM8164时应注意以下几点:
①并行输出口受输出允许控制端OC和输出锁存控制端LE的控制,当OC=1时,输出O0~O39为高阻态禁止并行数据输出,但此时器件的串行输入、并行置数及串行输出功能不受影响。当0C=0时,若LE=1,则在O0~O39输出数据;而LE=0时,则将O0~O39的数据锁存。
②当进行输出口控制时,无论改变多少个输出口的状态(即使是一位),也必须把所有的输出口状态按照一定的顺序重新输出一次,且当所有输出口都应置成所需的状态后,方能置锁存端为“l”,然后再置“0”锁存。
③由于O0~07为OC门输出结构,可驱动电压较高的非TTL型负载(电压不得超过l5V),因此当00~O7用于普通输出口时,应外接上拉电阻。
④读入输入口状态时,不能打开锁存端,需要读入的次数由输入端所处的位置决定,而不一定要把所有的输入口状态都读入到CPU。
⑤当用户系统输入口数量在16个以下而又使用DOUTB及DOUTC做输出口时,会出现2个(DOUTB端)或3个字节(DOUTC端)的无效数据;当用户的输入端口数目在32个以下时,DOUTC端会产生一个字节的无效数据,而且在多片级联时也会产生无效数据,因此在软件编程时应将无效数据舍弃。