深圳市天微电子有限公司 地址:深圳市南山区高新技术产业园北区紫光信息港A栋10层 原厂销售总部:手机18682063283 QQ:709072958 E-mail: [email protected] LED 驱动控制专用电路 TM1618 一、 概述 TM1618 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路, 内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性 能优良,质量可靠。主要应用于VCR、VCD、DVD 及家庭影院等产品的显示屏驱动。 二、 特性说明 • • • • • • • • • 采用功率CMOS 工艺 工作电压范围:3V~5V 多种显示模式(5 段×7 位 ~ 8段×4 位) 键扫描(5×1) 灰度调节电路(占空比8 级可调) 串行接口(CLK,STB,DIO) 振荡方式:内置RC 振荡(450KHz+5%) 内置上电复位电路 封装形式:DIP18/SOP18 三、管脚定义: DIP18/SOP18 1 18 GRID1 CLK 2 STB 3 17 GRID2 DIO TM1618 16 GND (TOP VIEW) 15 GRID3 K2 4 VDD SEG1/KS1 5 14 GRID4 6 13 SEG14/GRID5 SEG2/KS2 7 12 SEG13/GRID6 SEG3/KS3 8 11 SEG12/GRID7 SEG4/KS4 9 10 SEG5/KS5 www.titanmec.com -1- LED 驱动控制专用电路 TM1618 四、管脚功能定义: 符号 管脚名称 说明 DIO 数据输入/输出 在时钟上升沿输入/输出串行数据,从低位 开始。N管开漏输出。 STB 片选 在上升或下降沿初始化串行接口,随后等 待接收指令。STB 为低后的第一个字节作 为指令,处理指令时,当前其它处理被终 止。当STB 为高时,CLK 被忽略。 CLK 时钟输入 在上升沿输入串行数据,下降沿输出数据。 K2 键扫数据输入 输入该脚的数据在显示周期结束后被锁 存。 SEG1/KS1~ SEG5/KS5 输出(段) 段输出(也用作键扫描),P管开漏输出。 GRID1~ GRID4 输出(位) 位输出,N管开漏输出。 SEG12/GRID7 ~ SEG14/GRID5 输出(段/位) 段/位复用输出。 VDD 逻辑电源 GND 逻辑地 3V~5V。 接系统地。 ▲ 注意:DIO口输出数据时为N管开漏输出,在读键的时候需要外接1K-10K的上拉电阻, 如图(1)所示。本公司推荐10K的上拉电阻。DIO在时钟的下降沿控制N管的动作,此 时读数不稳定,可以参考图(6),在时钟的上升沿时读数才稳定。 VCC 芯片内部 电路 10K DIO CT GND 图(1) www.titanmec.com -2- LED 驱动控制专用电路 TM1618 五、 显示寄存器: 外部器件通过串行接口将数据传送到TM1618的显示寄存器,地址从00H-0DH共14字 节单元,分别与芯片SEG和GRID管脚所接的LED灯对应,分配如图(2)所示。写LED显示 数据的时候,按照显示地址从低位到高位,从数据字节的低位到高位操作。 X X 3 G E S 4 G E S 5 G E S xxHU(高四位) B4 B5 B6 B7 00HU 02HU 04HU 06HU 08HU 0AHU 0CHU X X X 1 1 1 G G G E 4E 3E 2 S S S 2 G E S 1 G E S xxHL(低四位) B0 B1 B2 B3 00HL 02HL 04HL 06HL 08HL 0AHL 0CHL X xxHL(低四位) B0 B1 B2 B3 01HL 03HL 05HL 07HL 09HL 0BHL 0DHL 图(2) X X xxHU(高四位) B4 B5 B6 B7 01HU 03HU 05HU 07HU 09HU 0BHU 0DHU GRID1 GRID2 GRID3 GRID4 GRID5 GRID6 GRID7 六、 键扫描和键扫数据寄存器: 键扫描为5×1,如图(3)所示: KS1 KS2 KS3 KS4 KS5 K2 图(3) 键扫数据储存地址如图(4)所示。发读键命令后,开始依次读取按键数据BYTE1— BYTE3字节,读数据从低位开始输出,其中B0,B2,B3,B5,B6,B7位为无效位,此时芯片 输出为0。芯片K和KS引脚对应的按键按下时,相对应的字节内的BIT为1。 B0 X 0 0 0 B1 K2 KS1 KS3 KS5 B2 X 0 0 0 B3 X 0 0 0 B4 B5 B6 B7 K2 X KS2 0 0 0 BYTE1 KS4 0 0 0 BYTE2 0 0 0 0 BYTE3 图(4) ▲注意:1、TM1618最多可以读3个字节,不允许多读。 2、读数据字节只能按顺序从BYTE1-BYTE3读取,不可跨字节读。例如:硬件 上的K2与KS5对应按键按下时,要读到此按键数据,必须读到第3个字节的B1, 才可读出数据。 www.titanmec.com -3- LED 驱动控制专用电路 TM1618 七、 指令说明: 指令用来设置显示模式和LED 驱动器的状态。 在STB下降沿后由DIO输入的第一个字节作为一条指令。经过译码,以最高两个比 特位B7、B6区别不同的指令。 B7 B6 指令 0 0 显示模式设置命令 0 1 数据读写设置命令 1 0 显示控制命令 1 1 地址设置命令 如果在指令或数据传输时STB被置为高电平,串行通讯被初始化,并且正在传送的 指令或数据无效(之前传送的指令或数据保持有效)。 (1) 显示模式设置命令: MSB LSB B7 B6 0 0 0 0 0 0 0 0 B5 B4 B3 B2 无关项,填 0 B1 B0 显示模式 0 0 1 1 0 1 0 1 4位8段 5位7段 6位6段 7位5段 该指令用来设置选择段和位的个数(4~5 位,7~8 段)。该指令执行时,显示 被强制关闭,需要送显示控制命令才能开显示,原来显示的数据内容不会被改变。但 当相同模式被设置时,则上述情况并不发生。 (2) 数据读写设置命令: MSB B7 B6 0 1 B5 B4 B3 LSB B2 0 1 无关项, 0 1 0 填0 0 1 1 0 1 0 0 1 1 该指令用来设置数据写和读。 B1 B0 功能 0 0 1 0 数据读写模式 设置 地址增加模式 设置 测试模式设置 (内部使用) 说明 写数据到显示寄存 器 读键扫数据 地址自动增加 固定地址 普通模式 测试模式 www.titanmec.com -4- LED 驱动控制专用电路 (3) 地址设置命令: MSB B7 B6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 TM1618 LSB B5 B4 无关项, 填0 B3 B2 B1 B0 显示地址 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 该指令用来设置显示寄存器的地址。如果地址设为0EH 或更高,数据被忽略, 直到有效地址被设定。上电时,地址默认设为00H。 (4)显示控制命令: MSB B7 B6 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 B5 B4 LSB B3 无关项, 填0 0 1 B2 B1 B0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 功能 显示灰度设 置 显示开关设 置 说明 设置占空比为 1/16 设置占空比为 2/16 设置占空比为 4/16 设置占空比为 10/16 设置占空比为 11/16 设置占空比为 12/16 设置占空比为 13/16 设置占空比为 14/16 关显示 开显示 该指令用来设置显示的开/关和显示灰度,上电时默认为关显示。 www.titanmec.com -5- LED 驱动控制专用电路 TM1618 八、串行数据传输格式: 读取和接收1个BIT都在时钟的上升沿操作。 8.1 数据接收(写数据) CLK DIO B0 B1 B2 B3 B4 B5 B6 B7 STB 图(5) 8.2 数据读取(读数据) CLK DIO B0 B1 B2 B3 B4 B5 B6 B7 B0 B1 B2 B3 B4 STB 发读按键命令 读取按键数据 Twait 图(6) ▲注意:1.读取数据时,从串行时钟CLK 的第8 个上升沿开始设置指令到CLK 下降沿 读数据之间需要一个等待时间Twait(最小1μS)。 2. MCU在发送读按键命令后,需将DIO数据总线释放,才能读出正确的按键数 据值。 九、 显示和按键: (1) 显示: 1、驱动共阴数码管: SEG1 SEG1 SEG2 SEG2 SEG3 SEG3 SEG4 GRID1 SEG4 SEG5 SEG5 SEG12 SEG12 SEG13 SEG13 A B C D DPY a f g b GRID1 e c E d F [LEDgn] G 图(7) www.titanmec.com -6- LED 驱动控制专用电路 TM1618 图7给出共阴数码管的连接示意图,如果让该数码管显示“0”,则需要在GRID1为 低电平的时候让SEG1,SEG2,SEG3,SEG4,SEG5,SEG12为高电平,SEG13为低电平, 查看图(2)显示地址表格,只需在00H地址单元写数据1FH,在01H地址单元写数据08H, 就可以让数码管显示“0”。 X X X SEG5 SEG4 SEG3 SEG2 SEG1 0 0 0 1 1 1 1 1 00H B7 B6 B5 B4 B3 B2 B1 B0 X X SEG14 0 0 0 B7 B6 B5 2、驱动共阳数码管: SEG13 0 B4 SEG12 1 B3 X 0 B2 GRID1 GRID1 GRID2 GRID2 GRID3 GRID3 GRID4 SEG1 GRID4 GRID5 GRID5 GRID6 GRID6 GRID7 GRID7 X 0 B1 A B C D X 0 B0 01H DPY a f g b SEG1 e c E d F [LEDgn] G 图(8) 图(8)给出共阳数码管的连接示意图,如果让该数码管显示“0”,那你需要在GRID1, GRID2,GRID3,GRID4,GRID5,GRID6为低电平的时候让SEG1为高电平,在GRID7为低 电平的时候让SEG1为低电平。要向地址单元00H,02H,04H,06H,08H,0AH里面分别 写数据01H,其余的地址单元全部写数据00H。 X X X SEG5 SEG4 SEG3 SEG2 SEG1 0 0 0 0 0 0 0 1 00H 0 0 0 0 0 0 0 1 02H 0 0 0 0 0 0 0 1 04H 0 0 0 0 0 0 0 1 06H 0 0 0 0 0 0 0 1 08H 0 0 0 0 0 0 0 1 0AH 0 0 0 0 0 0 0 0 0CH B7 B6 B5 B4 B3 B2 B1 B0 www.titanmec.com -7- LED 驱动控制专用电路 TM1618 ▲注意:SEG1-5为P管开漏输出,GRID1-4为N管开漏输出,在使用时候,SEG1-5只能接 LED的阳极,GRID1-4只能接LED的阴极,不可反接。 (2)键盘扫描: 一般情况下使用图(9),可以满足按键设计的要求。 S1 K2 S2 SEG1/KS1 S3 SEG2/KS2 S5 S4 SEG3/KS3 SEG4/KS4 SEG5/KS5 图(9) 当S1被按下的时候,在第1个字节的B1读到“1”。 十、 应用时串行数据的传输: (1) 地址增加模式 使用地址自动加1模式,设置地址实际上是设置传送的数据流存放的起始地址。起 始地址命令字发送完毕,“STB”不需要置高紧跟着传数据,最多14BYTE,数据传送完 毕再将“STB”置高。 CLK DIO Command 1 Command 2 Command 3 Data 1 Data 2 Data N Command 4 STB Command1: 显示模式设置命令 Command2: 数据读写设置命令 Command3: 显示地址设置命令 Data1~n: 显示数据,以Command3指定的地址为起始地址(最多14 bytes) Command4: 显示控制命令 (2) 固定地址模式 使用固定地址模式,设置地址实际上是设置需要传送的1BYTE数据存放的地址。 地址发送完毕,“STB”不需要置高,紧跟着传1BYTE数据,数据传送完毕再将“STB” 置高。然后重新设置第2个数据需要存放的地址,最多14BYTE数据传送完毕,“STB” 置高。 CLK DIO Command1 Command2 Command3 Data1 Command4 Data2 ``````` Command5 STB Command1: Command2: Command3: Data1: Command4: 显示模式设置命令 数据读写设置命令 显示地址设置命令,设置显示地址1 显示数据1,存入Command3指定的地址单元 显示地址设置命令,设置显示地址2 www.titanmec.com -8- LED 驱动控制专用电路 TM1618 Data2: 显示数据2,存入Command4指定的地址单元 Command5: 显示控制命令 (3)读按键时序 CLK DIO Command1 Data1 Data2 Data3 STB Command1: 读按键命令 Data1~3: 读取的按键数据 www.titanmec.com -9- LED 驱动控制专用电路 TM1618 (4)程序设计 采用地址自动加1的程序设计流程图: 开始 初始化 设置显示模式 发送写显存的数据命令 设置起始地址 连续传送多个字节数据 (最多 14 个字节) 发送显示控制命令 发送读按键命令 读按键数据并存储到 MCU 寄存器(最多 3 个字节) 有键按下? 按键处理程序 结束 www.titanmec.com - 10 - LED 驱动控制专用电路 TM1618 参考程序如下,电路参考图(10): /* *单片机型号: AT89S52 *开发环境: Keil uVision3 *晶震频率: 12M *功能: 在如图(10)所示电路的GRID1-GRID4对应的数码管显示数字0-3 */ #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int //定义控制端口 sbit DIO =P2^0; sbit CLK =P2^1; sbit STB =P2^2; //定义数据 uchar const CODE[][2] = {{0x1f,0x08},{0x06,0x00},{0x1b,0x10},{0x0f,0x10},{0x06,0x18},{0x0d,0x18 },{0x1d,0x18},{0x07,0x00},{0x1f,0x38},{0x0f,0x18}}; //4位8段模式下,共阴 数码管0-9的编码 uchar KEY[3]={0}; //为存储按键值开辟的数组 /**************************************************************/ //功能:向TM1618发送8位数据 /**************************************************************/ void send_8bit(uchar dat) { uchar i; for(i=0;i<8;i++) { if(dat&0x01) DIO=1; else DIO=0; CLK=0; CLK=1; dat=dat>>1; } } /**************************************************************/ //功能:向TM1618发送命令 www.titanmec.com - 11 - LED 驱动控制专用电路 TM1618 /**************************************************************/ void command(uchar com) { STB=1; STB=0; send_8bit(com); } /**************************************************************/ //功能:读取按键值并存入KEY[]数组,从低字节开始,从低位开始 /**************************************************************/ void read_key() { uchar i,j; command(0x42); //读键盘命令 DIO=1; //释放DIO数据总线 for(j=0;j<3;j++)//连续读取3个字节 for(i=0;i<8;i++) { KEY[j]=KEY[j]>>1; CLK=0; CLK=1; if(DIO) KEY[j]=KEY[j]|0X80; } STB=1; } /**************************************************************/ //功能:在1-4位数码管显示数字0-3 /**************************************************************/ void display() { uchar i; command(0x00); //设置显示模式,4位8段模式 command(0x40); //设置数据命令,采用地址自动加1模式 command(0xc0); //设置显示地址,从00H开始 for(i=0;i<4;i++) //发送显示数据 { send_8bit(CODE[i][0]); send_8bit(CODE[i][1]); } command(0x8F); //显示控制命令,打开显示并设置为最亮 www.titanmec.com - 12 - LED 驱动控制专用电路 //read_key(); STB=1; TM1618 //读按键值 } /**************************************************************/ //功能:按键数据处理 /**************************************************************/ void key_process() { //由用户编写 } /**************************************************************/ //主函数 /**************************************************************/ void main() { display(); while(1) { read_key(); //读按键值 key_process(); //按键处理 } } www.titanmec.com - 13 - LED 驱动控制专用电路 TM1618 采用固定地址的程序设计流程图: 开始 初始化 设置显示模式 发送写显存的数据命令 设置显存地址 传送 1Byte 数据 送完数据? 发送显示控制命令 发送读按键命令 读按键数据并存储到 MCU 寄存器(最多 3 个字节) 有键按下? 按键处理程序 结束 www.titanmec.com - 14 - LED 驱动控制专用电路 TM1618 十一.应用电路: TM1618驱动共阴数码屏接线电路图(10): led1 SEG1 a SEG2 b SEG3 c f SEG4 d SEG5 e e SEG12f SEG13g SEG14dp DPY a b g GR1 c d dp led2 SEG1 a SEG2 b SEG3 c f SEG4 d SEG5 e e SEG12f SEG13g SEG14dp led3 SEG1 a SEG2 b SEG3 c f SEG4 d SEG5 e e SEG12f SEG13g SEG14dp DPY a b g GR2 c d dp DPY a g b GR3 c d dp led4 SEG1 a SEG2 b SEG3 c f SEG4 d SEG5 e e SEG12f SEG13g SEG14dp DPY a b g GR4 c d dp VCC 10k 10k 10k R3 S1 S2 S3 S4 R2 S5 R1 K2 DIO CLK STB SEG5 SEG4 SEG3 SEG2 SEG1 DIO GRID1 CLK GRID2 tm1618R STB GND K2 GRID3 VDD GRID4 SEG1/KS1 SEG14/GRID5 SEG2/KS2 SEG13/GRID6 SEG3/KS3 SEG12/GRID7 SEG4/KS4 SEG5/KS5 C3 C4 C5 101 101 101 VCC K2 SEG1 SEG2 SEG3 SEG4 VCC GR3 GR4 SEG14 SEG13 SEG12 SEG5 注 :滤波电容与芯片VDD GND之间回路尽量短. C2 C1 104 100uF GR1 GR2 图(10) TM1618 驱动共阳数码屏接线电路图(11): LED1 GR1 GR2 GR3 GR4 GR5 GR6 GR7 a b c d e f g LED2 GR1 GR2 GR3 GR4 GR5 GR6 GR7 DPY a f e g d b SEG1 c [LEDgn] a b c d e f g LED3 DPY a f e g d SEG2 b c [LEDgn] GR1 GR2 GR3 GR4 GR5 GR6 GR7 a b c d e f g LED4 DPY a f e g d SEG3 b c [LEDgn] GR1 GR2 GR3 GR4 GR5 GR6 GR7 a b c d e f g LED5 DPY a f e g d SEG4 b c [LEDgn] GR1 GR2 GR3 GR4 GR5 GR6 GR7 a b c d e f g DPY a f e g d b SEG5 c [LEDgn] VCC 10k 10k 10k R3 S1 S2 S3 S4 R2 S5 R1 K2 DIO CLK STB C3 SEG5 SEG4 SEG3 SEG2 SEG1 C4 C5 101 101 101 VCC C2 100uF C1 104 VCC K2 SEG1 SEG2 SEG3 SEG4 DIO GRID1 CLK GRID2 tm1618R STB GND K2 GRID3 VDD GRID4 SEG1/KS1 SEG14/GRID5 SEG2/KS2 SEG13/GRID6 SEG3/KS3 SEG12/GRID7 SEG4/KS4 SEG5/KS5 GR1 GR2 GR3 GR4 GR5 GR6 GR7 SEG5 注 :滤波电容与芯片VDD GND之间回路尽量短. 图(11) ▲注意:1、VDD、GND之间滤波电容在PCB板布线应尽量靠近TM1618芯片放置,加强 滤波效果。 2、连接在DIO、CLK、STB通讯口上三个100P电容可以降低对通讯口的干扰。 3、因蓝光数码管的导通压降压约为3V,因此TM1618供电应选用5V。 www.titanmec.com - 15 - LED 驱动控制专用电路 TM1618 十二、 电气参数: 极限参数(Ta = 25℃, Vss = 0 V) 参数 符号 范围 单位 逻辑电源电压 VDD -0.5 ~+7.0 V 逻辑输入电压 VI1 -0.5 ~ VDD + 0.5 V LED Seg 驱动输出电流 IO1 -50 mA LED Grid 驱动输出电流 IO2 +200 mA 功率损耗 PD 400 mW 工作温度 Topt -40 ~ +80 ℃ 储存温度 Tstg -65 ~+150 ℃ 正常工作范围(Ta = -20 ~ +70℃,Vss = 0 V) 参数 符号 最小 典型 逻辑电源电压 VDD 3 5 高电平输入电压 VIH 0.7 VDD - 低电平输入电压 VIL 0 - 单位 测试 条件 V - VDD V - 0.3 VDD V - 最大 电气特性(Ta = -20 ~ +70℃,VDD = 4.5 ~ 5.5 V, Vss = 0 V 参数 符号 最小 典型 最大 单位 测试条件 Ioh1 20 25 40 mA Vo = vdd-2V Ioh2 20 30 50 mA Vo = vdd-3V GRID引脚 低电平 输入电流 IOL1 -80 -140 - mA Vo=0.3V 低电平输出电流 Idout 4 - - mA VO = 0.4V,dout SEG引脚高电平输 出电流 www.titanmec.com - 16 - LED 驱动控制专用电路 高电平输出电流 容许量 Itolsg 输出下拉电阻 RL 输入电流 II - - 高电平输入电压 VIH 0.7 VDD - 低电平输入电压 VIL - - 滞后电压 VH - 动态电流损耗 IDDdyn - - TM1618 % VO = VDD – 3V, Seg KΩ K1~K3 μA VI = VDD / VSS V CLK,DIN,STB 0.3 VDD V CLK,DIN,STB 0.35 - V CLK,DIN,STB - 5 mA 无负载,显示关 - 5 10 ±1 开关特性(Ta = -20 ~ +70℃,VDD = 4.5 ~ 5.5 V) 参数 符号 最小 典型 最大 单位 测试条件 振荡频率 fosc - 500 - KHz R = 16.5 KΩ tPLZ - - 300 ns CLK → DOUT tPZL - - 100 ns CL = 15pF, RL = 10K Ω TTZH 1 - - 2 μs TTZH 2 - - 0.5 μs 下降时间 TTHZ - - 120 μs CL = 300pF,Segn, Gridn 最大时钟频率 Fmax 1 - - MHz 占空比50% 输入电容 CI - - 15 pF - 传输延迟时间 上升时间 Seg1~Seg11 CL = 300p F Grid1~Grid4 Seg12/Grid7~ Seg14/Grid5 www.titanmec.com - 17 - LED 驱动控制专用电路 TM1618 时序特性(Ta = -20 ~ +70℃,VDD = 4.5 ~ 5.5 V) 参数 符号 最小 典型 最大 单位 测试条件 时钟脉冲宽度 PWCLK 400 - - ns - 选通脉冲宽度 PWSTB 1 - - μs - 数据建立时间 tSETUP 100 - - ns - 数据保持时间 tHOLD 100 - - ns - CLK →STB 时间 tCLK STB 1 - - μs CLK↑→STB ↑ 等待时间 tWAIT 1 - - μs CLK↑→CLK ↓ 时序波形图: www.titanmec.com - 18 - LED 驱动控制专用电路 TM1618 十三、IC 封装示意图: SOP18 www.titanmec.com - 19 - LED 驱动控制专用电路 TM1618 DIP18 z All specs and applications shown above subject to change without prior notice. (以上电路及规格仅供参考,如本公司进行修正,恕不另行通知。) www.titanmec.com - 20 -