如何为光耦合器选择随附的组件?

电器工程 电源 交流 光隔离器
2022-01-24 01:58:21

我正在使用光耦合器 ( MOC3021 ) 来感应使用微控制器 ATmega16L 的电器的开/关状态。我该怎么做呢?我的电源规格是 230V,50Hz。如何设计周围电路并选择电阻器等元件值?

2012 年 6 月 13 日 编辑参考这个示意图 注意:这是我第一次解决这样的电路。请发送任何有用的反馈。(包括我做错的事情或任何改进)

参考上面的示意图。这个想法是使用这个电路来确定负载是打开还是关闭。光耦合器的输出引脚连接到我正在使用的微控制器的外部中断,该微控制器是 ATmega16L。中断将监视负载的状态。监控后,我可以使用连接到同一个微控制器的继电器(继电器充当控制机制)来切换负载的状态。

现在,我尝试计算 R1、R2 和 Rc 的电阻值。请注意,微控制器的VIL(max) = 0.2xVcc = 660mV 和VIH(min) = 0.6xVcc = 1.98V 和VIH(max) = Vcc+0.5 = 3.8V。

计算 Rc 很容易。当晶体管不导通时,输出为高电平(3.3V)。当晶体管导通时,输出被拉低。所以从微控制器的角度来看,输出高意味着负载被关闭,输出低意味着负载被打开。

