各种IO输出的类型,开漏输出

stm32为什么设计开漏输出?有什么优点?

各种IO输出的类型,开漏输出

文章插图
STM32的GPIO口总共有八种配置模式,其中有一种是开漏极输出,所谓开漏输出就是MOSFET的漏极输出(OD),只是一个电平信号,而没有驱动能力,跟三极管的开集电极(OC)输出一样 。STM32设计开漏极输出的原因STM32单片机GPIO内部结构图如下图所示 。其输出是MOSFET控制,并且带有可配置的上拉电阻和下拉电阻 。
【各种IO输出的类型,开漏输出】设计成开漏极输出后,我认为有两个原因:1.用户可以根据自己的需要设置上拉电阻,增强驱动能力 。STM32单片机虽然可以配置内部的上拉电阻,但是这个内部上拉我们一般称之为“若上拉”,即上拉电阻的阻值非常大,可能不满足用户的需求 。而设置成为开漏极输出后用户就可以根据自己电路的需求设置不同阻值的上拉电阻 。2.可以实现多个器件的线与逻辑 。
有时需要将两个/多个门(场效应管或者是三极管)的输出端并联以实现“与”逻辑的功能称为“线与”逻辑 。这个时候就需要这几个输出都是开漏OD或者开集OC 。线与逻辑的示意图如下图所示 。上图中只要任意一个MOS输出0则,输出结构就为0 。如果要输出为1的话,则需要两个MOS的输出都为1 。这就是线与的硬件逻辑关系 。
这个在IIC电路里非常常见 。STM32引脚的八种配置模式STM32单片机的引脚总共有八种配置模式,输出四种,输入四种,如下表所示 。输出模式:推挽输出、开漏输出、复用推挽输出、复用开漏输出;输入模式:模拟输入、浮空输入、下拉输入、上拉输入;以上就是这个问题的回答,感谢留言、评论、转发 。更多精彩内容请关注本头条号:玩转嵌入式 。
同一组GPIO可以部分设置成开漏输出部分设置成推挽输出吗?
各种IO输出的类型,开漏输出

文章插图
单片机的GPIO基本上都可以单独设置输入输出输入输出是单片机GPIO最基本的功能,输出一般可以设置为开漏输出和上拉输出,而输入一般可以设置为上拉输入、下拉输入或者无上下拉输入 。有特殊功能的引脚还可以设置为特殊功能,比如UART、SPI、模拟输入等等 。GPIO输入输出设置一般来说,每一组GPIO都有对应用的寄存器用于设置输入或者输出,也有对应的寄存器设置上拉或者下拉 。
以Holtek的单片机为例,PAC控制着PA组别GPIO的输入输入设置,PBC控制着PB组别GPIO的输入输入设置,每组8个GPIO都是可以独立设置的,对应的位设置为1为输入,对应的位设置为0则为输出PxPU寄存器则控制上拉和下拉的设置,每组GPIO也是可以单独设置的,对应的位设置为1则为上拉设计,对应的位设置为0则不带上拉(此单片机没有下拉设置)不同品牌的单片机的GPIO配置方法有一些差异,但基本上都是可以独立设置的 。
STM32单片机的GPIO配置就较为丰富了,大家可以研究一下 。GPIO_Mode_AIN 模拟输入,用于ADC输入GPIO_Mode_IN_FLOATING 浮空输入,没有上拉也没有下拉GPIO_Mode_IPD 下拉输入GPIO_Mode_IPU 上拉输入GPIO_Mode_Out_OD 开漏输出GPIO_Mode_Out_PP 推挽输出GPIO_Mode_AF_OD 复用开漏输出GPIO_Mode_AF_PP 复用推挽输出欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习记得点赞和评论哦!非常感谢! 。

    推荐阅读