IO口详解
-
AVR
单片机
IO
结构
全攻略
为搞清
IO
结构,首先看看上拉和下拉电阻的作用。
一、上拉电阻
上拉就是将不确定的信号通过一个电阻钳位在高电平!电阻同时起限流作
用!下拉同
理!
上拉电阻是用来解决总线驱动能力不足时提供电流的。一
般说法是拉电流,
下拉电阻是用来吸收电流。
1
、在用
TTL
电路驱动
p>
CMOS
电路时,若
TTL
的高电平低于
CMOS
要求的高电
平的门限值(
1
,
TTL
电平:
输出高电平
>
2.4V,
输出低电平
<0.4V
。在
室温下,
一般输出高电平是
3.5V
,
输出低电平
是
0.2V
。
最小输入高电平和低电平:
输入
高电平
>=2.0V
,输入低电
平
<=0.8V
,噪声容限是
0.4V
。
2
,
CMOS
电平:
1
逻辑
电平电压接近于电源电压,
0
逻辑电平接近于<
/p>
0V
。
而且具有很宽的噪声容限。
)
,
此时需用上拉电阻来提升输出高电平的电
压值
。
2
、
OC
门必须外加上拉电阻,才能使用
。(
OC
门
:
三极管的叫集电极开路,
场效应管的叫漏极开路,简称开漏输出。具备
< br>
线与
能力
,
有
0
得
0
。
)
p>
3
、为加大输出管脚的驱动能力,单片机的引脚常接入上拉电阻,(
AVR
单
片机可配置是否接上拉,
p>
51
单片机
P1 P2 P3
均带上拉,
P0
口不带,所以用
P0
口做按键,液晶等应用时要自己加上上拉电阻,否则无法使用切记)
4
、
CMOS
芯片上为防止静电破坏,不用的管脚不能悬空,需要接上拉电阻降
低输入
阻抗,提供泄荷通路。
5
、提高总线
的搞电磁干扰能力,悬空就容易就电磁干扰。
二、上拉电阻阻值的选择
1
、为节约功耗或使灌电流足够大,阻值要大,电流小。
2
、为确保足够的驱动电流,阻值要小,电流大。
<
/p>
3
、对于高速电路,过大的上拉电阻可能导致边沿变得平缓。
p>
基于以上三点,一般选取上拉阻值为
1K
-10K
。
三、上拉阻值的计算
OC
门输出高电平时是一个高阻态,其上拉电流要由上拉电阻来提供,设输
入端
每端口不大于
100uA,
设输出口驱动电流约
500uA
,标准工作电压是
5V
,输
入口的高低电平门限为
0.8V(
低于此值为低电平
)
;
2V(
p>
高电平门限值
)
。
选上拉电阻时:
500uA
x
8.4K=
4.2
即选大于
8.4K
时输出端能下拉至
0.8V
以下,此为最小阻值,
再小就拉不下来了。<
/p>
如果输出口驱动电流较大,
则阻值可减小,
保证下拉时能低
于
0.8V
即可。<
/p>
当输出高电平时,忽略管子的漏电流,两输入口需
200uA
200uA x15K=3V
即上拉电阻压降为
3V
,输出口可达到
2V
,此
阻值为最大阻值,
再大就拉不到
2V
了
。选
10K
可用。
COMS
门的可参考
74HC
系列
设计时管子的漏电流不可忽略,
IO
口
实际电流在不同电平下也是不同的,上述
仅仅是原理,
一句话概
括为:
输出高电平时要喂饱后面的输入口,
输出低电平不
要把输出口喂撑了
(否则多余的电流喂给了级联的输入口,
高于低电平门限值就
不可靠了)
在数字电路中不用的输入脚都要接固定电平,通过
1k
电阻接高电平或接地。
四、
51
型单片机
IO
口
AVR
的
I
O
是真正双向
IO
结构,由于大部分网
友都是从标准
51
转过来的,
受标准<
/p>
51
的准双向
IO
和布尔操作概念影响,没能掌握
AVR
的
IO
操作,所以有
必要撰文说明一下。
其实采用真正双向
IO
结构的新型
MCU
很多,
常用的有
增强
型
51
,
PIC,AVR
等,先简单的回顾一下标准
51
p>
的准双向
IO
结构
这种准双向
IO
结构的特点是
1
、
输出结构类似
OC
门,
输出低电平时,
内部
NMOS
导通,
驱动能力较强
(800uA)
;
输出高电平靠内部上拉电阻,驱动能力弱
(60uA)
。
2
、
永远有内部电阻上拉
(P0
口除外
)
,
高电平输出电流能力很弱,
所以即使
IO
口长时间短路到地也不会损坏
IO
口
(<
/p>
同理,
IO
口低电平输出能力较强
,
作低电平输出时不能长时
间短路到
VCC)
3
、
作输
出时,输出低电平可以推动
LED(
也是很弱的
)
,输出高电平通常需要外
接缓冲电路
(
所以
LED
多为共阳接法<
/p>
)
五、
AVR
单片机
IO
口(千呼万唤始出来)
p>
端口引脚配置
DDxn
PORTxn
PUD
I/O
上拉电阻
说明
0
0
X
输入
No
高
阻态
(Hi-Z)
0
1
0
输入
Yes
被外部
电路拉低时将输出电流
0
1
1
输入
No
高
阻态
(Hi-Z)
1
0
X
输出
No
输
出低电平
(
漏电流
)
1
1
X
输出
No
输
出高电平
(
源电流
)