I2C接口18路LED呼吸灯驱动IS31FL3218互相替代SN3218替换HTR3218

本文主要是介绍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

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
IS31FL3218-QFLS2-TR

SN3218

产品型号 封装形式
SN3218AI424E QFN-24
SN3218AIN24E SOP-24
SN3218

HTR3218S

HTR3218 HTR3218SQER QFN4×4-24L 该型号管脚与其他不兼容
HTR3218S HTR3218SSQER QFN4×4-24L
HTR3218S

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 写入“停止”信号

内部框图

SN3218内部框图

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亮度伽玛补偿数据:

32级的LED亮度伽玛补偿数据

采用 64 级的LED亮度伽玛补偿数据:

64 级的LED亮度伽玛补偿数据
注意:上表的32 级伽玛补偿数据为计算出的标准值,64 级伽玛补偿数据为实验结果的推荐值。

芯片关断模式

芯片关断模式可以用于减少功耗。在芯片关断模式时,所有的寄存器保持原数据不变。

软件关断

通过对配置寄存器(00h)中的 SSD 位置“0”,SN3218A进入软件关断模式。在此模式时,芯片只消耗 3.1μA(典型的)的电流。
当 SN3218A 进入软件关断模式时,所有的电流输出端口都将关闭,18 路 LED 无显示。

硬件关断

当 SN3218A 的 SDB 脚拉低时,芯片进入硬件关断模式。

这篇关于I2C接口18路LED呼吸灯驱动IS31FL3218互相替代SN3218替换HTR3218的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/956854

相关文章

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

股票数据接口-陈科肇

陈科肇 新浪财经 sz-深圳sh-上海历史分价表:http://market.finance.sina.com.cn/pricehis.php?symbol=sz000506&startdate=2016-12-27&enddate=2016-12-27历史成交明细(当日成交明细):http://vip.stock.finance.sina.com.cn/quotes_service/v

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

react笔记 8-18 事件 方法 定义方法 获取/改变数据 传值

1、定义方法并绑定 class News extends React.Component {constructor(props) {super(props)this.state = {msg:'home组件'}}run(){alert("我是一个run") //方法写在类中}render() {return (<div><h2>{this.state.msg}</h2><button onCli

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI