I/O口, 输入/输出, 用啥工作模式 ? ===STC32/STC8 答:如不考虑功耗 1,输出请设置成强推挽输出,20mA以上的驱动能力 ! 你来个干扰看能拿他咋样 ,他就不理你 !!! 2,输入请设置成高阻输入,默认施密特触发器输入 ! 高阻输入的阻抗是无穷大,至少 100兆欧以上,相当于接到空气,但有寄生电容的影响 打开内部4K上拉/或外部加10K上拉/或对方是强推挽输出 ====如对方是强推挽输出,就没必要打开内部的4K上拉,也没必要外部加上拉 ====输入口也可再并个小电容到地,一般没必要,软件反复多读几次也能解决 3,不用的I/O,最专业的做法:设置为【高阻输入 + 关闭数字输入】 这样浮空的I/O, 高阻输入模式,在省电模式时也不会耗电; 另外不小心短接到 MCU-VCC/GND 也不会烧掉,高阻输入 | 电流流不进来也流不出去 |
qizhixu 发表于 2024-8-30 13:57 我和你遇到同样问题,你解决了吗? |
lkc8210 发表于 2024-8-30 10:03 电源是3.3V,加了MOS管,Nmos放负极,Pmos正极,还是不行,并且发送数据还出错了 |
qizhixu 发表于 2024-8-29 15:02 24L01是3.3V的吧? 需要加开关管来断开24L01的电源 |
STC Mcu睡眠时IO不耗电的处理方法: 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_(); |
lkc8210 发表于 2024-8-29 10:11 我设置了准双向口,电流1.6微安,但是链接24L01后,电流就变大了,用NMOS管控制电源0V,没有用 |
2uA已经足够了 |
掉电模式,超级省电,特别是电池供电。 |
qizhixu 发表于 2024-8-29 08:25 全部引脚设为准双向 没用的引脚设高电平 有用的引脚保持和外界电平一致 |
gqzjl 发表于 2024-2-18 13:56 我也是,请问你解决没有 |
gqzjl 发表于 2024-2-18 13:56 STC测试的 应该是没有外围电路,单独芯片的功耗,有外围电路,那多余的功耗不能算在芯片头上 |
gqzjl 发表于 2024-2-18 14:37 在附录T,应用注意事项里。不止STC,我用过的国产芯片睡眠时都是要这样配置的,不懂STM的是不是这样 |
掉电定时器没有打开,电流应该是0.4微安,我测过, 掉电定时器打开了以后电流是1.8微安,测试电压3.0V。 |
qq475878026 发表于 2024-2-18 13:55 谢谢!这个在数据手册的那里找到的? |
szb314 发表于 2024-2-18 11:54 STC8H8K64U上电默认除了3.2、3.3两IO口之外,所有IO都是高阻 ![]() |
zycman 发表于 2024-2-18 11:31 最开始电流太大,超出万用表200uA档的量程了,只能用200mA档 |
所有IO改成高阻 再看看 2.1ua 和0.4ua差好多 |
感谢分享,关闭了额外耗电 |
你万用表测量的挡位前后都不一致的。你确定不是万用表量程问题导致? |