锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

STM32的GPIO模式设置&两只三极管常见组合电路

时间:2023-09-18 16:37:01 两只三极管构成的复合管三极管管脚控制电路

文章目录

  • 前言
  • 一、STM32的GPIO模式设置
    • 1.STM32的GPIO八种模式及选择
    • 2.电路图对应于八种模式
  • 二、两个三极管
    • 1.串联组合成达林顿管
    • 2.并联组合成输出电路
  • 总结


前言

读书破万卷,下笔如有神----杜甫

STM32的GPIO根据使用情况,设置八种模式非常简单GPIO是需要输入还是输出来确定,一行代码可以设置一个模式。通常,我们只需要调用代码,不需要深入研究实现电路,但对于那些还没有学习过模数电的人,我们可以学习一点。此外,本文还解释了两个三极管的爱情故事,即两个三极管和六个引脚的不同组合将形成哪些有用的电路。


一、STM32的GPIO模式设置

1.STM32的GPIO八种模式和选择

首先,在标准固件库中stm32f10x_gpio.h八种模式的枚举定义可以在文件中找到:

typedef enum { 
         GPIO_Mode_AIN = 0x0,   GPIO_Mode_IN_FLOATING = 0x04,   GPIO_Mode_IPD = 0x28,   GPIO_Mode_IPU = 0x48,   GPIO_Mode_Out_OD = 0x14,   GPIO_Mode_Out_PP = 0x10,   GPIO_Mode_AF_OD = 0x1C,   GPIO_Mode_AF_PP = 0x18 }GPIOMode_TypeDef; 

可分为输入输出两类:
四种输出模式:
普通推挽输出(GPIO_Mode_Out_PP )、普通泄漏输出 (GPIO_Mode_Out_OD)再用推挽输出(GPIO_Mode_AF_PP )、复用开漏输出(GPIO_Mode_AF_OD )。
四种输入模式:
上拉输入(GPIO_Mode_IPU ) 、下拉输入模式(GPIO_Mode_IPD )、浮空输入模式(GPIO_Mode_IN_FLOATING) 模拟输入模式(GPIO_Mode_AIN )。

显然,大多数学过模电的人都记得这些模型对应的电路和功能,所以在这里回顾一下这些模型的场合。
见名知意:
普通推挽输出(GPIO_Mode_Out_PP ):输出电平一般用于输出电平 0 和 3.3 伏,在STM32 使用GPIO当输出时,除了必须使用泄漏模式外,我们都习惯于使用推拉输出模式,如点灯操作。该模式可以高速切换高低电平状态,而不是51台单片机的引脚。
复用推挽输出(GPIO_Mode_AF_PP ):输出电平效果相同,但该模式用于STM32 其他片上外设对 GPIO 此时控制引脚 GPIO 引脚作为外设功能的一部分。

普通泄漏输出 (GPIO_Mode_Out_OD):引脚具有线与的特点,即当多个泄漏模式的引脚连接在一起时,如果其中一个引脚电平较低,则线路相当于短路接地,使整个线路电平较低。当所有的线路和设备都是高电阻或高电平时,线路就是高电平。相当于51台单片机P0引脚。
复用开漏输出(GPIO_Mode_AF_OD ):同样,该模式也用于输出电平效果相同STM32 其他片上外设对 GPIO 控制引脚。

上拉输入(GPIO_Mode_IPU ) :引脚默认显示高电平,因此默认读入也是高电平。
下拉输入(GPIO_Mode_IPD ):引脚默认显示低电平,因此默认读入也是低电平。

浮空输入(GPIO_Mode_IN_FLOATING) :浮动输入的电平是不确定的,完全由外部输入决定,这种模式通常用于检测按钮。
模拟输入(GPIO_Mode_AIN ): GPIO 引脚用于 ADC 这种模式用于收集电压的输入通道,得到未经处理的原始电压。

那么问题来了,如何知道某些功能(设备通信)使用的GPIO引脚应该使用哪种模式?
在这里插入图片描述
当然是查看STM32F10x–8.中文参考手册.1.11外设的GPIO配置一栏,这里只copy几种常见的通信功能GPIO配置:



2.电路图对应于八种模式

这几乎是一样的。

事实上,对许多人来说,看到这里
基本上可以解决编程问题,可以正确选择GPIO模式,所以你不能理解相应的电路图,因为没有必要。所以下面的内容,你可以看看。

同样是查看STM32F10x–8.中文参考手册.下图出现在1中:

此图清晰的描绘了一个GPIO引脚的基本结构概念图,由图可知,通过选择开关可以使该引脚得到8种不同的功能。
以下为STM32F10x–中文参考手册中8.1中原文,清晰地说明了不同模式下,图中各个器件的动作:

当I/O端口配置为输入时:
● 输出缓冲器被禁止
● 施密特触发输入被激活
● 根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接
● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
● 对输入数据寄存器的读访问可得到I/O状态

