BJT 适合电平转换器吗?FET似乎更常见,它们如何比较?

电器工程 中继 GPIO 电平转换
2022-01-18 04:20:59

我是一个业余爱好者,从来没有通过 FET 晶体管的数据表/教程;我是一个BJT人。我从未找到处理 BJT 与 FET 以及最适合每种类型的特定应用的讨论。我的项目是非常简单的开关和逻辑门式电路。因此,一旦我获得了 BJT 来满足项目的要求,我就一直坚持工作。我花了一个下午在 EE-SE 上研究这个,发现了很多好东西。我发现 FET 似乎是电平转换器更受欢迎的选择。我希望有人可以就某些常见应用中 FET 和 BJT 所涉及的优势/劣势和权衡提供“傻瓜式”解释。

我为我的项目选择了这个电平转换器:我想使用具有 3.3V GPIO 的 ESP8266 驱动一个 5V 继电器。我测量了继电器的线圈电流约为 100mA。我想用一个S8050和最少的零件,要求不高。我只是使用 ESP8266 读取 PIR 传感器上的引脚,并读取一些拨动开关以使用继电器控制灯。上述电路是一个不错的选择吗?我设计了自己的电路,但不会使用它。尽管如此,如果有人愿意提供对我的设计的分析,这将有助于我的理解,这是基于一些预感、猜测,也许还有一点巫术。

简单地说,我推断我的基极电流(GPIO 输出 3.3V - Q1 的 0.7V 基极)/R2 的 1K 欧姆 = 2.6mA 不会受到我认为是 5 的分压器 R1/R3 中的电流的太大影响/ (100K +100K) = 25uA。不知道R1、R2、R3和U1的基极的连接处是如何工作的;我猜想 U1 的基极会将分压器的 2.5V 拉低至 0.7V,但不确定它会如何影响 GPIO 源的 2.6mA。这就是为什么我选择了我链接的电路。在此处输入图像描述

4个回答

射线。是的,有成百上千的关于使用 BJT 进行几乎任何你能想象到的开关安排的好页面。它们也可以很好地用作电平转换器,尽管尽管您使用了该短语,但我实际上并不认为这是您的情况。如果您想查看使用 BJT 进行电平转换的示例,您可以在此处查看我的答案。

下面,与其给你一条鱼,不如教你钓鱼。


对于电流合规性超过您的 I/O 引脚(如继电器)或驱动电压高于您的 I/O 引脚可以处理(再次,如您的继电器)的情况,或者您需要一些感应保护的情况回扣(再一次,就像你的继电器)你可能想要使用外部 BJT 或 FET 作为开关。

您可以安排一些事情,以便开关是:

  1. 在低侧(靠近地面),或
  2. 在高端(靠近继电器或其他设备的驱动电压),或
  3. 两侧(H 桥、桥接负载等)

但是您确实需要有充分的理由来选择上面的 (2) 或 (3)。如果您没有充分的理由,它们涉及更多部分并且通常不必要地复杂。因此,低边开关是检查此类问题的首选。


要设计任何开关,您首先要了解您需要驱动的规格以及驱动它的规格。

让我们看一下ESP8266 数据表

在此处输入图像描述

在这里,您可以看到 I/O 引脚的电流合规性最大值为\$I_{MAX}=12\:\textrm{mA}\$这意味着您应该计划保持在该值之下。我喜欢保持在最大值的一半以下,如果我能做到,那就更好了。越少越好,因为如果您同时使用多个像这样的不同 I/O 引脚,负载会增加,并且整个端口和整个设备也存在耗散限制。就算没有说出来,它们也是存在的。所以尽量保持低调。

还要注意电压限制。假设您在\$V_{CC}=3.3\:\textrm{V}\$上运行,那么它们保证 80% 的高输出电压,或 $$V_{OH}\ge 2.64\:\textrm {V}\label{voh}\tag{Voh Min}$$ (这意味着,当采购\$I_{MAX}\$时。)它们还保证 80% 的低输出电压,或 $$V_{ OL}\le 330\:\textrm{mV}\label{vol}\tag{Vol Max}$$ (这意味着,当下沉时\$I_{MAX}\$。)

现在让我们看一个典型的继电器数据表

在此处输入图像描述