查看 SFH621A-3 的数据表,在 IF = 1mA 时使用 34% 的最小 CTR。因此,在 1mA 输入时,输出将为 340uA。那么为了让微控制器检测光耦合器输出的低电压,我可以使用 1Kohm 的电阻值吗?这样光耦合器的输出就会有 340mV 的电压(低于VIL(max)

稍后再详细介绍,这是漫长的一天。

2012 年 6 月 15 日编辑

注意:求解电源线上的电阻(R1 和 R2)。请检查我的计算和任何适当的反馈。

目标:目标是在 10mS 半周期(50Hz 的 20mS 全周期)内使 LED *ON** 保持最大时间。假设 LED 必须在 90% 的时间内开启,这意味着 LED 在该半周期的 90% 的时间内需要至少 1mA 的电流,这意味着 LED 将在 10mS 的半周期内激活 9mS。因此,9mS/10mS = 0.9 * 180(半周期)= 162 度。这表明电流在 9 度和 171 度之间为 1 毫安(从 0 度到 9 度和 171 度到 180 度小于 1 毫安)。没有考虑到 95% 的 ON 时间,因为使用整数是整洁的,5% 至少在这个应用程序中没有任何区别。

Vpeak-peak = 230V x sqrt(2) = 325V。考虑公差。最小公差为 6%。325 x 0.94 ( 100-6 ) x sin(9) = 47.8V

因此,R1 ≤ (47.8V - 1.65V) / 1mA = 46.1 Kohms 选择一个小于 39 Kohms 的 46.1 Kohms 的值(e12 系列)。现在与计算出的电阻值相比,选择了更小的电阻值,这意味着通过二极管的电流将大于 1mA。

计算新电流:((325V x 110%) - 1.25V)/39 Kohms = 9.1mA(太接近二极管的最大电流)。稍后回到这个 [标签 - 1x]

首先计算电阻的额定功率(考虑 39 Kohm)((230 + 10%)^2)/39K = 1.64 瓦(太高)。

回到计算 [Label - 1x] 让我们选择两个 22 Kohm 电阻。它们加起来是 44 Kohm,非常接近 46.1 Kohm(按上面计算)

检查两个电阻组合的额定功率:((230 + 10%)^2) / (2 x 22) Kohm = 1.45W。选择 22 个 Kohm 电阻器,每个电阻器的额定功率为 1W。

现在,毕竟最初的 CTR 是 34%,这意味着 1mA 输入将是 340µA 输出但是现在由于 2x22 Kohm 电阻器的存在,输出端的电流会稍微大一些。这意味着上拉电阻 Rc 上的电位更高。光耦合器的输出电压降到 500mV 以下会有问题吗?

4个回答

MOC3021 是一款带双向可控硅输出的光耦合器。它通常用于驱动功率三端双向可控硅开关,以切换主电源操作的设备。三端双向可控硅开关只能用于交流电路。

您需要一个带有晶体管输出的光耦合器,最好是一个在输入端具有两个反并联 LED 的光耦合器。SFH620A就是这样的一部分。

在此处输入图像描述

反向并联的两个 LED 确保晶体管在电源的两个半周期都被激活。许多光耦合器只有 1 个 LED,它可以工作,但会在 20ms 的周期内为您提供 10ms 的输出脉冲,频率为 50Hz。在这种情况下,您还需要在输入端反并联一个二极管,以保护 LED 在反向极化时免受过压。

重要的是CTR或电流传输比,它表示对于给定的 LED 电流,晶体管将吸收多少输出电流。CTR 通常不是很高,但对于 SFH620A,我们可以选择最小值为 100% 的值,仅在 10mA 时,在 1mA 时只有 34%,因此 1mA in 意味着至少 340\$\mu\$A出去。

假设输出到 5V 微控制器,您将使用图中所示的 2k\$\Omega\$ 上拉电阻。根据数据表,如果晶体管关闭,它不会消耗电流,除了一个小的泄漏电流,最大 100nA。所以这将导致电阻两端的电压降为 200\$\mu\$V,这非常安全。

如果晶体管开启,并且它消耗 340\$\mu\$A,那么电阻上的电压降仅为 680mV,这对于获得低电平来说太低了。我们将不得不增加电阻值或电流。由于我们在泄漏电流上有很大的余量,我们可以安全地将电阻值增加到 15k\$\Omega\$。然后 340\$\mu\$A 将提供足够低的输出电压。(理论上5.1V压降,但只有5V可用,所以它会接地。)由于漏电流造成的压降仍然在1.5mV的限制范围内。

如果我们想在 1mA 时获得至少 34% 的 CTR,我们必须使用 SFH620A-3。

如果这将由直流电源控制,我们几乎可以完成。只需添加与 LED 串联的 R1,可能不需要 R2。然后 R1 \$\leq\$ (\$V_{IN}\$ - \$V_{LED}\$) / 1mA。

但我们必须处理 230V AC 输入信号。在过零处不会有任何电流,我们对此无能为力。我们如何才能在大部分周期内获得至少 1mA 的电流而不浪费太多功率?这是一个权衡。您可以将 1mA 用于最大电压,这只会给您一个小脉冲,但您会浪费最少的功率。或者您可以在大部分周期内使用 1mA,但是当电压最高时您将获得更多电流。假设我们希望在 10ms 半周期 (50Hz) 中至少有一个 9ms 脉冲。这意味着在 9° 相位直到 171° 的电流必须为 1mA。230V AC 是 325V 峰值,但我们必须考虑 -6% 的容差,所以这是 306V 的最小值。306V \$\times\$ sin(9°) = 48V。R1 \$\leq\$ (48V - 1.65V) / 1mA = 46.2k\$\Omega\$。(1.65V 是 LED 的最大电压。) 最接近的 E24 值为 43k\$\Omega\$。然后我们在 9° 相位有超过 1mA 的电流,但在电压最大值时是多少。为此,我们必须使用最大的正公差。10%。那么峰值电压为 230V \$\times\$ \$\sqrt{2}\$ \$\times\$ 110% = 358V。最大电流为 (358V - 1.25V) / 43k\$\Omega\$ = 8.3mA。(1.25V 是 LED 的标称电压)。这远低于光耦合器的极限。

我们将无法仅使用 1 个电阻器来做到这一点。它可能无法承受高压,并且可能还有功耗问题,我们稍后会讨论。电阻两端的峰值电压为 357V。MFR-25电阻的最大额定电压为 250V,因此我们需要至少 2 个串联。权力呢?43k\$\Omega\$ 中的 230V+10% 为 1.49W。MFR-25 的额定功率仅为 1/4W,因此其中两个不行。现在您可以选择串联更多,但必须至少为 6 个,或者选择更高额定值的电阻器。MFR1WS(相同的数据表)的额定功率为 1W,因此串联 2 个即可。请记住,我们必须将电阻值除以 2:21.5k\$\Omega\$,这不是 E24 值。我们可以选择最接近的 E24 值并检查我们的计算,或者选择 E96。让'

就是这样,伙计们。:-)

