沁恒 CH559 GPIO 功能详解

CH559 GPIO 的使用

GPIO,中文名为 通用输入输出,是一种比较新的接口,用于取代传统的 PIO。CH559 的 GPIO 包含多种模式和功能,较为复杂。掌握 GPIO 是实现单片机应用的第一步,否则之后的操作将寸步难行。

单片的 IO 口驱动条件大概分为以下几种:
1. 使用单片机输出信号,输出设备是 LED、NPN、继电器等简单外设,而且需要一定的驱动电流的(大约几个mA)。
2. 使用单片机接收信号,输入信号为 按键开关、光电传感器 等简单外设,通常输出一定电流的(大约几个 mA)。
3. 使用单片机完成控制信号,接受设备有多个,或者发送设备有多个。比如 IIC 总线上挂两个设备,这些设备的任何一个都需要发送和接受数据的。
4. 使用单片机完成一对一的信号交换,比如 DS1302、DS18B20 的芯片的控制等,这些芯片一般输入阻抗较高,主要是电压驱动,而不需要太大电流(小于 1mA)。

CH559 的 GPIO 满足以上所有要求,可以使用 推挽输出输入较大的电流,可以开启上拉电阻,可以设置为输入或者输出模式,等等等等。

GPIO 的电路图如下:(GPIO 图片来自 CH559 芯片手册)

GPIO原理图

由于功能多,GPIO 的引脚图比较复杂,图可以分为以下几个部分:

在 GPIO 中,最多余也是最简单是上拉电阻的配置。其实上拉电阻设置这个功能与单片机软件功能无关,可配置的上拉电阻主要是方便 PCB 设计用的。使用上拉电阻,可以把悬空的引脚固定在高电平,而且在设计外围电路时可以不加上拉电阻,简化电路图,上拉电阻部分详解:

GPIO上拉电阻

上拉电阻使用一个 PU 寄存器来控制,原理也非常简单,在之后的图解中略去不提。

接下是模拟输入和数字输入的区别,CH559 的 GPIO 可以用来做模数转化。模拟输入部分见下图:

模数转换

模拟输入也非常的简单,而数字输入和输出就比较复杂了,首先数字输入输出分为推挽模式和开漏模式,首先看 开漏的输入和输出。

开漏模式下,上管 PMOS 是一直关闭着的,输出通过一个开路的 NMOS 来输出,类似三极管的集电极开路模式(OC,开漏模式)。
虽然芯片使用 MOS 管,但开漏的名称还是保留了下来,开漏模式主要用在多个芯片之间的通讯,比如 1 对 2 的通信、总线通信等等,开楼模式下需要接一个上拉电阻用于钳位,每个接入开漏信号的芯片均可以输出低电平从而使整个信号线呈现低电平。开漏的输出如下:

开漏输出

尽管方向寄存器 DIR = 1,使用数字输出,但是这个开漏模式也支持输入信号的,让方向寄存器 DIR = 0,使用输入模式看看。
开漏模式下的输入:

开漏输入

可见,开漏模式下的输出模式支持信号的输入,但开漏模式下的输入模式可不会输出任何信息。

推挽模式,推挽模式的逻辑结构相当复杂,首先是推挽模式下的输出模式,见下图:

推挽模式

推挽模式只能够输出,而且输入输出可以承载较大的电流,但推挽模式不能够接收数据,最后还有高阻模式:

高阻模式

高阻模式下只能接收信号,不能发送数据,而且需要提前把接收数据的引脚输出 1。

w(゚Д゚)w,好多模式啊,终于全部搞清楚了。GPIO 的部分到此结束。(⊙﹏⊙)

posted @ 2020-10-21 20:36  夏日时光  阅读(1241)  评论(0编辑  收藏  举报