搜索
bottom↓
回复: 149

不用的IO口怎样设置让CPU最节能

[复制链接]

出0入0汤圆

发表于 2005-8-1 16:54:27 | 显示全部楼层 |阅读模式
如题

出0入0汤圆

发表于 2005-8-1 17:29:29 | 显示全部楼层
设置成输入口,且用小电阻(几K)上拉或下拉。

----------------------------------------

上、下拉电阻不能太大,否则端口内部的寄生电荷会引起振荡,使功耗加大。

----------------------------------------

光设置成输出口是无效的,上电时I/O默认输入,不加上拉或下拉会使复位过程电流增加。

出0入0汤圆

 楼主| 发表于 2005-8-1 17:38:22 | 显示全部楼层
一定要外加上拉电阻吗?

将DDRX设成0,PORTX设成1使能上拉电阻不行吗?

出0入0汤圆

发表于 2005-8-2 08:31:20 | 显示全部楼层
复位过程中,I/O是高阻态,是不能使能内部上拉的。

----------------------------------------------

我曾做过的一个产品,由于上电电流受限,在加或不加上(下)拉或者加多大上(下)拉电阻,对片子的复位电流的影响是不同的,差别在几个mA量级。成品的不合格率有时只有百分之几,但仔细分析不合格的产品,片子本身是没问题(可能与合格品在内部电路特性上存在差异,寄生电荷的影响有所不同),通过改变外加上(下)拉电阻的大小,成品的合格率就能达到百分之百。

出0入0汤圆

发表于 2005-8-2 08:57:22 | 显示全部楼层
楼上正解。



退出复位后,内部的上拉电阻就能起作用了。

如果上电的电流不受限,可以省略外部的上拉电阻。

不过由于复位时,IO状态不确定,如果外部负载是继电器等,外部的上/下拉电阻还是不能省的。

出0入0汤圆

 楼主| 发表于 2005-8-2 09:34:32 | 显示全部楼层
谢谢两位的宝贵经验。

出0入0汤圆

发表于 2006-6-24 00:04:00 | 显示全部楼层
都说得不正确,不用的设置为:DDRX=00;PORTX=FF;

对于已使用的则设置为:DDRX=00;PORTX=00如使用了PA0作为输入,则

如下设置:DDRA=00;PORTA=FE;

只有这样才是最省电的,由其是在休眠模式下,我用过ATMEGA128进入省电模式时可到1.5uA.

出0入0汤圆

发表于 2006-6-25 23:47:14 | 显示全部楼层
不用设,也就没有消耗了

出0入0汤圆

发表于 2006-7-20 17:15:43 | 显示全部楼层
按照6楼所说,不用的IO应设成输入(DDRX=00),而且使能内部上拉(PORTX=FF),AVR内部上拉20-50K,还是要耗一定电流,我觉的禁止内部上拉,然后引脚接地更省电。对于楼主描述的已使用的引脚的设置,不是太明白。是已使用的引脚就必须禁止内部上拉(如使用了PA0作为输入,则如下设置:DDRA=00;PORTA=FE)才省电吗?

出0入0汤圆

发表于 2006-7-21 00:47:08 | 显示全部楼层
6,7,8多不对,我在1楼的回答是正解,我是作过试验的



6楼没考虑复位过程

7楼完全不对

8 楼如没有数据支持就属臆想了,上拉消耗的电流不一定比下拉多,这与I/O内部电路有关,需要实际测量才能知道。但我知道TTL电路中上拉消耗的电流就比下拉少,所以以前用74LS时作输入时都是上拉的。

出0入0汤圆

发表于 2006-7-21 01:14:17 | 显示全部楼层
抄一段ATMEGA32中文手册上的说明:(第52页)

"未连接引脚的处理:

如果有引脚未被使用,建议给这些引脚赋予一个确定电平。虽然如上文所述,在深层休眠

模式下大多数数字输入被禁用,但还是需要避免因引脚没有确定的电平而造成悬空引脚

在其它数字输入使能模式( 复位、工作模式、空闲模式) 消耗电流。

最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时

上拉电阻将被禁用。如果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不

推荐直接将未用引脚与VCC 或GND 连接,因为这样可能会在引脚偶然作为输出时出现冲

击电流。"

出0入0汤圆

发表于 2006-8-18 11:42:42 | 显示全部楼层
如果是输出口,置低电平,但端口悬空(通过按键连接到扫描电路),这样会不会消耗较多电流?