编辑
我在评论中建议还有更多需要考虑,这个答案很可能是 3 倍。例如,AVR 的 I/O 引脚的输入泄漏电流可能是晶体管的十倍。(别担心,我检查过了,我们很安全。)

为什么我没有选择具有达林顿输出的光耦合器?他们的点击率要高得多。
主要原因是达林顿的饱和电压远高于普通 BJT。例如,对于这个光耦合器,它可以高达 1V。对于ATmega16L,您使用的低电平最大输入电压为 0.2 \$\times\$ \$V_{DD}\$,或在 3.3V 电源下为 0.66V。1V太高了。这是主要原因。
另一个原因可能是它可能没有真正的帮助。我们有足够的输出电流,只是1mA的输入电流太高了,我们需要给它们加功率电阻。如果它们也仅指定为 1mA,则达林顿不一定能解决这个问题。在 600% CTR 时,我们会得到 6mA 的集电极电流,但我们不需要。我们不能对 1mA in 做点什么吗?大概。对于光耦合器,我提到的电气特性只谈论 1mA。数据表中有一个图表,图 5:CTR 与正向电流的关系,显示 0.1mA 时的 CTR 超过 300%。你必须小心这些图表。虽然表格通常会为您提供最小值和/或最大值,但图表通常会为您提供典型值。您可能有 300%,但可能会更低。低多少?它没有说。如果你只生产一种产品,你可以尝试,但你可以'
它可能会起作用。假设您使用 100\$\mu\$A in,并且在相对安全的 CTR 值为 100% 时,您将有 100\$\mu\$A out。您将不得不再次进行计算,但您的主要优势将是输入电阻器只会消耗 150mW,而不是 1.5W。这是值得的。

在我的另一个答案中,我解释了为什么我没有在那里使用达林顿光耦合器:主要原因是达林顿的饱和电压,它比普通 BJT 高得多,它可以高达 1 V。对于 ATmega16L 你'低电平时使用的最大输入电压为 0.2 × VDD,或 3.3 V 电源时为 0.66 V。1 V 太高了。

但这不是无法修复的东西,它只需要几个额外的组件。同时,我们也会对 1 mA 输入电流做一些事情。

从输入电流开始,我们必须使用 1 mA,因为数据表没有提到任何更低的值,然后你可以尝试一下,但你自己一个人,不能保证。然而, FOD816的数据表有一个有趣的图表。

在此处输入图像描述

就是那个。这个确实为低至 100 µA 的输入电流提供了 CTR,甚至更高:350%(记住这是一个达林顿)。但是你必须小心这些图表。虽然表格通常会为您提供最小值或最大值,但除非另有说明,否则此类图表将为您提供典型值。那么最低限度是多少?我们不知道,但 100% 是安全的。让我们更加安全并假设 CTR 为 50%。因此,对于 100 µA 的输入,我们将得到 50 µA 的输出。让我们看看这是否足够。

这是修改后的输出级。U1 的晶体管是光电达林顿晶体管,开启时提供 50 µA 电流。让我们为 R4 选择 10 µA,因此其值为 0.6 V/10 µA = 60 kΩ。稍后我会回到 R4 的功能。

在此处输入图像描述

