无论是内部弱上拉还是外部的上拉电阻或者下拉电阻,都不是提高I/O口驱动能力的。 
PIC的I/O是真正的双向I/O,输出时是大电流的推挽驱动,输入时是高阻抗的输入。对于高阻抗的输入,你可以理解成是类似MOSFET的Gate极,你加上拉或下拉电阻,不管阻值多大,理论上除了可以忽略的漏电流,是不会带来其他电流消耗的。那么为什么输入口要加上拉或下拉电阻呢?简言之:“输入口需要确定的电平”。 
如果你让MOSFET的Gate极悬空会发生什么?这个高阻抗的输入引脚会出于非髙非低的状态,于是可能导致你的MOSFET或开或关,或者是半导通状态。这样的话,会产生额外的电流消耗,某些应用还可能导致误动作。 
所以,在应用设计里,“不要出现悬空的输入”。尤其是低功耗应用,一个悬空的输入就可能带来几十微安的额外电流消耗。对于输入口,应该使用内部弱上拉(个人经验:内部弱上拉比外部大电阻上拉的功耗会稍微大一点点0.xuA的级别)、外部电阻上拉或下拉。如果有多余不用的I/O也应配置成输入加上下拉,或者干脆设置成输出低加下拉(这个下拉只是确保设计安全)。
 |