GPIO简单来说,功能可以根据自己的需要配置为输入或输出。(General Purpose Input Output,简称为GPIO或者使用工业标准的总线扩展器I2C、SMBus?或SPI?接口简化了I/O口的扩展。当微控制器或芯片组不够时I/O或当系统需要远端串行通信或控制时,GPIO产品可提供额外的控制和监控功能。)但是在配置GPIO管脚时,常见两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。对于这两种模式,有什么区别和联系整理了一些资料详细说明:
原理:
输出装置是指输出脚内部一对互补的集成MOSFET,当Q1导通、Q2.截止时输出高电平;Q1截止导通、Q导通时输出低电平。Push-Pull实际上,两个晶体管用于内部输出(transistor),此处分别称为Top-Transistor和Bottom-Transistor。Push-pull也就是能漏电流(sink current),还可以集电流(source current)。也许有,也许没有另一种状态:高阻抗(high impedance)状态。除非Push-pull需要支持额外的高阻抗,否则不需要额外的上拉电阻。
特点:在CMOS电路应该叫CMOS因为在,输出更合适CMOS里面的push-pull输出能力不可能做得这么大。输出能力IC内输出极N管P管的面积。push-pull是现在CMOS电路里面用得最多的输出级设计方式。
优点:(1)能吸收电流或贯穿电流;(2)与泄漏输出相比,push-pull高低电平由IC低电源,不能简单地做逻辑操作等。
缺点:一条总线只能有一条push-pull输出设备;
原理:
开漏电路是指以上MOSFET泄漏极其输出的电路。指内部输出与地面之间的N沟MOSFET(Q1),。输出电压由Vcc决定。Vcc可大于输入高电平电压VCC (call UP-Translate)也可以低于输入高电平电压VCC(call Down-Translate)Open-Drain输出,是比较push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭时,输出为高电平。这里不能输出高电平。如果你想输出高电平,你必须在外面连接另一个上拉电阻(pull-up resistor)。Open-drain只能漏电流(sink current),若要集电流(source current),需要增加上拉电阻。
优点:(1)对各电压节点之间的电平转换非常有用,可用于各电压节点Up-translate和Down-translate转换(2)可以输出多个泄漏Pin脚,连接到一条线上,形成与逻辑的关系,即线与的功能。任何一个变低后,开线上的逻辑都是0。I2C,SMBus等待总线判断总线占用状态的原理。(3)利用 外部电路的驱动能力降低IC内部驱动IC内部MOSFET导通时,驱动电流来自外部VCC流经R pull-up ,MOSFET到GND。IC内部只需要一个小的栅极驱动电流。(4)改变上拉电源的电压,改变传输电平,如图所示, IC由电源提供的逻辑电平Vcc输出高电平由1决定Vcc2决定。这样,我们就可以用低电平逻辑控制输出高电平逻辑。
OD输出电平的原理
缺点:开漏Pin不连接外部上拉电阻,只能输出低电平。当输出电平较低时,N沟通三极管是导通的,所以在Vcc'和GND上拉电阻R和三极管之间有连续电流Q1。这将影响整个系统的功耗。上拉电阻电阻可以降低电流。然而,大阻值会减缓输出信号的上升时间。即上拉电阻R pull-up的阻值 它决定了逻辑电平转换沿的速度。电阻越大,功耗越低。反之亦然。