STM32 快速了解 推挽输出&开漏输出

5伏兼容I/O端口位的基本结构

这里仅看输出模式,也就是下方,其实推挽和开漏的区别在于P-MOS管开启的区别

推挽 PP

推挽,字面意思:前牵后推、一推一拉

此时,P-MOS和N-MOS都是开启的,

ODR = 1

当ODR(Output data register)是高电平,则P-MOS,在I/O输出为高电平导通,N-MOS管截止,那么输出就是 VDD 高电平(3.3v)

ODR = 0

同理,当ODR(Output data register)是低电平,则P-MOS,截止,N-MOS管导通,那么输出就是 VSS 低电平(0v)

在切换的过程中,一个负责灌电流,一个拉电流,"一推一拉",负载开关速度比普通方式要"快"。

  • 输入电平 0~3.3V
  • 高速切换开关状态。

开漏 OD

  • 上方 P-MOS管不工作,就是没有灌电流的存在 ; 只能控制低电平输出

当 I/O高电平时,两个 MOS 管都不工作 会呈现 高阻态(也就是电平依靠外电路来实现),此时需要加入上拉电阻(最好是外部接上拉电阻)

那为什么要这样呢?

当你需要的输出电压大于内置的(3.3V),你就需要外加上拉电阻,实现高电压输出。

例如:I2C、SMBUS通信的“线与”中, 输出电位要高于 3.3V(外加上拉电阻) ->高阻态,就需要输出更高电平。

端口位配置表

具体参考:STM32库开发实战指南:基于F4(6.2章节)
P.S. 微信读书中有

你可能感兴趣的:(STM32 快速了解 推挽输出&开漏输出)