然后我们有 40 µA 剩余用于 T1 的基极电流。如果我们为此选择一个BC857A,我们的 \$H_{FE}\$ 最小为 125,因此我们的集电极电流最小为 5 mA。最小 660 Ω 的 R5 足以使输出变低。由于我们驱动的是高阻抗微控制器输入,因此我们不需要 5 mA,不妨选择 15 kΩ,从而将电流限制在 220 µA。控制器端口的 1 µA 输入泄漏只会导致 15 mV 的压降,所以没关系。

R3的作用是什么?它通常用于限制基极电流,但达林顿不是已经这样做了吗?是的,确实如此,但价值可能会很高。在我的另一个答案中,我计算出峰值 LED 电流可能高达 8.3 mA,在我们的低功率版本中将变为 830 µA。我们以 50% 的安全 CTR 值计算,但通常为 350%,最大值可能更高。830 µA \$\times\$ 350 = 290 mA,这对于那个可怜的 BC857A 来说太多了。因此,我们将通过为 R3 选择 15 kΩ 值将其限制为 100 µA。

R4仍然需要一些解释。假设我们省略它。然后所有达林顿的电流都流向 T1。关闭 FOD816 的漏电流(在数据表中称为“暗电流”)可高达 1 µA。T1 将在最坏情况下将其放大至最大 250 µA,这足以在 R5 上降低 3.3 V。所以输出可能会一直很低。
我们为 R4 选择了 60 kΩ 的值。然后只要其两端的电压降小于 0.6 V,所有达林顿电流将通过 R4,而不会通过 T1,因为未达到最小基极-发射极电压。那是 10 µA。所以 1 µA 暗电流只会导致 60 mV 的压降,而不会产生基极电流。

我们的所有组件都有值,唯一剩下的就是将输入电阻增加到 220 kΩ。您可以为此使用 1/4 W 电阻器。

要计算电路的参数,请从输出所需的内容开始,然后向后工作。10 kΩ 是输出上拉电阻的好值。除非您有不寻常的要求,例如需要低功耗的电池操作,否则 10 kΩ 是在足够低以将线路拉高以防止泄漏和合理噪声之间的良好折衷,但又不会低到需要太多电流。

当光电器件中的输出晶体管打开时,它会在 Rc 上施加最多 3.3 V 的电压。3.3 V / 10 kΩ = 330 µA,这是晶体管必须能够吸收的最小电流。你需要一些额外的东西,这样当它应该很低时,它就会被固定在很低的位置。我会说它至少应该能够吸收 500 µA,但我会使用 1 mA,除非您有特殊原因将其关闭。

现在我们知道输出必须吸收 1 mA,我们查看光电器件的数据表,看看我们需要如何驱动它以输出 1 mA。您正在使用这部分的“-3”变体,根据数据表的第一页,它的最低保证电流传输比为 100%。这意味着晶体管可以吸收至少与您通过其中一个 LED 一样多的电流。但是,请注意 CTR 规格上方的小“±10 mA”。这实际上是说,如果您通过 LED 输入 10 mA 电流,那么晶体管将能够吸收至少 10 mA 的电流。它实际上并没有承诺任何其他输入电流。

通过数据表查看更多信息,您可以在第 3 页顶部找到更多信息。这里它们实际上显示了 1 mA 输入的 CTR。请注意,现在它只能保证为 34%。这意味着要获得 1 mA 输出灌电流能力,您必须以 1 mA / 34% = 2.9 mA 驱动 LED,因此我们的目标是绝对最小值为 3 mA。

您说必须感应的电压是 230 V AC。由于那是正弦波,它的峰值为 325 V。光电的输出信号进入微,因此无需在通电时为稳定信号。事实上,微机能够摆脱短暂的中断和故障是一个好主意。我可能会保留一个计数器,当信号关闭时每毫秒递减一次,并在打开时重置为 50 之类的值。这意味着您必须在 50 毫秒内没有看到任何信号才能宣布电源已关闭。所需要的只是在生产线周期的峰值出现一点点,这个系统就可以正常工作。请注意,在 50 Hz 功率下,线路周期峰值每 10 ms 出现一次。