从这里您可以看到电阻为\$125\:\Omega\$并且所需的电流为\$40\:\textrm{mA}\$

(另一个细节是,它需要至少 70% 的指定电压才能接合,这证实了 BJT 开关模式、饱和\$V_{CE}\$下降大约十分之几伏是“负担得起的”。如果你不明白我的意思,或者我为什么这么说,当我写 'switch-mode, saturated \$V_{CE}\$ drop' 时,你需要停下来想一想。这很重要。在操作时一个 BJT 作为开关,你买不起大幅度\$V_{CE}\$。你希望它尽可能小,以便它真的像开关一样工作。但要在那里实现小幅度,你需要操作它“饱和”,这意味着适用的\$\beta\$将很低。)


上述数据表明,出于前面提到的所有原因,您确实需要一个外部开关。您需要它是因为它需要比您的 I/O 引脚提供更多的电流合规性,因为您想要保护您的 I/O 引脚免受继电器电感的反电动势的影响,并且因为继电器需要比您的 I/O 更高的电压pin可以提供。甚至不要考虑直接使用 I/O!

您也可以使用几乎任何 BJT,因为继电器所需的电流很小。

(您的继电器可能需要更多电流。但即使是两倍,大多数 BJT 也可以相对轻松地处理。无论如何,如果是这样,您需要这么说。[编辑:我认为您已在我的答案下方的评论中指出测得的电流是\$100\:\textrm{mA}\$。这应该没问题。但它改变了我在下面写的一些值。)

在这种情况下,我会使用我拥有的很多设备:OnSemi PN2222A设备。让我们从检查图 11 开始:

在此处输入图像描述

查看图 11,您可以获得很多重要信息。首先是他们“建议”将其作为一个开关操作\$\beta=\frac{I_C}{I_B}=10\$(您可以在两个地方看到这一点:图表上的最低曲线是饱和时\$V_{CE}\$的值,它们指定\$\frac{I_C}{I_B}=10\$并且他们以相同方式识别的最上面的曲线。)所以这意味着 $$I_B=4\:\textrm{mA}\label{ib}\tag{Ib}$$ 这完全在你的 I 的限制之内/O 引脚。所以这很好。第二个是 $$V_{BE}\大约800\:\textrm{mV}\label{vbe}\tag{Vbe}$$ 用那个集电极电流。(只需沿 x 轴查看集电极电流,然后查看曲线与 y 轴值相交的位置。)最后一个细节将用于设计。

准备原理图的时间:

示意图

模拟此电路- 使用CircuitLab创建的原理图

\$R_1\$的值很容易计算。首先,假设 I/O 引脚在高电平时工作在其最低输出电压。你已经从上面知道了这个值,\$\ref{voh}\$此外,您可以从上面知道 BJT 基极-发射极电压的典型值\$\ref{vbe}\$最后,您还知道可能的基电流\$\ref{ib}\$所以只需计算: $$R_1=\frac{2.64\:\textrm{V}-800\:\textrm{mV}}{4\:\textrm{mA}}=460\:\Omega\label{r1} \标签{R1}$$

最接近的值是\$470\:\Omega\$这就是您在示意图中看到的内容。当然,当您尝试将其关闭时,二极管会为继电器的磁场能量崩溃提供路径。否则不进行。

假设您的 I/O 引脚比我们假设的更强大,并且在驱动为高电平时保持完整的\$3.3\:\textrm{V}\$ 。那么 I/O 管脚和 BJT 基极电流将为\$\frac{3.3\:\textrm{V}-800\:\textrm{mV}}{470\:\Omega}\约 4.4\:\textrm{毫安}\$这也很好,根本不会伤害任何东西。所以这个设计应该很好用。

从 BJT 基极向地添加一个电阻器是有原因的。一个是如果由于某种原因\$R_1\$的另一端处于浮动状态并且未连接到您的 ESP8266,它有助于保持底座靠近地面。还有其他原因。但这在这里并不重要,所以我暂时不讨论它。

编辑:当你指出(在下面的评论中)继电器的值\$100\:\textrm{mA}\$是我上面使用的 2.5 倍时,你可以考虑使用 2.5 倍的想法基极电流。但这些小信号 BJT 中的大多数也可以很好地用作\$\beta\$值的开关,这比我之前阅读图 11 所建议的要高。现在让我们看一下图 4:

在此处输入图像描述

在这里,您可以看到标记为\$150\:\textrm{mA}\$的曲线,这超出了您的需要。x 轴是基础电流\$I_B\$,y 轴是\$V_{CE}\$您希望\$V_{CE}\$的值较低,并且您可以看到它在\$100\:\textrm{mV}\$附近稳定下来。请记住,这些是典型曲线而不是保证曲线,您可以看到使用\$I_B\approx 8\:\textrm{mA}\$看起来非常稳定(远离曲线拐点)并且\$10\: \textrm{mA}\$更好。嗯,这表明\$\beta\$从大约 15 到 20 可能会很好地工作。

在\$100\:\textrm{mA}\$将所有这些放在您的继电器上,由于继电器负载增加,您需要大约 2.5 倍的基极电流,但您可以承受将其降低 1.5 到 2.0 倍的代价由于图 4 曲线。所以也许从早先计算的\$I_B=4\:\textrm{mA}\$\$I_B=5\:\textrm{mA}\$\$I_B=6.7\:\textrm{mA} \$很好。

让我们重新计算\$\ref{r1}\$的早期方程: $$R_1=\frac{2.64\:\textrm{V}-800\:\textrm{mV}}{5\:\textrm{ mA}}=368\:\Omega\label{r1x}\tag{R1 redo 1}$$

$$R_1=\frac{2.64\:\textrm{V}-800\:\textrm{mV}}{6.7\:\textrm{mA}}=275\:\Omega\label{r1y}\tag{R1重做 2}$$

这两者之间?我会选择\$R_1=330\:\Omega\$我认为那会是合理的。最坏情况下的 I/O 引脚电流应约为\$7.5\:\textrm{mA}\$这远低于我上面显示的 ESP8266 数据表的最大值\$12\:\textrm{mA}\$,但在它之下已经足够了,我不会太担心。(至少,除非我知道我在大量 I/O 引脚上重复此驱动程序。在这种情况下,我可能会去查看端口或整个设备是否有指定的限制。 )

你不需要这个“巫毒”。这里不需要 R1 和 R3。双极晶体管工作在电流上,而不是电压上。这些电阻器只需要将晶体管偏置到线性放大器的线性区域。你不想要线性放大,你想要高效率的开关。

示意图

模拟此电路- 使用CircuitLab创建的原理图

发射极-基极电压 \$U_{BE}\$ 取决于集电极电流,但通常约为 1V。因此,其基极电压为 3.3V,基极电阻为 1k,基极电流约为 2mA。

使用开关晶体管,它们具有高 β 值,并在非常低的输入电流下进入饱和状态。对于更高的负载,您也可以考虑使用 darlington 类型。饱和导致晶体管中较低的电压降和较少的热量产生。

FET 不会饱和。从而大获全胜。

对于有用的电流,双极 Vbe 几乎设置为 0.5--0.7 伏。

而 FET 很高兴地允许栅极和通道之间的电压为 1 或 2 或 5 或 10 伏。因此,操作灵活性大获全胜。

BJT 和 FET 的一般比较:

BJT: - 电流控制器件 - 电荷载流子既是电子又是空穴(因此是双极的) - 物理上更大 - 输入电容非常小(可以提供更高的速度/更高的频率放大) - 由于增益不依赖于偏置电压,因此线性放大更大- 可以具有较低的输出阻抗,因此更容易驱动低阻抗负载 - 由于电流控制,通常功耗较高

FET: - 电压控制器件(功耗较低,通常仅在切换状态时才消耗功率) - 电荷载流子是电子或空穴(取决于类型,因此是单极的) - 物理上更小 - 可以更容易扩展(通过减半栅极使漏极电流减半尺寸) - 通常更高的输入电容和米勒效应意味着随着增益的增加,输入电容也会增加 - 不能很好地驱动低阻抗(通常需要缓冲级) - 通常会降低功耗

这绝不是完整的差异列表,但希望能回答您关于两种晶体管之间差异的问题。根据我的教育经验,95% 的业余项目似乎都是 BJT,但对于大规模、高密度的项目,CMOS 是首选,因为大多数数字电路都是 CMOS,因此它更便宜在同一过程中生产模拟和数字。