前言
上一篇文章说要写一篇关于Output Push Pull(推挽输出)和Output Open Drain(开漏输出)的文章,所以就写一篇,顺便把8种IO模式都写了。
4种输入模式 | 4种输出模式 |
---|---|
浮空输入 | 推挽输出 |
上拉输入 | 复用式推挽输出 |
下拉输入 | 开漏输出 |
模拟输入 | 复用式开漏输出 |
概述
stm32的IO口如上图所示,仔细看可以把该图分为两部分,上半部分为输入,下半部分为输出,由虚线框分隔。
输入驱动器
施密特触发器
输入驱动器,如下图所示:
其中有一个肖特基触发器,肖特基触发器又叫施密特触发器,作用是波形整型,当输入达到某个设计的阈值电压电平时,输出在两个稳态电压电平(高和低)之间摆动。我们直接看图:
如上图,这是理想情况,上方正弦波是输入,下方方波是输出。当输入的电压上升至VTH时,输出由低电平变为高电平,当输入的电压下降至VTL时,输出由高电平变为低电平,这样就把输入的正弦波变成了方波。施密特触发电路有两个临界电压且形成一个滞后区,可以防止在滞后范围内之噪声干扰电路的正常工作。
施密特触发器特点:
**两个稳定状态:**施密特触发器有两个稳定状态,其维持和转换完全取决于输入电压的大小。
**双阈值电压:**施密特触发器具有两个不同的阈值电压,分别称为正向阈值电压和负向阈值电压。当输入电压高于正向阈值电压时,输出为高;当输入电压低于负向阈值电压时,输出为低。
**滞回特性:**在输入信号在正负向阈值电压之间时,输出不改变,即输出由高电准位翻转为低电准位,或是由低电准位翻转为高电准位时所对应的阈值电压是不同的。这种双阈值动作被称为迟滞现象,表明施密特触发器有记忆性。
**抗干扰能力强:**施密特触发器对高噪声环境下的输入信号具有良好的鲁棒性,可以有效地抑制输入信号中的噪声。
施密特触发器应用:
**波形整形:**施密特触发器可以将模拟信号波形整形为数字电路能够处理的方波波形。
**抗干扰:**由于施密特触发器具有滞回特性,它可用于在开回路配置中用于抗扰,以及在闭回路正回授/负回授配置中用于实现多谐振荡器。
**数字电路中的干扰抑制:**施密特触发器可以有效地抑制数字电路中的干扰信号,确保电路的稳定运行。
**信号恢复:**施密特触发器还可以作为信号恢复电路,通过消除噪声内容,推断出原始输入信号量。
4种输入模式
浮空输入
其路线如上图红线所示,VDD和VSS所在路径的两个开关同时断开。此时没有上拉和下拉的情况,所以当IO口没有接输入的时候,此时的电平会是一个不确定的值,也就是我们所说的浮空。电平会处于一个跳变的状态,一会高,一会低。只有输入了一个高/低电平才会确定下来。
上拉输入
其路线与上图相同,不同点是VDD所在路径开关闭合,如下图所示:
在没有信号输入的时候,此时的电平就是VDD的电平,此时读取到的电平就是高电平。
如果输入了一个高电平,读取到的电平就是高电平。但是由于在没有电压输入的时候,电平也是高电平,所以这一种输入情况下是没有办法确定信号是否输入了。
当输入信号是一个低电平的时候,此时单片机读取到的一个电平就是一个低电平。在上拉输入的情况下,低电平的是能够非常明显的读取到的。
下拉输入
其路线与上图相同,不同点是VSS所在路径开关闭合,如下图所示:
与上拉输入相反,在没有信号输入的时候,此时的电平就是VSS的电平,此时读取到的电平就是低电平。
如果输入了一个低电平,读取到的电平就是低电平。但是由于在没有电压输入的时候,电平也是低电平,所以这一种输入情况下是没有办法确定信号是否输入了。
当输入信号是一个高电平的时候,此时单片机读取到的一个电平就是一个高电平。在下拉输入的情况下,高电平的是能够非常明显的读取到的。
模拟输入
其路线如上图红线所示,VDD和VSS所在路径的两个开关同时断开。输入不会经过图中的TTL肖特基触发器(施密特触发器),这样我们就能采集到真实电压,也就是模拟输入。
4种输出模式
开漏输出
开漏输出和推挽输出的区别在使用的MOS管上。
开漏输出仅使用一个N-MOS管。
这涉及到模电知识,对于这个N-MOS管,当我们给一个低电平的时候,MOS管关闭,此时输出的电压就是一个浮空,即不确定的电压。如果给一个高电平,那么MOS管导通,相当于IO口与VSS相连,此处就输出了一个低电平电压。也就是说开漏输出在不外接上拉电阻的情况下无法输出高电平。但开漏输出可以实现线与而且可以自定义高电平的电压。
推挽输出
推挽输出使用两个MOS管。
当给一个高电平的时候,N-MOS导通,P-MOS不导通,此时IO口接通在VSS上,此时输出的是低电平。当给一个低电平的时候, N-MOS不导通,P-MOS导通,此时IO口接通在VDD上,此时输出的是高电平。
带载能力强。
复用式开漏输出
复用推挽和复用开漏其实很简单,在你理解了开漏和推挽的原理之后,如果你不想用单片机内部来输出,那么你可以进行复用,将输出转移到其他外设上面。
复用式推挽输出
带载能力强。
复用式开漏输出
复用推挽和复用开漏其实很简单,在你理解了开漏和推挽的原理之后,如果你不想用单片机内部来输出,那么你可以进行复用,将输出转移到其他外设上面。
复用式推挽输出
同上。