光耦电路怎么设计

光耦电路的设计像设计 BJT 电路一样。
如果 BJT 有增益或者电流增益,那光耦合器就有 CTR 或电流传输比。
了解 CTR,并使用,那光耦合电路设计的就会变得容易。

一、什么是光耦合器的 CTR?

CTR 也就是电流传输比,是集电极(Ic)与正向电流(If)的比率,用%表示:

CTR = ( Ic / If ) x 100%

集电极电流是流向光耦合器晶体管侧集电极的电流,另一方面,正向电流是流向光耦合器二极管侧的电流。

光耦合器电路
光耦合器电路

基本上,二极管侧通过器件电流传输比链接到晶体管侧。在设计光耦合器电路设计时,也可以使用 KVL、KCL、欧姆定律等。

二、光耦合器电路设计步骤

1、选择电路结构

在这个时候,尽量不要让电路变得复杂,因此组件数量是越少越好。
有两个原因,第一,成本较低,第二组件越少,出故障率越低,可靠性也就越高。

假设将信号从初级侧控制器传输到次级控制器,那电路就如下所示:
在这里插入图片描述
逆变器配置

上面这个电路配置是逆变器,如果你想要非反相信号,就使用下面这个电路结构。
在这里插入图片描述
同相配置

如果要使晶体管饱和,第一个电路通常是反相电路,如果将电路偏置为在线性区域工作,则 Uout 节点处的电压可能高于 0 。第二个电路是同相配置,与 BJT 的共集电极配置相当,但由于存在基极电流,BJT 共集电极比该电路更为复杂。

2、选择光耦合部件

光耦合器电路设计的下一步是选择光耦合器部件,在这个过程中,你必须考虑你的需求。

  • 如果你的应用是交换机,则比较选择最低CTR较高的设备,

  • 如果你的设备是线性的,你可以考虑使用点击率范围较小的,严格的点击率将对应较小的变化。

  • 如果电路要暴露再高温环境下,最好选择 CT受环境温度影响不太大的光耦,光耦合器CTR会随着温度升高而降低。

例如下图中,在100℃环境温度下相对 CTR 会下降很多。
在这里插入图片描述
CTR 和温度之间的关系

如果电路使用的周期较长,最好还要考虑一下预期生命曲线。如下所示,随着设备老化,点击率会下降。
在这里插入图片描述
预期生命曲线

3、设置电路操作

这里必须要设计电路的工作点,为了使信息更丰富,可以参下面的电路。
在这里插入图片描述
设计电路的工作点

1)定义输出电平
上述电路可以被配置为在线性或饱和区域工作。

饱和时,Uout 节点理想为零,但线性高于零但低于 Ucc。当二极管侧没有偏置时,Uout 的电平与 Ucc 相同。

  • 因此,如果将电路设计为开关,则理想情况下,当光耦合器导通时,必须假设 UCE 或 Uout 为零。

  • 如果应用是线性的,则必须在设计中使用的 Uout 节点中定义特定电平。

2)定义 Rf 值

你可以自由选择该值。但是,在某些应用中需要注意。
大多数时候,Udd 源自数字电路或设备,例如 MCU 或 DSP。
如果是这样,不能超过数字电路或设备的电流额定值的方式设置 Rf 值。
对于 MCU 和 DSP,灌电流和源电流通常在 4mA 到 9mA 之间(其他一些可能会达到高于 9mA,在 Datasheet 中查看)。

假设额定电流最大仅为 4mA,则将实际正向电流最多设置为其 80%。

所以 Rf :

If= (Udd – Uf) / Rf

Rf > (Udd – Uf)/(80% x I 额定值)

(Uf为光耦的正向电压)

3)确定 Rc
定义 Rf 和正向电流后,即可确定 Rc 的值。

4)对于饱和度设置
( Ic / If ) < CTR 设备

Ic = (Ucc – UCEsat) / Rc

Rc > [ (Ucc –UCEsat ) / (CTR设备 x IF ) ]

5)对于线性设置
( Ic / If ) = CTR 设备

Ic = (Ucc – UCE) / Rc

Rc = [ ( Ucc – UCE ) / ( CTR设备 x If ) ]

三、光耦合器电路设计示例1-设计为开关

现在,应该上述光耦合器电路设计,为下面的电路提供值。
输出应提供逻辑低电平和逻辑高电平。
逻辑低电平是低于 0.8V 的任何电压,而逻辑高电平等于 Ucc。
电源 Ucc 为 5V,由具有 4mA 拉电流和灌电流能力的 MCU 提供。
光耦 CTR 为80%,二极管压降为0.7V。

在这里插入图片描述
光耦合器电路设计示例

1、选择射频值

Rf = [ ( Udd –Uf ) / ( 80% x I rating ) ]

Rf > [ ( 5V – 0.7V ) / ( 80% x 4mA ) ] = 1.34 kohm

我们可以将 Rf 设置为1.5k 标准值。

