TLC5928芯片笔记【LED驱动】

#TLC5928 #LED驱动

芯片总体介绍

这是一款能够同时控制16个LED的芯片,芯片手册见附件,其总体介绍如下:

  • 16 通道,恒流源输出,带有开/关控制
  • 35 mA 能力(恒流源)
  • 10 ns 高速恒流切换瞬态时间
  • 低开启时间误差
  • LED 电源电压高达 17 V
  • 电源电压 V c c = 3.0 至 5.5 V V_{cc}= 3.0 至 5.5 V Vcc=3.05.5V
  • 恒流精度:
    • 通道间误差为 ±1%
    • 设备间误差为 ±1%
  • CMOS 逻辑电平 I/O
  • 35 MHz 数据传输率
  • 20 ns 空白脉冲宽度
  • 可读错误信息:
    • LED 开路检测(LOD)
    • 预热警告(PTW)
  • 工作温度:-40°C 至 +85°C

典型硬件连接

![[TLC5928典型电路连接图.png]]
TLC5928典型电路连接图

TLC5928引脚介绍

几个比较重要的引脚介绍如下:

名称端子DBQ/PW/PWP RegisterI/O描述
SIN223I当SIN为高电平时,在SCLK的上升沿将数据’1’写入偏移控制移位寄存器的最低有效位。
SCLK324I所有偏移控制移位寄存器中的数据在SCLK的上升沿后100ns由1位同步至最高有效位。
LAT41I由边沿触发的锁存器。在SCLK的上升沿,偏移控制数据移位寄存器中的数据被传送到偏移控制数据锁存器中,并同时更换为LED开路检测(LOD)和过热预警(PTW)数据。LAT在更新偏移控制锁存器数据后必须只切换一次以避免偏移控制锁存器数据被LOD和PTW数据替换。
BLANK2118I当BLANK为高电平时,所有常流输出(OUT0-OUT15)都被强制关闭。当BLANK为低电平时,所有常流输出由偏移控制数据在BLANK的上升沿控制,并在SID数据锁存器的输出上呈现。
IREF2320I/O通过在IREF和GND之间连接外部电阻器来设置所需的恒定电流值。
SOUT2219O此输出连接到偏移控制移位寄存器的最高有效位。在SCLK的上升沿,数据发生变化。

引脚时序图

![[TLS5928引脚时序图.png]]
TLS5928引脚时序图

实际上,引脚的时序图已经把整个芯片的核心功能描述得非常完善。这里可以根据引脚的时序图,直接介绍引脚的作用,以及该芯片该如何使用。

  • 这里的SIN代表输入的信号引脚,这里的输入信号是指控制各个LED灯开关的信号;高代表开,低代表关,每组数据通常给16个,MSB在前LSB在后,代表控制的16个LED;
  • SCLK代表时钟信号引脚,当SCLK上升沿的时候,读取SIN,将这个数挤入开关控制移位寄存器(On/Off Control Shift Register)中,同时把开关控制移位寄存器的最后一位复制到SOUT中输出;通常,输出的值会是表征LED是否存在开路或过热的值;
  • LAT代表锁存标识位;当SIN输入完一组数据的时候,通常会触发一次LAT;因为在这之前,SIN已经把16个控制数据移入了开关控制移位寄存器,此时的寄存器的值相当于下一步需要控制的值;这个值需要锁存到开关控制数据锁存器(On/Off Control Latch Data)中以直接控制LED开关。故当LAT上升沿的时候,数据锁存。需要注意的是,数据锁存完之后,原来的开关控制移位寄存器里的值会被状态信息数据寄存器SID(Status Information Data)的16位的值替代;这里的值代表了LED是否开路或过热;在接下来的过程中,如果SIN又有数据进来,移位寄存器原有的表征LED安全状态的值就会从SOUT引脚出去。单片机可以捕捉该信号来产生应对措施。
  • 后面四行是开关控制移位寄存器(On/Off Control Shift Register),横着看是移位寄存器某一位随着时间的变化,竖着看是某一时刻从LSB到MSB移位寄存器的各个位,本应该有16位,这里省略了中间12位;这里的例如“DATA15B”代表的是控制LED的数据,B代表是第二组时间段想要控制的数据,15代表是想要控制第15个LED灯。如果是“LOD15”,则代表的是第15个LED的开路检测状态(LED Open Detection,LOD)。
  • 接下来是开关控制数据锁存器(On/Off Control Latch Data),一般每16个数据读取完以后随着LAT的上升沿锁存一次,把此刻开关控制移位寄存器的数据读进来
  • SOUT是输出位。每次SIN有数据读入,SOUT就有数据输出,时间节点也是SCLK的上升沿。
  • BLANK相当于一个总开关,当BLANK是高的时候,所有灯都不亮;当它为低的时候,所有灯都正常工作,亮灭状态由数据锁存器对应的位决定。
    下面的章节将针对寄存器的功能进行更深入的介绍。

