C<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />8051F学习笔记:单片机的驱动能力<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
学习51单片机的时候我们就知道51单片机的I/O口的特点:P0口没有弱上拉,所以做地址线时不用上拉,但输出“1”时就要加上拉电阻,不然输出电平到不了高电平,P1~P3则不存在这个问题,每个输出管脚都有弱上拉电阻(也就是电阻很大的上拉电阻),造成的结果是输出高电平电流很小,为uA量级,驱动不了LED、数码管之类的,所以要么在外加一个NPN的三极管增强驱动,要么LED、数码管用共阳极接法(也就是LED正接VCC,负接MCU的I/O;数码管用共阳数码管,COM口接VCC)。
虽然道理懂得,但很多时候脑子太死了,MCU接其他器件的时候,就要MCU的I/O输出驱动电流这事给忘了。下面是一个教训:三个不同类型MCU控制继电器的电路。
图1 MCU采用STC89C51,增加一个PNP,增强了驱动能力,能控制继电器TQ-RELAY的闭合
图2 MCU用的是C8051F120,I/O端口高低电平能控制光耦继电器AQW610的闭合
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
图3 MCU用的是ADI公司的单片机ADuC842,这种解法,MCU的I/O控制不了AQW610的闭合
图2和图3基本是相同的电路,只不过是MCU不一样,为什么一个能控制AQW610,一个不行呢?让我们先来看看AQW610的DataSheet.
AQW610的电气特性
AQW610光耦继电器里的二极管工作电流常闭端为3.0mA,常开端为1.3mA。
再来看看单片机ADuC842(ADI公司兼容的51单片机)
ADuC842的电气特性
ISINK为灌电流,是指低电平输出时,能够吸收的电流;
ISOUCE为拉电流,指高电平输出时,能够输出的电流;
在这里虽然没有明确给出拉电流灌电流的最大值,只是把这两个作为输出高电流和低电平的测试条件,但可以认为这个测试条件也就是这款MCU能输出的最大电流了。ADuC842高电平的驱动电流只能到80uA,P0~02、ALE低电平的驱动电流为1.6mA,P3低电平的驱动电流能达到3mA。因此想要图3电路工作,AQW610的1脚接VCC,4脚接ADuC842的P3口某脚(P0~P2不行)。
C8051F120的极限电气参数
从C8051F120的电气特性就可以知道C8051F系列单片机I/O有很大的驱动电流,要注意上表是极限参数,也就是说如果超过列出的极限参数的话,有可能导致器件永久损坏,所以100mA的最大输出拉电流(输出高电平),足以直接驱动LED、数码管及其他器件。
只要是驱动器件的时候才考虑拉电流是否大于被驱动器件的输入电流需求,如果MCU是驱动地址线或数据线,如SPI、74LS573等一些器件,就很少要考虑电流这方面。
下面介绍一下常用的51兼容单片机的驱动能力:
1) ADuC841
ADuC841中的P1口主要作为模拟输入口使用,在作为数字口使用时,只能作为输入口使用,不能作为输出口。而且作为数字输出口使用时,通常是高电平有效;当作为按键输入时,应该加下拉电阻,而不是上拉电阻(按键一端接VCC,另一端接下拉电阻,电阻另一端接地)。
2) ADuC812
P3口可以比别的端口吸收更大的灌电流(可达8mA),可以直接驱动LED和光电耦合器件。
3) STC89C51
Sinking Current(灌电流) Sunk
Sourcing Current(拉电流)
4) Atmel AT89S51
5) Intel 8051
6)华邦W78E516B
7) 7)PHILIPS P89C5x
总结:在输出电流驱动能力方面,C8051F系列单片机真是一骑绝尘J
用户403637 2012-12-17 16:27
tengjingshu_112148725 2010-4-21 16:30
朱玉龙 2010-4-20 12:07