无花果1986 发表于 2026-3-27 15:49:53

STC8G1K08单片机掉电模式耗电问题

睡眠时IO不耗电的处理方法:
用这颗单片机做了个检测开关状态的板子,通过串口与另一个笙泉的单片机进行串口通讯,STC单片机有一颗3.6V备用电池,大多数时间处于掉电模式,当I/O口开关断开时,退出掉电模式,并且串口发送数据,现在问题是,笙泉单片机断电后,STC单片机供电的备用电池耗电太快,应该是串口一直在耗电(如果串口不接笙泉单片机,功耗就很低),怎么解决这个问题?在论坛里搜了关于掉电模式的设置,不知道以下几个方法能不能解决。
1、对于设置为准双向口、推挽输出、开漏输出低电平的IO,IO本身不耗电,输出电平与外部电路配合成外部电路不耗电的方式即可。

2、设置为高阻或开漏输出高电平的IO,如果悬空,则会因为输入状态不确定导致有电流,以下两种方式任选一种:
    A、IO口接一个确定的高电平(电压高于VDD-0.3)或低电平(电压低于0.3V),否则耗电。
    B、将IO口对应的数字输入功能关闭(对于STC8系列、STC32系列)。
       比如关闭P1.0、P1.1的数字输入:
         P_SW2 |= 0x80;   //允许操作扩展寄存器
         P1IE   = ~0x03;//将P1.0 P1.1的数字输入功能关闭

3、睡眠前,禁止ADC(如果已经允许的话),禁止模拟比较器(如果已经允许的话)。

4、最好在主程序进入睡眠,至少要3个空操作(NOP)。
   PCON |= 0x02;
   _nop_();
   _nop_();
   _nop_();

lcwswust 发表于 2026-3-27 16:00:45

方法就那些,实践去检验

无花果1986 发表于 6 天前

现在现象是,STC单片机如果不用串口连接外部的单片机,掉电模式,功耗只有1uA左右,一但接了外部的单片机串口,功耗就飙升到80uA了,这种一般怎么处理。

lcwswust 发表于 5 天前

无花果1986 发表于 2026-3-29 09:00
现在现象是,STC单片机如果不用串口连接外部的单片机,掉电模式,功耗只有1uA左右,一但接了外部的单片机串 ...
你要回复我,就点击我所在楼层的“回复”,我能收到通知,不然就是回复你自己了。

二者串口之间存在电压差是吧,你看下第1条,“输出电平与外部电路配合成外部电路不耗电的方式即可”

无花果1986 发表于 5 天前

lcwswust 发表于 2026-3-30 14:19
你要回复我,就点击我所在楼层的“回复”,我能收到通知,不然就是回复你自己了。

二者串口之间存在电压 ...

我是用STC单片机做了一个独立供电的小板子,这个小板子有备用电池,然后通过串口连接到电子秤的串口,当电子秤开机时,会给STC这个小板子充电,这时候不用考虑功耗,但是当电子秤不开机的时候,STC的这个小板子需要检测IO口上连接的一个开关状态,并记录电子秤关机时开关是否被打开过,我前面测试功耗,都是没有连接电子秤的串口测试的,然后连接到电子秤串口才发现,电子秤不开机的时候,STC单片机这个板子功耗与没连接电子秤串口的功耗差很多,造成备用电池供电时间与原先设计的差很多,就是想了解下有没有办法能降低连接电子秤串口后的功耗。

lcwswust 发表于 4 天前

无花果1986 发表于 2026-3-30 21:48
我是用STC单片机做了一个独立供电的小板子,这个小板子有备用电池,然后通过串口连接到电子秤的串口,当 ...
你猜一下,会不会因为单片机这边的rxd\txd都是高电平(上拉)、被电子秤那一边给拉低,所以有较大电流消耗?

无花果1986 发表于 4 天前

lcwswust 发表于 2026-3-31 10:30
你猜一下,会不会因为单片机这边的rxd\txd都是高电平(上拉)、被电子秤那一边给拉低,所以有较大电流消耗? ...

肯定是和电子秤单片机串口的IO内部结构有关,现在想怎么能解决这个问题,不然功耗太大。

灰太狼8888 发表于 4 天前

休眠时切换到高阻态?

无花果1986 发表于 前天 09:28

灰太狼8888 发表于 2026-3-31 22:57
休眠时切换到高阻态?

高阻状态后,无法通过串口唤醒了,这样会永远卡死在那边

灰太狼8888 发表于 前天 21:11

无花果1986 发表于 2026-4-2 09:28
高阻状态后,无法通过串口唤醒了,这样会永远卡死在那边

不会吧,高阻态不是一样会随着输入信号变化吗?只是没有驱动能力而矣。
页: [1] 2
查看完整版本: STC8G1K08单片机掉电模式耗电问题