关于AVRI/O的驱动能力的介绍AVR单片机I/O的驱动能力在8位单片机中算一流的。大家应仔细阅读AVR器件手册中关于电气指标和典型特性的内容。(顺便提一下,有那些8位单片机的器件手册比AVR的多?并且提供非常详细的电气指标?)。讨论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.AlthougheachI/Oportcansinkmorethanthetestconditions(20mAatVCC=5V,10mAatVCC=3V)understeadystateconditions(non-transient),thefollowingmustbeobserved:TQFPandMLFPackage:1]ThesumofallIOL,forallports,shouldnotexceed400mA.2]ThesumofallIOL,forportsA0-A7,G2,C3-C7shouldnotexceed300mA.3]ThesumofallIOL,forportsC0-C2,G0-G1,D0-D7,XTAL2shouldnotexceed150mA.4]ThesumofallIOL,forportsB0-B7,G3-G4,E0-E7shouldnotexceed150mA.5]ThesumofallIOL,forportsF0-F7,shouldnotexceed200mA.IfIOLexceedsthetestcondition,VOLmayexceedtherelatedspecification.Pinsarenotguaranteedtosinkcurrentgreaterthanthelistedtestcondition.4.AlthougheachI/Oportcansourcemorethanthetestconditions(20mAatVcc=5V,10mAatVcc=3V)understeadystateconditions(non-transient),thefollowingmustbeobserved:TQFPandMLFPackage:1]ThesumofallIOH,forallports,shouldnotexceed400mA.2]ThesumofallIOH,forportsA0-A7,G2,C3-C7shouldnotexceed300mA.3]ThesumofallIOH,forportsC0-C2,G0-G1,D0-D7,XTAL2shouldnotexceed150mA.4]ThesumofallIOH,forportsB0-B7,G3-G4,E0-E7shouldnotexceed150mA.5]ThesumofallIOH,forportsF0-F7,shouldnotexceed200mA.IfIOHexceedsthetestcondition,VOHmayexceedtherelatedspecification.Pinsarenotguaranteedtosourcecurrentgreaterthanthelistedtestcondition.此段大家自己读,主要是说整个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,可你到低真正学到手的是什么?“高级傻瓜”型的工程师越来越多,这也正是外国人所希望的。作为教师,我为国内大学这些年在电子专业上教育的失败感到痛心。看看国外的大学生的学习情况和能力(),我们有和能力和他们竞争!?对不起,又跑题了。留下几个思考题。在“马潮老师的专栏:AVR串口多机通讯模式的问题”的多机通信原理图中(该简单系统已连续工作两天了):1.为什么在与4个下位机通信的接口中,串入D9-D12四个二极管?2.主机电路中的U2部分电路的作用是什么?为什么接入INT0,而不是RESET?3.每个下位机使用M16倾动16个LED数码管,如何估算M16的倾动能力(M16能点亮全部的LED而不发热烧毁)?4.电阻R2-R8起的作用是什么(好多高校老师的设计中,不使用R2-R8)?5.16个LED数码管采用何种驱动方式?如何设计“同时”点亮16个LED,而且亮度均匀,无闪烁,无拖尾。如何调整LED的亮度?6.如何使用下位机的电路实现一个简易的时钟(年-月-日时:分:秒),带闹钟设置和时间设置功能。如何估算你的时钟精度?7.5个按键直接接在I/O口上,外部没有吊高电阻,可靠吗?8.使用其中两个按键作为“+”和“-”键,用于输入数据设置时间和日期。其特性为:按下“+”键,在1秒内放开,表示加1,按下“+”键后不放开,超过1秒后每隔0.5秒加10,直到按键放开。如何设计程序实现?9.按键按下要消抖动处理,要判别按下的时间长短等,但不管按键按下多长时间,LED必须正常显示,不能有抖动和闪烁,更不能熄灭。10.你认为电路的硬件设计有什么不合理和改进的地方(任何方面)?