[MCU] PIC16F1518 复用I/O口(接PNP三极管)输出高只有3.4V

[复制链接]
 楼主| robin_chen559 发表于 2014-8-19 14:13 | 显示全部楼层 |阅读模式
本帖最后由 robin_chen559 于 2014-8-19 19:49 编辑

端口初始化
TRISA  = 0b00000000;     //设置端口A输出
ANSELA = 0b00000000;     //数字IO模式

已经设置为数字IO输出了呀



源程序及仿真包:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yklstudent 发表于 2014-8-19 16:59 | 显示全部楼层
多半是你自己的问题
 楼主| robin_chen559 发表于 2014-8-19 19:48 | 显示全部楼层
yklstudent 发表于 2014-8-19 16:59
多半是你自己的问题

或许吧,规格书仔细看下,慢慢在找~~~
gx_huang 发表于 2014-8-19 20:04 | 显示全部楼层
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够?
ningling_21 发表于 2014-8-19 20:20 | 显示全部楼层
IO和三极管断开时输出高有多少伏?
lyjian 发表于 2014-8-19 20:40 来自手机 | 显示全部楼层
16F518的供电几伏?
 楼主| robin_chen559 发表于 2014-8-19 20:59 | 显示全部楼层
IO 3.4V PNP三极管 C极电压2.3V
 楼主| robin_chen559 发表于 2014-8-19 21:18 | 显示全部楼层
lyjian 发表于 2014-8-19 20:40
16F518的供电几伏?

正常电压5V 给PNP三极管E脚供电的也是5V
RA4同样配置输出是5V,这才感觉有些奇怪~~~
xyz1015231411 发表于 2014-8-19 23:32 | 显示全部楼层
进来学习一下
 楼主| robin_chen559 发表于 2014-8-20 12:16 | 显示全部楼层
gx_huang 发表于 2014-8-19 20:04
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够? ...

两排LED分开供电 分别由RA4 RA5控制的

5V 通过PNP给LED供电

两个口的配置是一样的,电阻三极管也是一样的

但是RA4是T0CKI复用的 出现了这个问题

而RA5是正常的 高电平输出5V
 楼主| robin_chen559 发表于 2014-8-20 12:19 | 显示全部楼层
gx_huang 发表于 2014-8-19 20:04
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够? ...

这边有两排LED 分别是通过RA4 RA5控制PNP三级管给供电的

RA4和T0CKI复用 出现了这个问题

RA5是正常的 高电平输出的是5V

看特殊寄存器也没有发现专门对RA4配置的呀  有些奇怪
gx_huang 发表于 2014-8-20 12:33 | 显示全部楼层
robin_chen559 发表于 2014-8-20 12:16
两排LED分开供电 分别由RA4 RA5控制的

5V 通过PNP给LED供电

是否没有初始化ANSELA/B这个寄存器?
你肯定没有仔细看数据手册,关于GPIO这部分的,有参考代码的。
gx_huang 发表于 2014-8-20 12:38 | 显示全部楼层
参考:
        PORTA=0xff;
        PORTB=0xc0;
        PORTC=0xff;
        ANSELA=0x21;
        ANSELB=0x00;
        TRISA=0x3f;
        TRISB=0xf0;
        TRISC=0x90;
        //1=IN,0=OUT
cjseng 发表于 2014-8-20 14:48 | 显示全部楼层
本帖最后由 cjseng 于 2014-8-20 14:53 编辑

三极管的放大倍数是多少?
计算一下好了,基极电流约0.4-0.5mA,放大倍数100倍的话,输出也就40-50mA,在500欧姆电阻上产生的压降约2-2.5v,加上光耦的导通压降1.1-1.3V,加起来差不多就是3.4V啊。
实际上40-50mA的电流,对于光耦输入来说,已经快到极限了。
这个应用,三极管都不是必须的,直接用IO驱动光耦就行了。
 楼主| robin_chen559 发表于 2014-8-20 15:26 | 显示全部楼层
cjseng 发表于 2014-8-20 14:48
三极管的放大倍数是多少?
计算一下好了,基极电流约0.4-0.5mA,放大倍数100倍的话,输出也就40-50mA,在50 ...

恩 是的

不过问题不是驱不动 是关不掉

输出1的时候应该PNP管截止的 现在关不掉
 楼主| robin_chen559 发表于 2014-8-20 15:28 | 显示全部楼层
gx_huang 发表于 2014-8-20 12:38
参考:
        PORTA=0xff;
        PORTB=0xc0;

好 谢谢 试试看~~~
cjseng 发表于 2014-8-20 17:03 | 显示全部楼层
关不掉的话,在三极管的基极跟发射极之间加一个电阻试试。
 楼主| robin_chen559 发表于 2014-8-20 17:10 | 显示全部楼层
cjseng 发表于 2014-8-20 17:03
关不掉的话,在三极管的基极跟发射极之间加一个电阻试试。

这个板上是有的,4.7K的电阻,示意图上没有,谢谢~~~~
cjseng 发表于 2014-8-20 17:22 | 显示全部楼层
负载是什么?
如果负载很轻的话,RC吸收电路也会漏电的。
 楼主| robin_chen559 发表于 2014-8-20 19:07 | 显示全部楼层
cjseng 发表于 2014-8-20 17:22
负载是什么?
如果负载很轻的话,RC吸收电路也会漏电的。

恩,这个初级光耦那边RA5没有截止,输出1 应该是5V截止的,现在才有3.4V,光耦VF是打开着的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

306

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部