打印
[资料干货]

成都控制板开发:STC单片机IO引脚驱动不了光耦PC817的原因及解决(带PC817参数及驱动电路)

[复制链接]
198|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yonko|  楼主 | 2023-3-31 22:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    这是一个单片机通过光耦来信号隔离,驱动外部负载的电路。单片机为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
修改的原则就是,能动程序就不动电路,毕竟动电路要花钱。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

114

主题

227

帖子

0

粉丝