P87LPC762--低功耗、低价格、小管脚(20脚)OTP单片机
概述
P87LPC762是20脚封装的单片机,适合于许多要求高集成度、低成本的场合。可以满足多方面的性能要求。作为PHILIPS小型封装系列中的一员,P87LPC762提供高速和低速的晶振和RC振荡方式,可编程选择。具有较宽的操作电压范围。可编程I/O口线输出模式选择,可选择施密特触发输入,LED驱动输出。有内部看门狗定时器。P87LPC762采用加速80C51处理器结构,指令执行速度是标准80C51 CPU的两倍。
特性
操作频率为20MHz时,除乘法和除法指令外,加速80C51指令执行时间为300~600ns。
VDD=4.5~6.0V时,时钟频率可达20MHz,VDD=2.7~6.0V时,时钟频率最大为10MHz;
用于数字功能时,操作电压范围为2.7~6.0V;
2K字节OTP程序存储器;
128字节的RAM;
32字节用户代码区可用来存放序列码及设置参数;
2个16位定时/计数器,每一个定时器均可设置为溢出时触发相应端口输出;
2个模拟比较器;
全双工UART;
I2C通信接口;
8个键盘中断输入,另加2路外部中断输入;
4个中断优先级;
看门狗定时器利用片内独立振荡器,无需外接元件,看门狗定时器溢出时间有8种选择;
低电平复位。使用片内上电复位时不需要外接元件;
低电压复位。选择预设的两种电压之一复位,可在掉电时使系统安全关闭。
也可将其设置为一个中断源;
振荡器失效检测。看门狗定时器具有独立的片内振荡器,因此它可用于振荡器的失效检测;
可配置的片内振荡器及其频率范围和RC振荡器选项(用户通过对EPROM位编程选择)。
选择RC振荡器时不需外接振荡器件;
可编程I/O口输出模式:准双向口,开漏输出,推挽和只有输入功能;
可选择施密特触发输入;
所有口线均有20mA的LED驱动能力;
可控制口线输出转换速度以降低EMI,输出最小上升时间约为10ns;
最少15个I/O口,选择片内振荡和片内复位时可多达18个I/O口;
如果选择片内振荡及复位时,P87LPC762仅需要连接电源线和地线;
串行EPROM编程允许在线编程。2位EPROM安全码可防止程序被读出;
空闲和掉电两种省电模式。提供从掉电模式中唤醒功能(低电平中断输入唤醒)。
典型的掉电电流为1μA;
低功耗:4~20MHz,1.7~10mA,3.3V;
100kHz~4MHz,0.044~1.7mA,3.3V;
20~100KHz,9~44μA,3.3V;
20脚PDIP,PSOP及TSSOP封装。
摘 要:利用Philips公司LPC系列单片机的一些特殊功能,在不外加元件的情况下,定制了一片高性能的LED显示驱动器芯片。分析了通用4位7段LED显示驱动器芯片的定制方法与6位“米”字段LED显示驱动器芯片的定制方法,并介绍了LED显示驱动软件编程方法。
关键词:LED LED显示驱动器 I2C总线 P87LPC762 P89LPC932
随着计算机技术和电子技术的飞速发展和广泛应用,电器设备的输出显示技术也变得复杂多样,诸如CRT显示、LCD显示、多位LED显示及发光二极管显示等应运而生。在这些显示当中,LED及发光二极管显示电路较为简单,成本也较低,在功能单一的仪器仪表与机电设备中应用较广。但当设备显示的点或位较多时,就需要采用一定的驱动电路与相应的驱动方式。
在LED的驱动和显示单元的设计中,采用的方式有许多种:利用计算机芯片的端口作为LED的驱动口,并通过软件编程加外部驱动实现,缺点是占用计算机芯片的时间和相关资源;利用专用接口芯片如Intel8155、8255等作为计算机芯片的端口扩展,并通过软件编程加外部驱动实现,缺点是电路较复杂,功耗较大,也要占用计算机芯片的时间和相关资源;利用显示用专用芯片如Intel8279、MAX7219、PS7219等,可实现较复杂的功能,但其占用计算机芯片端口还是较多,并且芯片价格较高。大多数显示驱动器都没有严格的总线时序,在强干扰环境下容易造成时序混乱,使显示不正常。本文讨论的LED显示方案是利用Philips公司的LPC系列单片机芯片的电路特性,从另一种形式来定制专用的LED显示驱动控制器芯片。主要利用基于I2C总线的通讯接口,使连接可靠;且基于软件编程控制显示,使显示方式及种类多样。由于LPC系列芯片的端口驱动能力较强,一般的LED可直接连接,在不外加元件的情况下,可实现多位LED或大量发光二极管的显示,与其它芯片连接时,占用的I/O口较少。
1 4位7段LED显示器
通常的4位LED显示器如图1所示,其内部由多只发光二极管构成,按连接方式不同可分为共阳极LED与共阴极LED。其电路特性基本一致:发光二极管导通压降为1.2V~1.8V、正向工作电流为2mA~15mA。在显示驱动方式中,采用动态扫描。当扫描到n1~n4公共端时,LED驱动器分别对应输出 a~dp的显示段,LED就能正常显示。在自定制LED显示驱动器芯片中,LPC系列中的P87LPC762单片机芯片具有较好的端口设置与较强的内部功能,因此可以通过编程设置其引脚功能作为LED显示器的驱动芯片。
图1 4位LED显示器
2 定制4位7段LED显示驱动器芯片
要实现4 位7段LED的显示,只要使流过发光二极管每段的电流达到要求就可以了。在这里选用Philips公司LPC系列的P87LPC762单片机实现显示驱动电路。P87LPC762是一款增强型51系列的单片机,除具有一般单片机的功能外,还具有驱动LED的性能:
·I/O口具有上拉输出模式或开漏输出模式设置,可作为共阴极或共阳极LED的段输出与位输出。
·具有较大的端口拉电流或灌电流,内部有短路保护功能,可实现LED的电流驱动。
·当设计4位LED驱动器时,芯片其余引脚可作I2C总线地址设置、LED的极性选择。
·内部有2K的OPT,可作为程序存储器,用以实现接口与显示程序化。
·自带I2C硬件接口,便于接口编程与多芯片连接。
·内部看门狗与内部复位,可提高驱动显示的可靠性。
·内部设有RC振荡器,减少了外部元件。
P87LPC762芯片的引脚功能如图2所示。它有三个端口:Port0、Port1、Port2。当选择内部振荡和内部复位时,最大的I/O端口数目可达到18个。大多数端口均可以通过软件配置成准双向、上拉、输入、开漏输出四种类型之一。对于上拉输出模式,P87LPC762在标准的准双向口基础上增加了第三只三极管以提供强上拉功能,在高电平时可输出很大的拉电流;对于开漏输出模式,端口对外可提供很大的灌电流;对于输入模式,端口引脚电平由外部电压决定。
根据4位动态LED的显示特性,在此对P87LPC762的端口作定义,定义引脚如表1所示。P0.0~P0.7作为4位 LED的段输出,根据LED极性不同,端口可设为上拉输出或开漏输出;P1.0、P1.1、P1.6、P1.7作为4位LED的位输出,根据LED极性不同,端口可设为开漏输出或上拉输出;P1.5作为LED的极性选择,设置为输入模式;P2.1、P2.0、P1.4作为I2C总线外部地址,便于多芯片连接时对I2C总线地址设定,设置为输入模式;P1.2、P1.3保持I2C总线接口功能不变。定义后的芯片引脚如图3所示。
图2 P87LPC762芯片原引脚功能 
图3 P87LPC762新定制芯片引脚定义
要实现以上的芯片设置,P87LPC762的部分内部特殊功能寄存器及引脚设置如表2所示。PxMx为端口模式设置,配合LED极性进行选择。 UCFG1为芯片系统配置字,在芯片编程时需写入,在程序运行后便不可以设置了。当配置字为FBH时,其意义为:启动看门狗、内部复位、复位后口线为高电平、欠压电压为2.5V、六个Clock时钟,内部RC振荡器。
3 定制6位“米”字段LED显示驱动器芯片
通常,1位“米”字段LED显示器外形图如图4所示,其内部由多只发光二极管构成。如要组成6位“米”字段LED显示器,需将相同的段、位分别连接起来,每位公共端引出以便进行动态扫描。根据发光二极管连接极性不同,可分为共阳极与共阴极两种方式。6位“米”字段LED显示器由于输出段、位较多,可选用 LPC系列的P89LPC932芯片实现显示驱动电路,其引脚为28脚封装,最大的I/O端口数目可达到26个,功能引脚如图5所示。P89LPC932 具有与P87LPC762相同的端口电气特性,并且具有较多的I/O端口,因此可以将它作为6位“米”字段LED显示器的驱动器芯片。新定制的驱动器芯片引脚如图6所示:a~n为驱动段输出,n1~n6为驱动位输出;A/K作为共阳极与共阴极的选择端;A0~A2作为I2C总线外部地址选择,最多可连接8 只外部芯片;SDA、SCL保持I2C总线接口功能不变。
图7 采用定制显示驱动芯片的LED显示驱动器原理图
根据I2C总线协议要求,对主控器发送来的数据有一定的响应时间要求。最短时间可由RC振荡器的倍频频率和中断响应时间来决定,最高速率可达到400kbs/s。最低速率可由LPC系列内部专用I2C定时器I来控制,为了适应非标准的低速率的I2C总线操作,可关闭定时器I。
6 芯片测试及主要性能指标
按照定制要求,将完整的LED显示驱动程序与芯片设置参数通过编程器固化后,要制作芯片测试连接图,如图7所示。这里采用89C52的P1.0与P1.1作为模拟I2C总线控制线,编写模拟I2C驱动程序。而且,89C52主机重新复位、I2C总线通讯断线等情况下均不能影响显示驱动器的下一次正常数据接收。如果关闭定制的LED驱动器中的定时器I,模拟I2C 程序暂停、单步调试定制的LED驱动器也能正常驱动显示。由于Philips公司的LPC系列芯片端口输出电流能力较强,在驱动0.5英寸共阴极与共阳极 LED时,LED亮度均达到要求。在长期全亮显示时,定制的LED驱动芯片温升正常,能够长期连续工作。在实际使用时,控制端口A/K及A0、A1、A2 由于编程时设置成输入模式,故其悬空时输入电平为不确定状态,并随机变化,有可能造成不正常显示,应根据地址设定要求,强制接VCC或GND。