概要
现遇到一需求,需要把外部输入的24V信号转换为3.3V信号,交由STM32处理后再将3.3V信号转换为24V信号输出出去。于是想到利用三极管的开关特性,做信号电平的转化,并且一路信号通过两个LED具象化显示信号是否输入输出成功。
以下文章详细描述,在三极管作为开关元件时,其外围电阻的计算过程。
电路整体架构
这里的三极管选用的是MMBT3904贴片型三极管
外围电阻计算方法
由MMBT3904的芯片手册,我们找到其电气特性参数和静态特性图,如下:
由图一红框中的信息可知,该三极管基极-发射极饱和压降最大值为VBE=0.95V(硅管正常情况是略小于0.7V),集电极-发射极饱和压降最大值为VCE=0.3V(实际测量会小于0.3V)。该三极管为硅管,因此计算时我们取VBE=0.7V,VCE=0.3V。
信号的输入输出分别用两颗LED灯来具象化显示,这里输入选用蓝色的LED(正向电压2.8V,正向电流5mA,立创编号:C434433),输出选用橙色的LED(正向电压2V,正向电流5mA,立创编号:C84262)。
计算过程
- 输入端三极管参数选取
如图,+1是24V的输入信号,如果采用这种连接方式,那么LED的电流将由输入端提供,但现目前不确定信号输入端是否能够提供5mA以上的电流,所以采用下面这种方式,可避免输入端的影响。
且这种设计方案能够实现输入信号、LED以及输出信号为同步逻辑,即输入+1为高电平,Q2导通,灯亮,Q4截止,输出IN1为高电平;输入为低电平,Q2截止,灯灭,Q4导通,输出IN1为低电平。(但实际测试中Q2截止,LED也会亮,只不过亮度会很弱)
该LED接在集电极,那么IC1应该为5mA,三极管作为开关电路使用,须使三极管工作在饱和区,因此VCE取0.3V,将IC,VCE两点标定在静态特性图上连接起来,取饱和区中Ib=200uA(此时增益系数为25),增益系数应该取较小值,以保证三极管处于饱和状态。两个三极管参数选取一样。又STM32的IO灌电流为20mA,而ib=200uA<<20mA,故不会对单片机造成伤害。
2. 输入端外围电阻阻值计算
由上图,我们从右往左计算。
R9为集电极电阻,其阻值为(3.3V-VCE)/Ic=(3.3-0.3)/5mA=600Ω,取常用阻值618Ω;
R3为集电极电阻,当+1信号输入时,可忽略第二个三极管电路部分,因此其阻值为(5-VCE-VLED)/Ic=(5-0.3-2.8)/5mA=380Ω,选取常用阻值360Ω;
R11为下拉电阻,保证在没有24V信号输入时,三极管基极电流为0,三极管关断,这里直接选取100KΩ。此电阻两端电压等于VBE,因此流经该电阻电流IR11为0.7/100KΩ=7uA;
R7为基极电阻,其阻值为(24-VBE)/(Ib+IR11)=(24-0.7)/(200uA+7uA)=112.5KΩ,选取采用阻值110KΩ。
R8为基极电阻,而当Q2截止时,需要使Ib2=200uA,因此R8=(5-VLED-Ib2*R3)/Ib2=10.64KΩ,这里选取9.1KΩ。
至此,输入端外围电阻阻值计算完毕。
3. 输出端三极管参数选取
设计同输入端一样,由于三极管我们接集电极一段,因此Ib仍为5mA,Ic仍选200uA,OUT1为STM32输出的3.3V信号。两个三极管参数选取相同,因此计算方法不变,与上面输入端一致。
最终,当观察到一路信号的蓝灯和橙灯同时亮起,即可证明该信号输入输出无异常。
4. 实际测量参数对比
拿到板子后让单片机输出输出一个高电平OUT1,实际测量参数如下:
当Q1导通Q2截止时:
LED1电压:1.89V;R2两端电压:2.89V,因此Ic1=4.25mA。
R4两端电压:3.3V,因此Ib1=0.22mA(增益系数为19,符合上面理论计算范围内)
Q1:Vce=0.016V,Vbe=0.657V,根据此真实测量值,三极管处于完全饱和状态。
当Q1截止Q2导通时:
LED1电压:1.739V;R2两端电压0.105V,R5两端电压:2.324V,因此Ib2=0.15mA。
R6两端电压:3.28V,因此Ic2=4.25mA。(增益系数为16,符合理论计算范围内)
Q2:Vce=0.016V,Vbe=0.657V,根据此真实测量值,三极管处于完全饱和状态。
小结
该文章记录了三极管做开关元件时,三极管参数选取以及外围电阻的计算过程。并且改进了三极管带负载的电路,采用两个三极管,既完成了电平信号的转换,也使得负载(这里指LED)电路独立出来,在外部输入输出端不明确的情况下,不用依赖外部输入输出端。
当然,如果外部输入输出明确,电流足够驱动负载,建议采用一个三极管就好了。