【经验分享】I/O口如何设置, 才能在掉电模式下功耗最低? | 是以讹传讹
有文章推荐, 将I/O口设置为高阻输入模式, 严格的说, 这个用法不能算错, 但有个很严格的前提,
就是必须保证所有设置为高阻输入模式的I/O口, 外接固定电平(高或低), 不能浮空, 否则, 由于空间
电磁波干扰, 引起高阻输入模式的I/O口电平波动, 产生(增加)额外的电流, 使得总电流居高不下.
一般情况下, 用户系统做不到这一点(比如输出直接驱动, 当输出时没问题, 改设置为高阻输入模式就出问题了).
因此, 比较保守的做法, 就是所有I/O口, 设置为准双向模式, 并且置I/O口输出高电平, 这样,掉电模式功耗才能降到最很低.
关闭了数字输入也会增加电流是么{:4_194:} 老许,这个以我们的专业推荐设置为准,其他都是不专业的讲法
===MCU如何用,I/O 如何用还是我们专业
===不专业的讲法,教课书讲了几十年的数字高阻输入不能浮空
皇帝的新装,错的 !!!
因为编书的不知到STC还有专业的【关闭数字输入 + 仅为高阻输入】
我们的水平是编著,不是编,认真学习下下面的应用场景
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前:
===主时钟停振/省电模式,STC8/STC32系列如何省电
1,不用的I/O口,就是浮空的I/O, 设置为高阻输入,并关闭数字输入,也不拍短路了
2,用作模拟输入的口,一般是配置成高阻输入,也必须关闭数字输入
===指用作 ADCx外部模拟输入的I/O
===指用作 比较器外部模拟输入的I/O
===省电模式时,他外部来个 1.5V 附近变化的电压,可能就会产生额外的功耗
3,用作高阻输入的I/O,也必须关闭数字输入
如你I/O外部的输入电平Vx在 【不是逻辑高的电压,也不是逻辑低的电压】
这时内部数字输入电路就会有翻转,就会有几十uA的功耗
关闭数字输入,就不会有功耗
4,I/O外部是高电平的,你如要工作在输出,你就置高
I/O外部是低电平的,你如要工作在输出,你就置低
否则两边的电平电位不同,就会水往低处走,有电流流进或流出
如你I/O外部的输入电平Vx在 MCU_Gnd < Vx < MCU_VCC
这时工作在输出,也会有电流流动
所以进省电模式前,必须改设置为高阻输入,并关闭数字输入
5,如有启动RTC/实时时钟功能,在省电时工作的MCU, 【P1.7/XTALI, P1.6/XTALO】
【P1.7/XTALI, P1.6/XTALO】- 接外部32768-RTC晶振,
这2个口上电默认是高阻输入,可用户程序配置为高阻输入
这个场景有外部32768晶振在振荡,省电模式时必须保持高阻输入,
===并必须关闭数字输入,否则浮空的口,外部不停的在变化,就会产生额外的功耗
6,MCU如有 ADC_VRef+, ADC_VRef+ 不能浮空,否则也会产生额外的电流
总之,省电模式时,I/O尽量 高阻输入并关闭数字输入
好的, 学习了
以上总结齐全,等有空我实测一下, I/O全部高阻输入并关闭数字输入pk 所有I/O口, 全部设置为准双向模式, 并且置I/O口输出高电平 .
两者 电流 之 差别.
对 STC 早期产品 (非 STC8/32系列) , 包括早期的 STC8A, 无 PxIE 寄存器, 此法依然有效, 可把功耗降到最低. 另外, 现在 I/O口输出直接驱动 MOS管也常用.
如将 此 输出 I/O口 设置为 高阻输入并关闭数字输入, 意味着外部 MOS管输入 浮空, 可能会产生一系列意外....
请设计时重点加以考虑. LAOXU 发表于 2024-4-23 04:48
另外, 现在 I/O口输出直接驱动 MOS管也常用.
如将 此 输出 I/O口 设置为 高阻输入并关闭数字输入, 意味着 ...
上面不是说的时 没有用到的IO浮空的IO 要这样设置的?{:4_200:} _奶咖君_ 发表于 2024-4-23 09:43
上面不是说的时 没有用到的IO浮空的IO 要这样设置的?
I/O口输出也耗电,既然要掉电模式下功耗最低, 那 I/O口输出必须也要考虑进去, 进一步降低功耗. 谢谢分享,学习了
页:
[1]
2