STC单片机IO引脚驱动不了光耦PC817的原因及解决办法

电子说

1.3w人已加入

描述

这是一个单片机通过光耦来信号隔离,驱动外部负载的电路。单片机为STC15系列,光耦为PC817,如图1,光耦的阳极输入端接到单片机的P20-P23引脚,光耦的输出DJ1-DJ4接到外部电路。

但是在改变P20的电平时却出现了问题,并不能改变DJ1的电平,怎么回事呢?

光耦隔离

1、是限流电阻的问题吗?

先看看光耦的参数表。

光耦隔离

光耦隔离

由图2和图3可知,PC817输入侧的最大允许电流为50mA, 并且只需让输入侧电流大于3.2mA就能让光耦工作。

光耦隔离

由图 4可知,光耦输入侧光电二极管的压降为1.2V,接到5V单片机后,一般需加限流电阻,限流电阻最大值R1=(5V-1.2V)/3.2mA=1.18KΩ,限流电阻最小值R2=(5V-1.2V)/50mA=76Ω,那么图 1中选择的限流电阻为660Ω,是合适的。

那么,又是什么原因导致光耦不能被控制呢呢?再看看STC15单片机引脚的参数。

2、STC15单片机P2引脚的参数

光耦隔离

看图5,原来,STC15单片机的P2引脚上电默认为准双向口模式,灌电流可达20mA,但是拉电流只有270uA, 那么当P2引脚输出1时,是不可能达到PC817需要的3.2mA的,那么在这个准双向口模式下,不能驱动光耦。

3、该怎么解决呢?

**3.1 **方法1:设置P20-P23引脚为推挽输出模式

将对应的P20-P23引脚设置为推挽输出模式,那么该引脚的输出电流最大可达20毫安,可满足驱动光耦的要求。

要改变P2引脚的模式只需设置寄存器P2M1, P2M0即可。

**3.2 **方法2:将光耦输入侧改为灌电流电路

光耦隔离

如图 6,将光耦输入侧的阳极接电源正极,阴极接入单片机的引脚,形成灌电流的电路,那么在准双向口的模式下,STC15单片机也能驱动光耦。

当然,可能不止STC15单片机有这个问题,其他也许也有,具体需要查各个单片机的手册。如有单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,软件、APP开发设计定制需要,可联系 Q:2531二六3726

修改的原则就是,能动程序就不动电路,毕竟动电路要花钱。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分