2、求解 If
If = [ ( 5V – 0.7V ) / 1.5 kohm ] = 2.87 mA

3、确定 Rc
Rc > [ (Ucc – UCEsat ) / ( CTR x If ) ] = [ ( 5V – 0V ) / ( 80% x 2.87mA ) ] = 2.18 kohm

我们假设最坏情况下 UCEsat 等于 0。现在最终电路的是
在这里插入图片描述

4、设计检查

我们将验证正向电流 If 是否不超过 MCU 的最大拉电流和灌电流。

If= [ ( 5V – 0.7V ) / 1.5 kohm ] = 2.87 mA

计算出的当前正向电流是安全的。

5、检查光耦是否能输出低信号

为了获得低信号,晶体管侧必须饱和。要知道晶体管是否真的会饱和,我们使用以下公式:

( Ic / If ) < CTR 设备

饱和期间集电极电流的计算:

Ic = 5V / 2.4 kohm = 2.08 mA

Ic/If = 2.08mA/2.87mA = 72.47%

器件 CTR 为 80%,因此晶体管可能会饱和。为了保证硬饱和,可以给集电极电阻增加更多的余量,比如说在计算值上加上 50%。
电路能提供高逻辑吗?可以,因为一旦移除 Udd,晶体管就会截止,Uout 节点将看到 Ucc 电平

四、光耦合器电路设计示例2-线性
提供电路值,使 Uout 节点具有 3V 电平。使用与上一示例相同的供应水平和其他水平。
在这里插入图片描述
线性工作状态

1、选择射频值
Rf > [ (Udd – Uf ) / ( 80% x I 额定值 ) ] = [ ( 5V – 0.7 ) / ( 80% x 4 mA ) ] = 1.34 kohm

我们可以将Rf 设置为1.5k 标准值。

2、求解 If
If = [ ( 5V – 0.7V ) / 1.5 kohm ] = 2.87 mA

3、确定 Rc
Rc = [ (Ucc –UCE ) / ( CRT x If ) ]

Uout 的指定电平为 3V 使得 UCE 等于 2V,所以

Rc = [ ( 5V – 2V ) / ( 80% x 2.87 mA) ] = 1.31 kohm

使用非常接近计算值的标准值。在本例中,我们将使用 1.3kohm。

4、检查
在这里插入图片描述
If = [ ( 5V – 0.7V ) / 1.5 kohm ] = 2.87 mA

Ic = CTR x If = 80% x 2.87 mA = 2.296 mA

Uout = Ic x Rc = 2.296 mA x 1.3 kohm = 2.984 V

结果U out 并不完全等于 3V,因为我们使用 1.3k 作为 Rc 值,而不是计算出的 1.31k。


转自----- 韵琳电子 公众号

### 光耦 CTR 电流传输比定义 光耦的CTR(Current Transfer Ratio),即电流传输比,是用来描述光耦控制特性的参数。它表示的是副边输出电流 \(I_O\) 和原边输入电流 \(I_F\) 的百分比关系[^2]。 具体来说,CTR 可以通过以下公式计算得出: \[ CTR = \frac{I_C}{I_F} \times 100\% \] 其中: - \(I_C\) 是副边晶体管集电极上的输出电流; - \(I_F\) 是发光二极管侧的输入驱动电流; 这个比例通常由制造商提供,并且会标注其典型值和最大值范围[^3]。 ### 如何计算光耦输入端电阻值 要计算光耦输入端所需的电阻值,则需考虑电源电压以及设定好的输入电流\(I_F\) 。假设已知供电电压为\(V_{DD}\),并希望设置LED的工作电流为某个特定数值比如\(I_F=10mA\) ,那么可以利用欧姆定律求得限流电阻R: \[ R=\frac{(V_{DD}-V_f)}{I_F} \] 这里\(V_f\)代表LED正向压降,在数据手册里也会给出相应规格[^1]。 ### 示例代码展示 以下是基于上述公式的Python实现用于帮助理解和验证这些计算过程的一个简单脚本: ```python def calculate_resistance(vdd, vf, if_current): """ Calculate the required resistance value for an optocoupler's input resistor. Parameters: vdd (float): Supply voltage. vf (float): Forward voltage drop across LED diode inside optocoupler. if_current (float): Desired forward current through LED in Amps. Returns: float: Resistance value needed to achieve specified IF at given VDD and VF conditions. """ r_value = (vdd - vf) / if_current return r_value # Example usage with typical values supply_voltage = 5.0 # Volts forward_voltage_drop = 1.2 # Volts as per datasheet example desired_forward_current = 0.010 # Amperes or 10 mAmps resistor_needed = calculate_resistance(supply_voltage, forward_voltage_drop, desired_forward_current) print(f"The calculated resistor value is {round(resistor_needed, 2)} Ohms.") ``` 此函数`calculate_resistance()`接受三个参数:供应电压(VDD), 发光电阻器前向电压差(VF),还有期望达到之前提到过的IF电流强度(单位安培). 输出结果将是满足条件下的精确电阻大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值