偶正在用ATtiny16做一个电池供电的东西,休眠电流大(100多uA),没有解决办法的思路,郁闷啊!

出0入0汤圆

发表于 2006-8-18 13:17:09 | 显示全部楼层
Y

出0入0汤圆

发表于 2006-8-18 14:02:35 | 显示全部楼层
根据功耗的公式,降低功耗主要是降低工作电压,工作频率,减少CMOS门电路翻转的次数,关闭无用的功能模块



对于无用的IO设成输入是不明智的,当有外部干扰时将引起IO信号翻转,增加功耗,更多的是设置为输出状态(高低都是次要的,里面是MOS管,输出高低没有什么分别),并给其明确的电平状态,PIC里面是推荐直接接到VCC或GND,当然具体情况还要具体分析,不能一概而论

出0入0汤圆

发表于 2006-8-20 16:38:19 | 显示全部楼层
这事难道没有定论??

出0入0汤圆

发表于 2006-11-17 17:10:03 | 显示全部楼层
12楼正解!

我用的是88,不用的IO口都悬空,设置成输出,高电平

出0入0汤圆

发表于 2006-11-17 20:34:44 | 显示全部楼层
感觉3、4、10楼说的比较好,上电复位过程的不确定状态是要注意的。

不过12楼说的好像也有点道理,有没有人证实一下。

出0入0汤圆

发表于 2006-11-18 15:14:14 | 显示全部楼层
好像都没有一个比较权威的说法,只有动手试验才是真知
头像被屏蔽

出0入0汤圆

发表于 2006-11-20 10:39:55 | 显示全部楼层
设为输出时,由于要下拉内部MOS管,所以内部上拉电阻要耗电流 ??



这是51的方法,AVR做输出时根本不存在内部上拉电阻。



对于AVR

1 作输出,如果外部悬空,高低均可。如果有下拉的负载,则输出低电平,上拉反之

2 作输入,确保不能悬空和电平不要在1/2VCC附近,可以内部上拉/外部上拉/外部下拉。

出0入0汤圆

发表于 2006-11-26 18:45:20 | 显示全部楼层
newbie 描述完全正确.



我做的电池供电产品就是按newbie描述处理的,可以做到休眠<1ua,按键唤醒开始工作.

出0入0汤圆

发表于 2006-12-24 19:50:44 | 显示全部楼层
输出,高电平!

出0入0汤圆

发表于 2007-4-25 08:46:53 | 显示全部楼层
设置成高阻态输入。这是华为公司的建议。

出0入0汤圆

发表于 2007-4-25 08:48:40 | 显示全部楼层
设置成高阻态输入。这是华为公司的建议。

出0入0汤圆

发表于 2007-4-25 09:04:03 | 显示全部楼层
21楼:你说:

---------------------

我做的电池供电产品就是按newbie描述处理的,可以做到休眠<1ua,按键唤醒开始工作

---------------------

你用的是掉电模式吧?即使是这个模式,也和DataSheet不对呀?<1ua貌似不可能的

出0入4汤圆

发表于 2007-4-25 13:18:52 | 显示全部楼层
1uA估计要用430的片子才能达到这种效果,除非你的应用只有按键处理,其他什么都不做

出0入0汤圆

发表于 2008-3-4 09:24:11 | 显示全部楼层
得顶起来,谢谢!

出0入46汤圆

发表于 2008-3-4 17:29:55 | 显示全部楼层
好!

出0入0汤圆

发表于 2008-3-21 19:35:19 | 显示全部楼层
其实很简单,随便拿个目标板用微安表测试一下就有了,可以多个口同时改变成上面的师傅说的不同状态,这实验最多1个小时,那你的结论就是最正确的了.明天我就做这实验.

出0入0汤圆

发表于 2008-3-22 00:02:44 | 显示全部楼层
M48掉电模式就是<1uA,实际测试过

出0入0汤圆

发表于 2008-3-22 00:03:48 | 显示全部楼层
M48掉电模式就是<1uA,实际测试过
补充一下,VCC=3.0V

出0入0汤圆

发表于 2008-4-1 11:42:18 | 显示全部楼层
从硬件看,AVR的IO是COMS型结构,IO引脚编程为高电或低电平,输入或输出都无所为,
要功耗最小,必须保证单片机没用到的引脚没有电流流出或流入,未用的引脚不要接任何负载!
W=U*I

出0入0汤圆

