讨论AVR的I/O驱动能力主要指它使用输出工作方式下的输出电流(输出为1时)和灌电流(输出为0时)。
参考下图,当输出高电平时,在Vcc=5V条件下,一个I/O输出电流可达40mA,但此时输出电压已降到4V左右,输出20mA时,电压降为4.5v,(3v以上,对于CMOS讲,仍为逻辑“1”)。说明AVR的输出电流最大可为40mA。
当输出低电平时,I/O的倾动能力表现为灌电流。见图,
在Vcc=5V条件下,一个I/O可灌入的电流也可达40mA,但此时输出电压已生到1V左右,灌入20mA时,电压生为0.5v,(0.8v以下,对于CMOS讲,仍为逻辑“0”)。说明AVR的灌入电流最大可为20mA。
在使用中还要注意的是:
3.虽然 IO端口的灌电流(IOL)在稳定的实验条件下,可以达到每路20 mA (VCC = 5V时), 10 mA (VCC = 3V时),但必须遵从:
TQFP 及 MLF 封装
1] 所有端口的总和, 不能超过 400 mA.
2] 端口 A0 - A7, G2, C3 - C7 的灌电流总和,不能超过 300 mA.
3] 端口 C0 - C2, G0 - G1, D0 - D7, XTAL2 的灌电流总和,不能超过 150 mA.
4] 端口 B0 - B7, G3 - G4, E0 - E7 的灌电流总和,不能超过 150 mA.
5] 端口 F0 - F7 的灌电流总和,不能超过 200 mA.
如果灌电流超出了上面的标准,端口的电压(VOL) 就会超出规范值。端口不能保证在超出标准的灌电流下正常工作。
4.虽然 IO端口的驱动电流(IOH)在稳定的实验条件下,可以达到每路20 mA (VCC = 5V时), 10 mA (VCC = 3V时),但必须遵从:
TQFP 及 MLF 封装
1] 所有端口的总和, 不能超过 400 mA.
2] 端口 A0 - A7, G2, C3 - C7 的驱动电流总和,不能超过 300 mA.
3] 端口 C0 - C2, G0 - G1, D0 - D7, XTAL2 的驱动电流总和,不能超过 150 mA.
4] 端口 B0 - B7, G3 - G4, E0 - E7 的驱动电流总和,不能超过 150 mA.
5] 端口 F0 - F7 的驱动电流总和,不能超过 200 mA.
如果驱动电流超出了上面的标准,端口的电压(VOH) 就会超出规范值。端口不能保证在超出标准的驱动电流下正常工作。
此段大家自己读,主要是说整个PORT口,以及整个芯片电流的限制。不能简单的计算:一个I/O口输出20mA,一片M128有近50个I/O口,那么20*50=1000mA,芯片烧了。
当AVR的I/O工作于输入方式时,其主要是对外部的实际电平进行检测,不应该输出电流,而灌电流应该越小越好(对外部无影响)。在下图中看出:当外部引脚电平为0时,I/O通过内部的上拉电阻输出120uA的弱电流;外部引脚电平为5时,I/O不提供电流。这种方式能够精确的检测出外部引脚的逻辑电平。
试想,当外部引脚对地串入一个5K电阻,如果I/O输出20mA电流,那么引脚上真正的电压为多少,如何测的准?
AVR的I/O特性吸收了个种单片机(如PIC)的优点,是非常有特色和优点的。没有“修练”到一定的层次,是不能体会到的。我在我的许多帖子中,多次强调不要浮燥,要踏踏实实、认真学习,打好基础,仔细读手册。但是还是有许多人往往提出一些没有经过认真思考和学习后,甚至是无边际的问题,甚至是“正确回答”。
一个硬件工程师,首先要有过硬的硬件功底,模拟、逻辑、数字、时序...,十八般武器,样样要精通。看网上一些问题和以及回答,我感到有些人连基本的欧姆定律都不懂(指不会分析和设计应用,不是指背出公式),但忙于制作MP3。试想,你买一块芯片,照别人的电路搭好线路,把别人的程序写入后,做出了MP3,可你到低真正学到手的是什么?“高级傻瓜”型的工程师越来越多,这也正是外国人所希望的。
上一篇:ATmega熔丝位设置详解
下一篇:ATmega16L 的中断源及在GCC中的中断名
推荐阅读最新更新时间:2024-03-16 15:16