本文主要是介绍I2C接口18路LED呼吸灯驱动IS31FL3218互相替代SN3218替换HTR3218,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
I2C接口18路LED呼吸灯控制电路IC
该型号IC为QFN24接口,属于小众产品,IS31FL3218、SN3218、HTR3218S管脚兼容,需要注意的是HTR3218管脚与其他型号不兼容。
I2C接口可实现多个LED灯的呼吸灯控制,可实现单色控制18个LED灯,双色控制9个LED灯,3色全彩LED灯可控制6个。
本文以SN3218做简单介绍。
本文末尾有32 级和64级的LED亮度伽玛补偿数据,可参考,在LED呼吸灯亮度控制有较大阶跃或亮度变化不明显时,可参考。
中文规格书见绑定资源
SN3218丝印
SN3218典型应用电路
典型应用电路图
注1:REXT= 3.3kΩ 时,每路最大输出电流为21mA。每路最大电流可通过外接电阻REXT设置,详情请见第10 页。
注2:PCB 布线时,芯片需远离手机天线放置,防止天线对芯片辐射造成影响。
IS31FL3218-QFLS2-TR
IS31FL3218-QFLS2-TR QFN-24, 2500/Reel
IS31FL3218-GRLS2-TR SOP-24 1000/Reel
IS31FL3218-GRLS2 SOP-24 30/Tube
SN3218
产品型号 封装形式
SN3218AI424E QFN-24
SN3218AIN24E SOP-24
HTR3218S
HTR3218 HTR3218SQER QFN4×4-24L 该型号管脚与其他不兼容
HTR3218S HTR3218SSQER QFN4×4-24L
SN3218简介
SN3218A 是一款 18 路呼吸灯驱动芯片,每路单独 256级细腻灰度可控。单路最大输出电流可以通过一个外部电阻设定,最大电流为 38mA。
主控器件通过 I2C 接口对 SN3218A 进行编程控制,通过将 SDB 脚拉低或软件设置可关断芯片,进入低功耗模式。SN3218A 从地址为“1010 1000”。
SN3218A 使用 QFN-24(4mm × 4mm)和 SOP-24 的封装形式。工作电压在 2.7V ~ 5.5V,可在-40°C ~+85°C 的温度范围下工作。
SN3218特性
工作电压 2.7V ~ 5.5V
I2C 接口通信,支持连续写数据,地址自加功能
内置复位寄存器
每路 LED 可独立控制
LED 亮度支持 256 级细腻调节
-40°C ~ +85°C 的工作温度
QFN-24(4mm × 4mm)、SOP-24 封装
SN3218应用
手机和其它掌上电子设备的 LED 显示家电类 LED 显示
SN3218引脚定义
引脚号 引脚名 描述
1 OUT18 输出端口。
2 R_EXT 外接电阻输入引脚,设定输出电流值。
3 VCC 电源电压输入。
4 GND 接地。
5 SDA I2C数据线。
6 SCL I2C时钟线。
7~23 OUT1~ OUT17 输出端口。
24 SDB 关断芯片,低电平有效。
底部散热片 接地。
详细介绍
I2C 通信接口
SN3218A 使用两条符合 I2C 通信协议的串行传输线SDA 和 SCL 来控制芯片的工作方式。SN3218A 使用固定的 8 位从地址“1010 1000”。
本芯片只支持写操作。
I2C 总线支持数据双向传输。SCL 为单向端口,SDA为双向端口,开漏输出驱动,需外接上拉电阻(典型值为 4.7kΩ)。最大时钟频率为 400kHz。在这种情况中,主控器件为单片机等控制器,从器件为 SN3218A。
图 2 为 I2C 的时序图,在 SCL 为稳定的高电平时,SDA为闭锁状态并且在不使用的时候应保持高电平。
“开始”信号是由 SCL 为高电平时将 SDA 拉低产生的。首先传送 8 位从地址。当 SCL 为高电平时,SDA上的每个地址位必须保持稳定。
在最 后 一 位 数 据 传 送 出 去 后 , 主 控 器 件 会 检 测SN3218A 的应答信号。主控器件通过上拉电阻释放SDA 线为高电平,然后使 SCL 发送一个脉冲。如果SN3218A 正确的接收到 8 位数据,在 SCL 的脉冲期间它将使 SDA 拉低;如果 SDA 线不为低,则表示数据没有正确接收,主控器件将会发送一个“停止”信号(稍候介绍)并且中断数据传递。
在 SN3218A 的应答信号发送之后,寄存器的地址将被发送。寄存器地址发出后,SN3218A 也必须产生一个应答位来表示寄存器地址是否被正确接收。
接下来传送的是 8 位寄存器数据。在 SCL 保持稳定的高电平时每位数据位都是有效的。8 位数据传送完后,SN3218A 同样需要产生一个应答位来表示数据的正确接收。
“停止”信号将结束数据的传送。当 SCL 信号为高电平时将 SDA 拉高就产生了“停止”信号。
地址自加
如果有多个数据要传送给 SN3218A,只需发送第一个数据写入的寄存器地址。在 SN3218A 接收数据期间,寄存器地址会自动加 1,下一个传送的数据将写入新的寄存器地址中,如此继续,在数据连续传送期间寄存器地址会一直增加,直到 I2C 写入“停止”信号
内部框图
PWM 控制
通过设置 PWM 寄存器(01h~12h)来调节 18 路 LED的亮度值。如在 PWM 寄存器中写入“0000 0100”,则输出为第 4 级亮度。
连续写入数据使 PWM 亮度逐渐升高或降低即可实现LED 呼吸效果。
REXT 设置
SN3218A 的 18 路输出最大电流可通过外接电阻 REXT设置。
REXT 推荐使用的最小阻值为 2kΩ,最大电流达 38mA。
LED 呼吸灯非线性修正
使用 SN3218A 实现 LED 呼吸效果时,为得到更好的呼吸效果,建议对呼吸控制进行非线性修正。
SN3218A 内部实现线性的 256 级灰度的 PWM 调光。
由于人视觉对亮度的误差,电流线性增加时,视觉上会感觉到呼吸开始时亮度变化快,然后很快进入亮度饱和的问题。为了解决这个问题,在呼吸时,应该采用伽玛补偿的方法,达到视觉效果的线性。
为了显示更细腻的效果,可采取更多的输出级数,防止呼吸时产生可观察到的亮度的跳变。推荐的经验值是,从最暗到最亮的一个呼吸周期 T 内,当 T=1s,推荐采用有伽玛补偿的 32 个亮度等级;当 T=2s,推荐采用有伽玛补偿的 64 个亮度等级,以此类推。上述推荐值是 LED 没有任何遮挡的条件下,测试得到的经验值。如果采用挡光板等遮挡 LED,使 LED 发光更加柔和,可以采用更少的亮度等级实现。具体的等级数,需要根据实际的挡光材料具体测试。
采用 32 级的LED亮度伽玛补偿数据:
采用 64 级的LED亮度伽玛补偿数据:
注意:上表的32 级伽玛补偿数据为计算出的标准值,64 级伽玛补偿数据为实验结果的推荐值。
芯片关断模式
芯片关断模式可以用于减少功耗。在芯片关断模式时,所有的寄存器保持原数据不变。
软件关断
通过对配置寄存器(00h)中的 SSD 位置“0”,SN3218A进入软件关断模式。在此模式时,芯片只消耗 3.1μA(典型的)的电流。
当 SN3218A 进入软件关断模式时,所有的电流输出端口都将关闭,18 路 LED 无显示。
硬件关断
当 SN3218A 的 SDB 脚拉低时,芯片进入硬件关断模式。
这篇关于I2C接口18路LED呼吸灯驱动IS31FL3218互相替代SN3218替换HTR3218的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!