发表于 2008-4-1 11:47:21 | 显示全部楼层
如果说用AVR控制继电器,继电器吸合电流是多少?还会介意那么几毫安吗?

出0入0汤圆

发表于 2008-4-1 14:43:05 | 显示全部楼层
借LZ问下;
    要使功耗达到更小;请问下,如接外部晶振的PB6/7,应设置为输出么?要内部上拉么?还有做串口通讯用的PD0/1,及,做SPI,TWI接口用的端口该如何来设置DDR和PORT;还是DDR=0;PORT=0;

出0入0汤圆

发表于 2008-4-2 09:19:20 | 显示全部楼层
记录!

出0入0汤圆

发表于 2008-4-2 10:11:03 | 显示全部楼层
M168 做指纹锁控制, 确实看过 0.8 uA的。

出0入0汤圆

发表于 2008-4-3 08:53:16 | 显示全部楼层
IO口使用第二功能时,端口方向及内部上拉应该是无效的

出0入0汤圆

发表于 2008-4-6 02:18:53 | 显示全部楼层
记下来

出0入0汤圆

发表于 2008-5-27 12:34:09 | 显示全部楼层
因地制宜!
没啥是决对的。
不过10楼的确实有一定的道理。

出0入4汤圆

发表于 2008-5-29 11:09:51 | 显示全部楼层
标记

出0入0汤圆

发表于 2008-6-2 11:30:17 | 显示全部楼层
我用M8掉电的情况下 就可以做到0.8ua,设置的是输入上拉!

出0入0汤圆

发表于 2008-6-2 11:31:12 | 显示全部楼层
大家讨论的真是很好呢!我也是实验了各种情况,后来得到还是上拉的最小!

出0入0汤圆

发表于 2008-8-1 17:04:02 | 显示全部楼层
今天我进来乱闯.又学习了哦~~哈哈~谢谢各位!在这里我又想起马老师的话.要看数据手册.

出0入0汤圆

发表于 2008-8-21 11:25:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-21 12:31:12 | 显示全部楼层
【24楼】 simbin
积分:38
派别:
等级:------
来自:
设置成高阻态输入。这是华为公司的建议。  
__________________________



怪不得华为经常有人跳楼.

置输出并禁上拉(其实禁不禁都一样,防短路罢了)然后悬空就可以了

出70入145汤圆

发表于 2008-8-21 17:44:56 | 显示全部楼层
mark,学到不少。

出0入0汤圆

发表于 2008-8-22 10:05:57 | 显示全部楼层
不是吧,我这几天用MG16L的片子,关闭了各种功能模块,I/O口什么也没接。也就是一块裸板,上面就一个MG16,一个7.3728MHz的晶振。在进入掉电模式后还有800uA的电流呢,是怎么回事呀?我用的是万用表2mA挡位进行测量的。

出0入0汤圆

发表于 2008-8-22 23:38:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-8-23 10:19:05 | 显示全部楼层
设置成输出高电平  觉得不够安全  碰到地就短路了

出0入0汤圆

发表于 2008-8-23 10:51:02 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-8-24 00:28:55 | 显示全部楼层

出0入0汤圆

发表于 2008-8-27 09:57:36 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-8-27 13:59:07 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-9-2 08:50:05 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2008-9-2 08:57:06 | 显示全部楼层
markup!

出0入0汤圆

发表于 2008-9-7 11:07:50 | 显示全部楼层
对于AVR
1 作输出,如果外部悬空,高低均可。如果有下拉的负载,则输出低电平,上拉反之
2 作输入,确保不能悬空和电平不要在1/2VCC附近,可以内部上拉/外部上拉/外部下拉。

出0入0汤圆

发表于 2008-9-7 22:41:24 | 显示全部楼层
难道高组态不省电吗

出0入0汤圆

发表于 2008-9-11 16:09:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-9-11 17:14:44 | 显示全部楼层
http://www.picpic.cn/viewthread.php?tid=378

别吵了,看看这个帖子。。。。

出0入0汤圆

发表于 2008-9-13 10:02:25 | 显示全部楼层
mark~~~

出0入0汤圆

发表于 2008-9-13 16:28:20 | 显示全部楼层
~12楼
学习了,,觉得设置成输出,,拉高还是不好,,容易短路的危险,,


,,受教了,,

出0入0汤圆

发表于 2008-9-13 16:30:49 | 显示全部楼层
看看。

出0入0汤圆

