光耦上拉电阻选择

光耦合器(opticalcoupler,英文缩写为OC)亦称光电隔离器或光电耦合器,简称光耦。内部原理如下图所示:

在这里插入图片描述

简易的说明原理:通过将传输的信号通过左侧的发光二极管转化为光信号,再由右侧光敏三极管将光信号转换为电信号。此处探究的是普通光耦(低速,非线性;是的,也就是最便宜的那种),一般的光耦隔离电压约为6KV,也就是对于静电的抵抗能力(8KV及以上)不强,使用的时候还是需要考虑静电相关的保护措施。

调节光耦的上下拉电阻可以对光耦的电流转换率(CTR)的进行适配,在保证信号传输的时候有足够的CTR比率,保证三极管侧的电平能拉到底。在此基础上我们来看前后匹配电阻对信号传输的延迟情况。

*CTR:光耦二极管导通的时候,三极管侧流过的最大电流与二极管导通电流的比值(百分比)。

以下是使用光耦通讯的最基础(价格最低ヽ( ̄▽ ̄)و)的电路:

在这里插入图片描述

可以看到如上图所示的光耦,输入侧和输出侧采用的上拉电阻为510Ω,这对于使用这款光耦通讯来说是一个适合的阻值,不同的光耦存在着新能差异不能说所有的都适用。但是采用上图所示电路有一个问题,如下图所示:

在这里插入图片描述

黄色的为输入波形,绿色为输出波形,是的从时序上看输出波形相对输入延时了20us,这在对信号要求不高的场景是可以的。但是对于通讯速率大于9600bps的通讯受到信号完整性的影响。这其中的原因是光耦内部

的三极管等效为电容,和上拉电阻构成了RC电路,这部分延迟就是源自于RC的充电效应(或者说是用来激活光耦内部三极管)。如上图所示,100us的信号经过光耦后变为约为80us的信号,这是值得考虑的,尤其是

信号的速率进一步提高的情况下,尤其是嵌入式领域MCU对于高电平的信号采集有一定的时间需求。通过变化光耦前后端的电阻,再测算输出延迟时间,有以下结论*:

在一定范围内(光耦不烧毁),增大光耦二极管侧的电阻、或者减小三极管侧的上拉电阻都能使的输出波形的延迟减小。

那么有没有别的方式能够使得普通光耦摆脱上拉电阻下拉电阻的困扰?

有的,如下图,那就是使用光耦控制的三极管的通断,将上拉电阻降至100Ω左右,基本上此时的通讯能够保证2us内的延迟。

2us的延迟基本上已经接近高速光耦的状态了。

在这里插入图片描述

### 回答1: STM32可以通过使用光耦来接收和转换开关量信号。 光耦是一种光电转换器件,由光电二极管和光电三极管组成。当外部信号作用于光电二极管时,会引起光电三极管的电流变化,从而实现信号的隔离和转换。 要通过光耦接收开关量信号,首先需要将开关量信号接入光电二极管的输入端。当开关闭合时,会有电流流过光电二极管,进而引起光电三极管输出端的电流变化。通过连接光电三极管的输出端到STM32的GPIO输入引脚,即可将开关量信号输入到STM32。 为了确保信号的稳定性和可靠性,通常会在光耦的输入端加入电阻。这可以防止潜在的电流过大和电压过高问题。此外,还可以设置上拉或下拉电阻,以确保开关量信号在未连接电源时,可以稳定地保持高或低电平。 在STM32上,可以通过配置GPIO引脚的输入模式为浮空输入或上/下拉输入来适配光耦的输出信号。浮空输入指的是引脚没有连接到外部电源,可以接收外部信号的变化。上拉或下拉输入则是在引脚上加上一个电阻,使引脚在未连接信号时,保持高或低电平。 通过光耦输入开关量信号,可以实现STM32与外部设备的隔离,保护STM32的安全性。同时,光耦还可以扩展STM32的输入端口数量,增加系统的灵活性和可拓展性。 ### 回答2: STM32通过光耦来输入开关量信号,主要是为了实现电气隔离和增强系统稳定性。光耦是一种具有光学隔离功能的器件,它通过光电转换原理将电气信号转换为光信号,在输入信号和输出信号之间建立一个电气隔离的界面。使用光耦可以有效地避免输入信号与STM32之间的电气噪声干扰和信号回馈问题。 在将开关量信号接入STM32之前,需要将光耦的输入端连接到外部开关量信号源上,通常通过一个阻值来限制输入电流,以保证输入光电二极管的正常工作状态。当外部开关量信号发生变化时,光电二极管的发光二极管将发出光信号,通过光耦中的光电晶体管和输出电路,将光信号转换为相应的电信号。 接下来,将光耦的输出端与STM32的IO口进行连接。在STM32的GPIO配置中,需要将对应的IO口设置为输入模式,并启用内部上拉或下拉电阻,以保证输入信号的稳定性。当光耦的输出电压变化时,STM32的IO口可以通过读取对应的寄存器来获取开关量信号的状态,从而判断外部信号是开启还是关闭。 值得注意的是,使用光耦输入开关量信号时,需要根据电压和电流的要求选择合适的光耦器件,并严格按照其规格书中的参数工作,以确保系统的稳定性和可靠性。另外,还需要合理设计光耦输入电路的布局,减小电磁干扰和电气回路的共振问题,以提高系统的抗干扰能力和信号采集精确度。 ### 回答3: STM32可以通过光耦输入开关量信号,光耦是指光电输入输出装置,可以将外部的开关量信号转换为光学信号进行传输。 在使用STM32连接光耦时,需要先确定电路连接方式,通常光耦的光电晶体管的发光二极管端连接外部电路的输入信号,而另一端的光电二极管接入STM32的GPIO引脚。 光耦在接收到外部信号时,会根据输入信号的状态转换发光二极管的亮灭状态,从而产生相应的光学信号。这个信号会经过光电二极管的耦合,传输到STM32的GPIO引脚上。 STM32的GPIO引脚可以设置为输入模式,通过配置输入模式的参数,可以检测光耦传输给引脚的信号状态。当光电二极管接收到高电平信号时,相应的GPIO引脚会检测到高电平信号。反之,当光电二极管接收到低电平信号时,GPIO引脚会检测到低电平信号。 通过读取相应GPIO引脚的输入状态,可以获取光耦传输的开关量信号在STM32中的状态。根据这个状态,可以进行相应的处理,如触发中断、控制其他设备等。 通过光耦输入开关量信号可以实现STM32与外部设备的连接,实现开关量信号的检测和控制,广泛应用于工业自动化控制、电子产品和仪器仪表等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值