打印

求救:PIC16F506进入sleep后还有20多uA,怎么解决?

[复制链接]
2907|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
datouyuan|  楼主 | 2007-12-6 00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开始用PIC12F508做了个电路,功能正常,sleep后漏电小于0.1uA。
后来为了增加电池检测功能,改用PIC16F506做了个电路,功能完全正常,但sleep后漏电有20多uA。

和508的程序比,我做了如下处理:
1.模拟端口只用了AN2来检测电池电压。
2.没有用到的端口全设为输出。
3.进入sleep之前我已清零了CM1CON0、CM2CON0、VRCON寄存器,可漏电有20多uA。

PIC16F506的datasheet上说ADC进入Sleep后不消耗电能,比较器我又关闭了。

请大侠们指点一下,PIC16F506还会有那些情况使进入Sleep后的电流大于0.1uA。

相关帖子

沙发
yezhenyu| | 2007-12-6 08:47 | 只看该作者

ADC的脚怎么设置的?

使用特权

评论回复
板凳
ayb_ice| | 2007-12-6 09:53 | 只看该作者

应该是没有配置好,多看看数据datasheet

使用特权

评论回复
地板
datouyuan|  楼主 | 2007-12-7 19:12 | 只看该作者

漏电有20多uA的问题已解决。

前几天快翻烂了datasheet,没找出我程序的问题。

今天烧了个验证程序,程序如下:
CLRF    PORTB
MOVLW    (1<< RB3)    ;
TRIS    PORTB
CLRF    PORTC
MOVLW    0    ;
TRIS    PORTC
bcf      CM1CON0,C1ON
bcf      CM2CON0,C2ON
clrf     VRCON
sleep

仅在IC引脚RB3上接一个上拉电阻,测试,漏电确实小于0.1uA。

这太奇怪了,想了很久都想不通我的程序出了什么问题。后来抱着试试看的心态又烧了片,焊上去试,发现电流竟然小于0.1uA,符合要求了。

难道是PCB漏电,经过烙铁一烫就好了。我又把拆下的IC装到别的地方试,它还是有20多uA。难道是IC的问题,我又重烧了一下这片IC,装回去,发现IC也没问题。


这个电路两个月前搞的,PIC16F506又是我第一次用,我做了3块,当时发现就电流大,我以为是外围电路的问题,朋友急着要,而我又有其它事要忙,就让朋友拿了2块,这事就放在一边了。

在这期间我实在没有印象我改了程序,百思不得其解,机器是不可能出错,看来只有人出错了(我改了程序)。

以后改程序一定要把旧程序保留下来。看来只有找朋友把那两块板子要回来再分析了。

使用特权

评论回复
5
datouyuan|  楼主 | 2007-12-7 19:22 | 只看该作者

总结一下。

1.没有用到的端口全设为输出,(要设为输入的话,该脚必须接地或者VCC,这比设为输出麻烦多了)。
2.只要清零CM1CON0、CM2CON0、VRCON这3个寄存器,ADC不用考虑。

只要做到这两点,PIC16F506进入sleep后的电流就能小于0.1uA。

使用特权

评论回复
6
wolfererer| | 2007-12-8 08:56 | 只看该作者

有参考价值

使用特权

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

本版积分规则

31

主题

1083

帖子

9

粉丝