LED驱动控制专用电路TM16381©TitanMicroElectronics(发光二极管显示器)驱动控制专用电路,内部集成有MCU数字接口、数据锁存器、LED高压驱动、键盘扫描等电路。主要应用于冰箱、空调、家庭影院等产品的高段位显示屏驱动。特性说明采用功率CMOS工艺显示模式10段×8位键扫描(8×3bit)辉度调节电路(占空比8级可调)串行接口(CLK,STB,DIO)振荡方式:RC振荡(450KHz+5%)内置上电复位电路采用SOP28封装管脚定义:12345678910111213141516171819202122232425262728GRID1GRID2GRID3GRID4GNDDIOCLKSTBK3TM1638TOPVIEWK2VDDSEG1/KS1SEG2/KS2SEG3/KS3SEG4/KS4SEG8/KS8SEG7/KS7SEG6/KS6SEG5/KS5SEG9SEG10K1VDDGRID5GRID6GRID7GRID8GNDLED驱动控制专用电路TM16382©TitanMicroElectronics管脚功能说明:符号管脚名称说明DIO数据输入/输出在时钟上升沿输入/输出串行数据,从低位开始;STB片选在上升或下降沿初始化串行接口,随后等待接收指令。STB为低后的第一个字节作为指令,当处理指令时,当前其它处理被终止。当STB为高时,CLK被忽略CLK时钟输入上升沿输入/输出串行数据。K1~K3键扫数据输入输入该脚的数据在显示周期结束后被锁存SEG1/KS1~SEG8/KS8输出(段)段输出(也用作键扫描),P管开漏输出SEG9~SEG10输出(段)段输出,P管开漏输出GRID1~GRID8输出(位)位输出,N管开漏输出VDD逻辑电源5V±10%GND逻辑地接系统地▲注意:DIO口输出数据时为N管开漏输出,在读键的时候需要外接1K-10K的上拉电阻。本公司推荐10K的上拉电阻。DIO在时钟的下降沿控制N管的动作,此时读数时不稳定,你可以参考图(6),在时钟的上升沿读数才时稳定。DIO10KVCCGNDCT芯片内部电路图(1)LED驱动控制专用电路TM16383©TitanMicroElectronics显示寄存器地址:该寄存器存储通过串行接口从外部器件传送到TM1638的数据,地址从00H-0FH共16字节单元,分别与芯片SGE和GRID管脚所接的LED灯对应,分配如下图:写LED显示数据的时候,按照从显示地址从低位到高位,从数据字节的低位到高位操作。SEG1SEG2SEG3SEG4SEG5SEG6SEG7SEG8SEG9SEG10XXXXXXxxHL(低四位)xxHU(高四位)xxHL(低四位)xxHU(高四位)B0B1B2B3B4B5B6B7B0B1B2B3B4B5B6B700HL00HU01HL01HUGRID102HL02HU03HL03HUGRID204HL04HU05HL05HUGRID306HL06HU07HL07HUGRID408HL08HU09HL09HUGRID50AHL0AHU0BHL0BHUGRID60CHL0CHU0DHL0DHUGRID70EHL0EHU0FHL0FHUGRID8图(2)写LED显示数据的时候,按照从低位地址到高位地址,从字节的低位到高位操作;在运用中没有使用到的SEG输出口,在对应的BIT地址位写0。键扫描和键扫数据寄存器:键扫矩阵为8×3bit,如图(3)所示:K1K2K3KS1KS2KS3KS4KS5KS6KS7KS8图(3)LED驱动控制专用电路TM16384©TitanMicroElectronics键扫数据储存地址如下所示,先发读键命令后,开始读取按键数据BYTE1—BYTE4字节,读数据从低位开始输出;芯片K和KS引脚对应的按键按下时,相对应的字节内的BIT位为1。B0B1B2B3B4B5B6B7K3K2K1XK3K2K1XKS1KS2BYTE1KS3KS4BYTE2KS5KS6BYTE3KS7KS8BYTE4图(4)▲注意:1、TM1638最多可以读4个字节,不允许多读。2、读数据字节只能按顺序从BYTE1-BYTE4读取,不可跨字节读。例如:硬件上的K2与KS8对应按键按下时,此时想要读到此按键数据,必须需要读到第4个字节的第5BIT位,才可读出数据;当K1与KS8,K2与KS8,K3与KS8三个按键同时按下时,此时BYTE4所读数据的B4,B5,B6位均为13、组合键只能是同一个KS,不同的K引脚才能做组合键;同一个K与不同的KS引脚不可以做成组合键使用。指令说明:指令用来设置显示模式和LED驱动器的状态。在STB下降沿后由DIO输入的第一个字节作为一条指令。经过译码,取最高B7、B6两位比特位以区别不同的指令。B7B6指令01数据命令设置10显示控制命令设置11地址命令设置如果在指令或数据传输时STB被置为高电平,串行通讯被初始化,并且正在传送的指令或数据无效(之前传送的指令或数据保持有效)。数据命令设置该指令用来设置数据写和读,B1和B0位不允许设置01或11。MSBLSBB7B6B5B4B3B2B1B0功能说明01无关项,填000数据读写模式设置写数据到显示寄存器0110读键扫数据010地址增加模式设置自动地址增加011固定地址010测试模式设置(内部使用)普通模式011测试模式LED驱动控制专用电路TM16385©TitanMicroElectronics无关项,填0000000H11000101H11001002H11001103H11010004H11010105H11011006H11011107H11100008H11100109H1110100AH1110110BH1111000CH1111010DH1111100EH1111110FH该指令用来设置显示寄存器的地址。如果地址设为10H或更高,数据被忽略,直到有效地址被设定。上电时,地址默认设为00H。显示控制MSBLSBB7B6B5B4B3B2B1B0功能说明10无关项,填0000消光数量设置设置脉冲宽度为1/1610001设置脉冲宽度为2/1610010设置脉冲宽度为4/1610011设置脉冲宽度为10/1610100设置脉冲宽度为11/1610101设置脉冲宽度为12/1610110设置脉冲宽度为13/1610111设置脉冲宽度为14/16100显示开关设置显示关101显示开LED驱动控制专用电路TM16386©TitanMicroElectronics串行数据传输格式:读取和接收1个BIT都在时钟的上升沿操作。数据接收(写数据)DIOCLKSTBB0B1B2B3B4B5B6B712345678图(5)数据读取(读数据)DIOCLKSTB``````128B0B1B7``````B0B1B2B3Twait送读按键命令读取按键数据图(6)▲注意:读取数据时,从串行时钟CLK的第8个上升沿开始设置指令到CLK下降沿读数据之间需要一个等待时间Twait(最小1μS)。显示和按键:显示:驱动共阴数码管:1111111SEG1SEG2SEG3SEG4SEG5SEG6SEG7GRID1abfcgdeDPY[LEDgn]ABCDEFGSEG4SEG3SEG2SEG1SEG5SEG6SEG7GRID1图(7)LED驱动控制专用电路TM16387©TitanMicroElectronics给出共阴数码管的连接示意图,如果让该数码管显示“0”,那你需要在GRID1为低电平的时候让SEG1,SEG2,SEG3,SEG4,SEG5,SEG6为高电平,SEG7为低电平,查看图(2)显示地址表格,只需在00H地址单元里面写数据3FH就可以让数码管显示“0”。SEG8SEG7SEG6SEG5SEG4SEG3SEG2SEG10011111100HB7B6B5B4B3B2B1B0驱动共阳数码管:abfcgdeDPY[LEDgn]ABCDEFG1111111GRID1GRID2GRID3GRID4GRID5GRID6GRID7GRID1GRID2GRID3GRID4GRID5GRID6GRID7SEG1SEG1图(8)图8给出共阳数码管的连接示意图,如果让该数码管显示“0”,那你需要在GRID1,GRID2,GRID3,GRID4,GRID5,GRID6为低电平的时候让SEG1为高电平,在GRID7为低电平的时候让SEG1为低电平。要向地址单元00H,02H,04H,06H,08H,0AH里面分别写数据01H,其余的地址单元全部写数据00H。SEG8SEG7SEG6SEG5SEG4SEG3SEG2SEG10000000100H0000000102H0000000104H0000000106H0000000108H000000010AH000000000CHB7B6B5B4B3B2B1B0▲注意:SEG1-10为P管开漏输出,GRID1-8为N管开漏输出,在使用时候,SEG1-10只能接LED的阳极,GRID只能接LED的阴极,不可反接。LED驱动控制专用电路TM16388©TitanMicroElectronics键盘扫描:你可以按照图(9)用示波器观察观察SEG1/KS1和SEG2/KS2的输出波形,SEGN/KSN输出的波形见图(10)。R11kR21kvcc接示波器探头1接示波器探头2K1K2K3VDDSEG1/KS1SEG2/KS2SEG3/KS3SEG4/KS4SEG5/KS5SEG6/KS6SEG7/KS7SEG8/KS8SEG9SEG10VDDGRID8GRID7GNDGRID6GRID5GRID4GRID3GRID2GRID1GNDDIOCLKSTB图(9)IC在键盘扫描的时候SEGN/KSN的波形:SEG1/KS1SEG2/KS2SEG3/KS3SEGN/KSNTdisp=500us图(10)Tdisp和IC工作的振荡频率有关,我司TM1638经过多次完善,振荡频率不完全一致。500US仅仅提供参考,以实际测量为准。一般情况下使用图(11),可以满足按键设计的要求。S1S2S6S3S4S5K1K2K3SGE1/KS1SGE1/KS2SGE1/KS3图(11)当S1被按下的时候,在第1个字节的B0读到“1”。如果多个按键被按下,将会读到多个“1”,当S2,S3被按下的时候,可以在第1个字节的B1,B3读到“1”。▲注意:复合键使用注意事项:SEG1/KS1-SEG10/KS10是显示和按键扫描复用的。以图(12)为例子,显示需要D1亮,D2灭,需要让SEG1接示波器探头1接示波器探头2LED驱动控制专用电路TM16389©TitanMicroElectronics为“1”,SEG2为“0”状态,如果S1,S2同时被按下,相当于SEG1,SEG2被短路,这时D1,D2都被点亮。S1S21D11D2GRID1SGE1/KS1SGE2/KS2K1图(12)解决方案:1、在硬件上,可以将需要同时按下的键设置在不同的K线上面如图(13)所示,1D11D2S2S1SGE1/KS1GRID1GRID2K1K2图(13)2、在SEG1—SEGN上面串联电阻如图(14)所示,电阻的阻值应选在510欧姆,太大会造成按键的失效,太小可能不能解决显示干扰的问题。S1S21D11D2GRID1SGE1/KS1SGE2/KS2K1510510图(14)3、或者串联二极管如图(15