寄存器讲解(基础功能)

![[开关控制移位寄存器和锁存配置.png]]
开关控制移位寄存器和锁存配置
这里的寄存器包括开关控制移位寄存器(On/Off Control Shift Register)、开关控制数据锁存器(On/Off Control Latch Data)、状态信息数据寄存器SID(Status Information Data)。这里的寄存器都是16位的(0-15),都跟该芯片能够控制的16个LED高度相关。
需要知道的是,根据后文的时序图,开关控制移位寄存器的数据相当于信息交互的缓冲区,每次根据SCLK产生的信号一位一位地从SIN读入16个LED期望控制的状态,这里是先输入MSB控制第15个LED,最后输入LSB控制第0个LED。每次在SCLK的上升沿将SIN的数据读到开关控制移位寄存器中。随后,读完了所有数据,需要LAT发生一个上升沿信号进行锁存。锁存是将开关控制移位寄存器现有的16个数据锁存在开关控制数据锁存器中。同时,马上控制16个LED灯的端口是否输出。在BLANK为低的情况下(BLANK是总开关,低时正常工作,高时所有LED关闭),如果对应的位为0,则不输出电流;对应的位为1,则输出电流,LED灯亮。这里是恒流源输出,输出电流和TLC5928的 R I R E F R_{IREF} RIREF的值相关(具体可参考芯片手册)。
需要注意的是,如果某一个引脚没有LED灯,则需要把这一位关断,防止电流增大(芯片手册P13)。
当LAT发生完上升沿信号时,还有LED开关和过热检测的信号此时传来。可以参考后文了解相关信息。

LED开路及过热检测

当LEDx开路或者短路时,电压小于其规定的阈值电压0.3V(短路其实好理解,但是目前不知道为什么开路的时候电压竟然是小于0.3V),此时会让其对应的SID寄存器(Status Information Data,16位)的那一位置“1”,若没问题则为“0”;这个值保存在SID中无法与外界进行交互,故在当检测到LAT上升沿的时候,会锁存到开关控制移位寄存器中,每当有新的数据输入到该移位寄存器中,原来的数据就会在SOUT传出来,故可以检测;通常的检测流程是:当某一次LAT拉高,开关控制移位寄存器将原有的数据锁存,随后开关控制移位寄存器内的值变成了LED开路及过热检测得到的值;该值刚好16位保存在开关控制移位寄存器的16位中。随后,SCLK继续产生方波,SIN继续将我们需要控制的信息一位一位存入开关控制移位寄存器,在这个过程中SOUT会将原有的数据挤出来,即将原有的LED开路及过热检测得到的值被一位位挤出,单片机可以根据该值得到的信息进行控制下一次的控制。以此不断循环。每次LAT上升沿不仅代表新的控制LED灯亮灭的值锁存进入了寄存器,也代表表征此时LED开路即过热检测的信号放入了开关控制移位寄存器。
如果电路中检测到过热,即温度超过阈值 T P T W = 13 8 ∘ C T_{PTW}=138^\circ C TPTW=138C后,SID寄存器中所有的值均会变成“1”。

Layout须知

TLC5928中的输出电流变化快;此外,所有输出的通道几乎是同时打开或者关闭的,因此可能会导致系统中的GND发生偏移,导致信号误触发。为了克服该问题,应将GND线设计得尽可能宽且短(铺铜),以减少寄生电感和电阻(P17)

注意事项

  • 上电时,实际上寄存器没有写入默认值;需要重新配置之后,再打开电流输出(P13)
  • 上电时,BLANK需要拉高,防止上电随机数(P13)
  • 如果某个引脚没有连接OLED,则该引脚对应的寄存器需要设置为0(P13)

如何使用该芯片

首先,上电,注意BLANK拉高,该接的LED接好。在进入正常工作模式的时候,先拉动SIN,SIN的值代表LED亮或者灭。再拉动SCLK,当SCLK上升沿的时候值被写入开关控制移位寄存器;在SCLK上升沿的时候,读出SOUT的值;这个值代表某一位是否有LED开路或者过热,如果有的话需要单片机对下一步指令作出反应。随后SCLK下降沿的时候可以改变SIN的值,每一组一共16个值控制16个LED。在一组值传递过后,拉高LAT,随后把BLANK拉低。这样就可以控制灯的亮灭了。如果需要使用PWM脉宽调制,则可以使用定时器,在一个固定范围内,前面的某些时段拉低,后面的时段拉高,以此实现亮度的调整。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值