发表于 2008-9-14 08:36:08 | 显示全部楼层
个人认为输入高阻态外部悬空,或者在1/2vdd附近都不会增加电流,电流不会从io流入或者流出。增加的电流是因为io变化造成了单片机被唤醒,所以只要关掉这个io的唤醒,中断就不会增加电流。

出0入0汤圆

发表于 2008-10-29 11:37:42 | 显示全部楼层
有意思

出0入0汤圆

发表于 2008-12-11 08:15:19 | 显示全部楼层
有没有人总结一下,乱糟糟

出0入0汤圆

发表于 2008-12-11 09:31:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-12-11 12:10:30 | 显示全部楼层
64楼好好想想为什么频率越高功耗越高吧。

出0入0汤圆

发表于 2008-12-31 13:27:07 | 显示全部楼层
虽然没个权威的说话,但还是让我学习了!

出0入0汤圆

发表于 2008-12-31 13:59:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-1-9 20:03:49 | 显示全部楼层
学习~

出0入0汤圆

发表于 2009-1-10 16:26:02 | 显示全部楼层
学习中.....................

出0入0汤圆

发表于 2009-6-9 09:42:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-6-9 13:06:14 | 显示全部楼层
xueXUE

出0入0汤圆

发表于 2009-7-14 14:51:44 | 显示全部楼层
晕,哪位朋友的观点是对?

出0入296汤圆

发表于 2009-7-14 15:07:54 | 显示全部楼层
If some pins are unused, it is recommended to ensure that these pins have a defined level. Even though most of the digital inputs are disabled in the deep sleep modes as described above, floating inputs should be avoided to reduce current consumption in all other modes where the digital inputs are enabled (Reset, Active mode and Idle mode). The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up. In this case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is recommended to use an external pull-up or pull-down. Connecting unused pins directly to VCC or GND is not recommended, since this may cause excessive currents if the pin is accidentally configured as an output.
Please refer to devices datasheet for more details.

出0入0汤圆

发表于 2009-7-14 17:27:31 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-7-14 17:39:13 | 显示全部楼层
请问Gorgon Meducer 傻孩子:
能解释下这句话“Connecting unused pins directly to VCC or GND is not recommended, since this may cause excessive currents if the pin is accidentally configured as an output. ”吗?为什么突然端口设成输出时会有尖峰电流呢?

出0入0汤圆

发表于 2009-7-19 14:36:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-16 17:01:26 | 显示全部楼层
学习了!

出0入0汤圆

发表于 2009-8-16 17:02:21 | 显示全部楼层
学习了

出0入0汤圆

发表于 2009-8-16 20:56:53 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-8-17 08:46:58 | 显示全部楼层
一般单片机的DATASHEET的I/O部分里都有说明的,
MSP430是设置成输出 不接任何电阻

出0入0汤圆

发表于 2009-8-29 22:01:42 | 显示全部楼层
(⊙v⊙)嗯 讲得不错

出0入0汤圆

发表于 2009-10-14 17:13:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-10-14 18:51:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-10-15 02:08:55 | 显示全部楼层
等待定论

出0入0汤圆

发表于 2009-10-15 10:01:36 | 显示全部楼层
很老但很好的帖子.

出0入0汤圆

发表于 2009-10-15 10:28:30 | 显示全部楼层
呵呵,不錯。Mark之!

出0入0汤圆

发表于 2009-10-15 16:18:14 | 显示全部楼层
结论:最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时
上拉电阻将被禁用。如果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。

出0入0汤圆

发表于 2009-10-16 19:39:33 | 显示全部楼层
学习

出0入0汤圆

发表于 2009-12-17 13:45:24 | 显示全部楼层
可以再增加一个讨论吗?不用的IO口怎样设置让CPU抗干扰能力最强?

出0入0汤圆

发表于 2009-12-17 13:52:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-1 11:02:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-1 20:46:07 | 显示全部楼层
本人写键盘程序的思想也是“高”--》“低”--》“高”。多向高手们学

出0入0汤圆

发表于 2010-1-1 21:36:52 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-2-4 18:40:40 | 显示全部楼层
学习

出0入85汤圆

发表于 2010-2-4 22:45:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-4 23:31:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-10 16:44:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-10 21:06:27 | 显示全部楼层
回复【92楼】zw666  
-----------------------------------------------------------------------

接电容。

出0入0汤圆

发表于 2010-3-13 08:51:24 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 11:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表