所以让我们看看我们在哪里。当电源电压为 325 V 时,我们希望通过 LED 的电流至少为 3 mA。LED 将下降至 1.65 V(第 2 页底部表格的顶部),这仍应在最低合理的电源线电压下工作. 让我们的目标是能够检测到 200 VAC 最小值,即 283 V 峰值和 LED 下降后的 281 V。281 V / 3 mA = 94 kΩ。从理论上讲,这就是与 LED 串联以在每个功率峰值至少触发一次输出所需的全部内容。

在实践中,添加一些边距是个好主意。您希望在每个半周期的合理有限部分内断言输出,而不仅仅是保证在一个小瞬间开启。考虑到所有这些,我将电阻大致减半至 47 kΩ。这将在所有合理条件下稳定地打开输出,并具有显着的余量。

您可能认为这就是您需要做的所有事情,但等等,还有更多。想想在高线电压下会发生什么,比如 240 V。峰值为 340 V,这将导致通过 LED 的电流为 7.2 mA。您必须检查允许的最大 LED 电流,即 60 mA,这样就可以了。但是,请考虑电阻器的功耗。如果我们说最坏情况下的线路电压是 240 V,那么进入电阻器的功率(忽略 LED 压降)是 (240 V) 2 / 47 kΩ = 1.23 W。那应该至少是一个“2 W”电阻器然后,它会变得明显温暖。

另一个问题是需要考虑电阻器的额定电压。它需要能够承受 340 V 峰值,因此总体而言,您需要一个额定功率为 2 W 和 400 V 的 47 kΩ 电阻器。这些可以找到,但串联使用多个电阻器可能更简单。这分散了串联电阻器之间的峰值电压和功耗。四个 12 kΩ 电阻器可以做到这一点,并且只会消耗 300 mW,每个电阻器的电压为 85 V。这将比单个电阻器更容易找到且更便宜,除非这是一种批量产品,您可以在其中大量购买东西。因此,所问问题的答案是将四个普通的 12 kΩ 1/2 瓦电阻与 LED 串联。

请注意,当您显示 R1 和 R2 时,这些不需要在光电器件的每一侧分开。只需要在某个地方与 LED 串联一个电阻即可。由于在这种情况下,该电阻恰好由四个单独的电阻组成,因此您可以以任何您喜欢的方式将它们分开,以使电路的高压侧以机械方式工作得最好。优选地,它们将是端到端的,以使高压的爬电路径最大化并散布热量。

但是,我不太喜欢这种应用中的光耦合器,因为它的电流传输比如此之低,这迫使我们提供大量 LED 电流,从而导致电阻器消耗大量功率。对于这种高电流传输比有用而速度并不重要的应用,我喜欢便宜且可用的 FOD817。这部分的 D 版本在 5 mA 时保证 CTR 为 3x。他们没有确切说明您得到 1 mA 的电流,但可以肯定的是,输出可以在 1 mA 输入时吸收至少 1 mA 的电流。

FOD817 有一个 LED,但这很容易处理(FOD814 有背靠背的 LED,但不太可用,并且没有一些更高增益的变体)。使用上述 50 ms 方案,如果您在每个线路周期(即每 20 ms)获得一次脉冲,则没有问题。除了电阻之外,还要在 LED 上串联一个二极管,并在 LED 上加一个高阻值电阻,以确保它不会因为一点点二极管泄漏而看到高反向电压。100 kΩ 很好,并且足够高,以至于它的电流与我们的其他计算无关。这样做的另一个优点是,不仅由于需要更少的 LED 电流而获得更低的功耗,而且由于 LED 仅在一个方向上被驱动,您还可以将功率降低两倍。

所以这是我的最终答案:

如果您正在为此类应用寻找非常高的点击率,请查看Liteon LTV-8xxx 系列最低 600% 在 1mA 中频。