在从事固网通讯终端开发的过程中,作为一个研发工程师,经常会定义一些I/O口,但是说实话我记刚开始时真的脑子里没有什么概念,后来我们这边的软件工程师给了我以下资料,经过仔细研究了一下,就明白了,所以说作为一个工程师来说,不懂这些东西,会被人笑话的. 输入口(Input) 输入口其实可以理解为一个对地电阻和对VDD电阻均为无穷大的端口,它的状态完全由外部电路决定。此脚不用时不能悬空,视工作情况要么接地要么到VDD。 输出口(Output) 输出口可由程序设定为输出高或输出低,在负载范围内,输出高时的电压约等于VDD,输出低时的电压约等于VSS。此脚不用时可悬空。 有内部上拉的输入口(Pull-high) 有内部上拉的输入口相当于该输入口在芯片内部接了一个150K左右的电阻到VDD。因此,与普通输入口相比,有内部上拉的输入口在外围悬空的情况下测量的电压近似于VDD(不用时可悬空),而普通输入口在外围悬空的情况下测量的电压是不确定的,在VSS~VDD之间变化,实际运用时是不能悬空的。 开漏输出(Open-dnain) 开漏输出的输出口特性如下:输出低时对VSS阻抗极低,在负载范围内近似于VSS;输出高时对VSS和VDD阻抗视为无穷大,输出电压取决于外部电路提供的电压(最大为芯片极限存受电压)。 I/O口 顾名思义同一脚即是输入口又是输出口,在不同的时候是不同的状态,视工作情况考虑外部电路;此脚有输入状态,所以不用时不能悬空,也不能直接接地或接VDD,需通过47K以上的电阻上拉到VDD或下拉到地。 如何准确判断输入/输出状态 下面通过一个电阻就可以准确判断出I/O的输入/输出状态。请参考下表: |
悬空
10K电阻上拉到VDD
10K电阻下拉到VSS
测试结果
待测I/O电压
高
高
高
输出高
低
低
低
输出低
不定
高
低
普通输入
高
高
低
内部上拉
I/O的内部保护
I/O一般都有内部保护电路,均采用二极管钳位保护,保证I/O的电压不超过VDD+0.7V且不低于VSS-0.7V,确保I/O不因外部一定的电压而受到损伤。
应用注意事项
§ 所有输入口均不能悬空(内部上拉的输入口除外),必须通过外部电路接上稳定的高或低电位,否则会导致MCU的耗电剧增或工作状态的变化。
§ 硬件电路设计中应确保各脚的电压不超过VDD且不低于VSS,否则将不仅会使MCU电流增大且又极易损坏芯片。
§ 芯片外围电路设计时必须确保芯片的供电电压在其允许范围之内。
关于单片机高、低电位的判断
单片机输入口读取高、低电平的判断与芯片供电的VDD有直接关系,VDD不同,判断高、低的临界电压值也不一样。根据IC资料,≥2/3VDD的电压MCU判断为高,而≤1/3VDD的电压值MCU判断为低,中间有一定的模糊区,而实际应用的经验告诉我们,单片机读到高比较容易而不容易读到低,一般<0.7V的电压才可以准确读到低
用户1648966 2010-8-17 21:58