STM32的GPIO口总共有八种配置模式,其中有一种是开漏极输出,所谓开漏输出就是MOSFET的漏极输出(OD),只是一个电平信号,而没有驱动能力,跟三极管的开集电极(OC)输出一样。
STM32设计开漏极输出的原因
STM32单片机GPIO内部结构图如下图所示。其输出是MOSFET控制,并且带有可配置的上拉电阻和下拉电阻。
设计成开漏极输出后,我认为有两个原因:
1.用户可以根据自己的需要设置上拉电阻,增强驱动能力。STM32单片机虽然可以配置内部的上拉电阻,但是这个内部上拉我们一般称之为“若上拉”,即上拉电阻的阻值非常大,可能不满足用户的需求。而设置成为开漏极输出后用户就可以根据自己电路的需求设置不同阻值的上拉电阻。
2.可以实现多个器件的线与逻辑。有时需要将两个/多个门(场效应管或者是三极管)的输出端并联以实现“与”逻辑的功能称为“线与”逻辑。这个时候就需要这几个输出都是开漏OD或者开集OC。线与逻辑的示意图如下图所示。
上图中只要任意一个MOS输出0则,输出结构就为0。如果要输出为1的话,则需要两个MOS的输出都为1。这就是线与的硬件逻辑关系。这个在IIC电路里非常常见。
STM32引脚的八种配置模式
STM32单片机的引脚总共有八种配置模式,输出四种,输入四种,如下表所示。