当I/O端口被配置为输出时:
● 输出缓冲器被激活
─ 开漏模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将端口置于高阻状态(PMOS从不被激活)。
─ 推挽模式:输出寄存器上的’0’激活N-MOS,而输出寄存器上的’1’将激活P-MOS。
● 施密特触发输入被激活
● 弱上拉和下拉电阻被禁止
● 出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
● 在开漏模式时,对输入数据寄存器的读访问可得到I/O状态
● 在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。

当I/O端口被配置为复用功能时:
● 在开漏或推挽式配置中,输出缓冲器被打开
● 内置外设的信号驱动输出缓冲器(复用功能输出)
● 施密特触发输入被激活
● 弱上拉和下拉电阻被禁止
● 在每个APB2时钟周期,出现在I/O脚上的数据被采样到输入数据寄存器
● 开漏模式时,读输入数据寄存器时可得到I/O口状态
● 在推挽模式时,读输出数据寄存器时可得到最后一次写的值

当I/O端口被配置为模拟输入配置时:
● 输出缓冲器被禁止;
● 禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置
为’0’;
● 弱上拉和下拉电阻被禁止;
● 读取输入数据寄存器时数值为’0’。

好吧,匆匆瞄过上文,接着便开始正文了😀。

二、两只三极管

众所周知,三极管分为N型和P型,一只三极管有3个引脚,当用于放大作用时,发射结正偏,集电结反偏。当用作开关作用时,发射结正偏,集电结正偏。。。。以下谈论都使用双极性三极管举例。先问大家2个问题:就单纯的连线把两只三极管连接起来有多少种组合?你学习过哪几种组合呢?
显然,由排列组合可知,考虑其中的一只三极管的3个引脚,每一个引脚可以选择另一个的B,C,E任一脚,当然还可以选择悬空,有2X3X4=24种,使两个管子分离的连接:1种,再考虑三极管P型和N型号,有4种组合,综上,两只三极管共有(24-1)X4=92种连接。。(不知道是不是这样计算的🤣,不过反正组合有很多种)

可以把这些组合分为串接和并接两大类,下面来看一下其中有实际用途的组合:(在模电书中都可以找到)

1.串接组合成达林顿管

达林顿管是两个三极管接在一起,极性只认前面的三极管。

复合管组成原则:
在正确的外加电压下,每只
晶体管均工作在放大区。
第1个元件的集电极电流或射极电流作第2个元件的基极电流,电流方向一致。
等效晶体管的类型是第一个原件的类型。
复合管的特性:
高电流增益; 
电压增益约等于1(小于1); 
高输入阻抗; 
低输出阻抗; 
放大倍数等于两管之积,漏电流影响极大,造成电路不稳定。

串接主要使用到其叠加起来的电流特性,做出大功率的复合(功率)管。

2.并接组合成输出电路

请看下图:

这几个电路是不是感觉很熟悉,从左到右依次是:乙类功率放大器,TTL与非门,上N下P型推挽电路,上P下N型推拉电路。

乙类功率放大器:
两只三极管在无驱动信号时,处于低电流状态,当加上驱动信号时,一对管子中的一只在半周期内电流上升,而另一只管子则趋向截止,到另一个半周时,情况相反,由于两管轮流工作,必须采用推挽电路才能放大完整的信号波形。(注意是放大信号)优点是效率较高(模电考试内容将优点二字改为其特点,注意别填成甲乙类功放去了!!!),理论上可达78%,缺点是失真较大。

TTL与非门的输出级:
输出级有较强的负载能力,为此将三极管的集电极负载电阻Rc换成由三极管T4、二极管D和Rc4组成的有源负载。由于T3和T4受两个互补信号Ve2和Vc2的驱动,所以在稳态时,它们总是一个导通,另一个截止。这种结构,称为推拉式输出级。(注意是当做开关来使用)

关于后两种电路的区别和联系,大家可以参考电子大佬的文章,我直接粘贴出其结论:

大家可以回过头看一下STM32的GPIO采用推挽输出是哪一种。。。


这里区分几个概念,细心地人已经发现:
推挽输出: 推挽电路使用两个参数相同的三极管,以并接方式存在于电路中,其中他们的射极连接成输出端。电路工作时,两只对称的三极管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。

互补输出: 互补电路也是一种推挽功放电路,不同之处是互补电路用两种极性不同的晶体管,各自工作在输入信号的正、负半周,所以不再需要倒相电路进行倒相。而用同极性晶体管构成的推挽功放,则需要倒相电路来得到两个幅度相等、相位相反的推动信号。

推拉输出: 以并接方式存在于电路中,其中他们的集电极连接成输出端。其实质只有一只管子起到开关作用,另一只作为其有源负载,推拉式输出级既提高电路的负载能力,又提高开关速度。


总结

没有任何的计算,没有电路的具体分析,大体上还是浅显易懂的。其实这是我早就想写出来的文章,因为去年复习模数电时,遇到很多长得差不多的电路图,就比如这里的几个输出级电路,当时还是比较懵逼的,明明就两只三极管,为此也查看了一些大佬的文章,颓然发现不是电路图难,原来是我太菜了😅。。。看来还是要多多学习啊,反正知识学到了就是自己的东西了,别人也拿不去,何乐而不为呢。

问大家一个问题:在梦里梦到一个好几年不见的人代表着什么?

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章