跳过主要内容

an -1099使用GreenPAK的I2C端口控制一个RGB LED脉冲

内容

参考文献

有关文件及软件,请浏览:

//www.xmece.com/亚博电竞菠菜products/greenpak

下载我们的免费GreenPAK设计软件[1],打开。gp文件[2],并使用GreenPAK开发工具[3]在几分钟内将设计冻结到您自己的定制IC中。

yabo国际娱乐Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductoryabo国际娱乐
  2. AN-1099使用GreenPAK的I2C端口控制一个RGB LED脉冲,绿派克设计文件,Dialog半导体yabo国际娱乐
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体yabo国际娱乐
  4. GreenPAK应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐
  5. SLG46531对话框数据表,半导体yabo国际娱乐

作者:Chuck Husted和Luke Thomas

介绍

这个应用说明解释了如何重新配置SLG46531的寄存器通过I2具体来说,它显示了如何改变与计数器相关联的寄存器,为驱动一个LED的R, G,和B阴极设置开和关时间。这就产生了一个重复的光脉冲输出。

重要的是要注意通过I进行的任何重新配置2C语言是易变的,在GreenPAK内部的POR重置后将恢复到已编程的代码。

图1所示。在更大的系统中用作RGB驱动程序

GreenPAK好处

GreenPAK是一个非常多功能的低电流消耗IC,它可以从其他微控制器和更大的SOC中卸载功能。例如,一个微控制器可以是有源的,可以产生几个mA的电流,并且可以通过I进行写入2C以SLG46531V来设置RGB“定时”(或脉冲模式)。当微控制器进入深度睡眠模式以保存系统电流时,GreenPAK将管理RGB光功能。当需要时,GreenPAK可以使用另一个I/O引脚作为中断唤醒微控制器。

GreenPAK配置

如图2(a)所示的GreenPAK设计实现了一个简单的RGB LED驱动程序。在GreenPAK Universal Dev Board上,将Pin 3连接到蓝色LED的阴极,Pin 5连接到绿色LED的阴极,Pin 7连接到红色LED的阴极。公共阳极应连接到GreenPAK的VDD引脚上。记住根据需要将限流电阻与led串联使用。

图2 (a)。GreenPAK框图,带有设置每个颜色的PWM的计数器
图2 (b)。GreenPAK模拟器窗口

计数器0设置三个LED的“时间”。在这种设计中设置的默认值是计数器零(CNT0)寄存器值50(十进制),等于523毫秒(十六进制或7D)。Counter1设置三个LED的“关闭时间”。CNT1的寄存器也被设置为50或523毫秒。为了设置RGB颜色,本设计被配置为接受在引脚2、4和6上的三个单独的外部PWM信号。引脚20用作三个LED输出的使能。

创建一个我2写寄存器位的命令

本申请说明不包括基本的GPAK I2C命令格式。相反,我们将强调实现RGB LED的特定命令。在示例GreenPAK设计文件(在Dialog网站上可以找到)中,我们使用了默认的芯片地址0x00。注释'['表示I2C开始位和']'表示停止位。

由于该设计使用两个计数器,我们需要知道每个计数器的寄存器地址。

表1。计数器寄存器地址

计数器

字节地址(十六进制)

CNT0

0 xc5

CNT1

0 xc7 0 xc8

表1提供了本设计中使用的每个计数器的寄存器地址。改变这些寄存器会影响LED的运行时间。

由于CNT1是两个字节,我们必须确保以正确的顺序写入数据。0xC7用于LSB, 0xC8用于MSB。当写入数据到GPAK芯片时,我们先写入MSB,然后写入LSB。这可以在顺序写模式下完成,以节省写时间。

通过把所有这些信息放在一起,我们可以创建一个命令,以脉冲模式打开和关闭三个LED,通过在GreenPAK中写以下内容:

要写入CNT0,我们使用以下命令:

[0x00 0xC5 0x7D]

类似地,对于CNT1,我们使用这个命令,因为CNT1有两个字节的数据:

[0x00 0xC7 0x7D 0x00]

使用GreenPAK开发工具包模拟器

我们可以使用GreenPAK开发工具包模拟器来创建正确驱动led所需的信号。首先,我们必须将开发工具包连接到电脑或笔记本电脑的USB端口。第二步,将一个SLG46531V芯片插入插座。第三,打开GreenPAK Designer软件中的设计文件,点击上方工具栏中的“Emulator”按钮。如图2(b)所示。接下来,我们必须启用I2软件中的C工具。这是屏幕右侧的按钮。

启用I后2C工具,必须选择I2C“虚拟输入”按钮。这个工具允许我们直接写入计数器寄存器。见图3(a)。

图3(一个)。GreenPAK仿真器与I2C虚拟输入窗口

在计数器0 (CNT0)的“新值”框中输入125(小数)的值。这设置了LED的开机时间。接下来在计数器1 (CNT1)的“新值”框中输入125,并按“写入”按钮。这将闪烁RGB LED,并持续,只要OE引脚(引脚20)被设置为一个高值和个别PWM输入高。

图3 (b)。GreenPAK开发工具包驱动红色LED在RGB LED

接下来在CNT1的“新值”框中输入250。按“写”,你会看到RGB LED打开的时间相同,但它会关闭的时间是原来的两倍。这个脉冲模式的仿真器窗口设置请参见图3(b)。

同样,只要在CNT0和CNT1的寄存器范围内输入一个值,就可以创建任意的脉冲模式开关时间组合。

结论

我们可以用一个GreenPAK SLG46531V来实现RGB LED驱动函数。通过这种方式实现系统架构,可以将微控制器或其他系统SOC置于休眠模式,以节省整个系统的功耗,这是基于电池的便携式和可穿戴系统所希望的。