跳到主要内容

AN-1098使用GreenPak的I2C端口来控制RGB LED的颜色

内容

参考

对于相关的文件和软件,请访问:

https://www.dialog-semicondoduments.c亚博电竞菠菜om/products/greenpak.

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

yabo国际娱乐对话框半导体提供完整的应用程序库注意[4],其中包含了设计示例以及对话框IC中的功能和块的说明。

  1. GreenPak Designer软件,软件下载和用户指南,对话框半导体yabo国际娱乐
  2. AN-1098使用GreenPak的I2C端口控制RGB LED的Color.gp,GreenPak设计文件,对话半导体yabo国际娱乐
  3. GreenPak开发工具,GreenPak开发工具网页,对话框半导体yabo国际娱乐
  4. GreenPak应用笔记,GreenPak应用笔记网页,对话框半导体yabo国际娱乐
  5. SLG46531数据表,对话框半导体yabo国际娱乐

作者:Chuck Subled和Luke Thomas

介绍

这个应用笔记介绍如何通过i重新配置SLG46531的寄存器2C.具体地,它示出了如何改变与计数器相关联的寄存器,该计数器设置用于驱动LED的R,G和B阴极的PWM值。

重要的是要注意任何通过我的重新配置2C是易失性的,将在GreenPak重置后的POR后恢复为编程的代码。

图1. GreenPak用作更大系统中的RGB驱动程序

GreenPak福利

GreenPak是一个非常通用的低电流消耗IC。它可以从其他微控制器和更大的SOC卸载函数。例如,微控制器可以是活动的(绘制几MA的电流),并且可以通过i写入2C到SLG46531V设置RGB,然后微控制器可以进入深度睡眠模式以节省系统电流。GreenPak将根据需要管理RGB灯功能并唤醒微控制器。GreenPak还可以使用另一个I / O引脚作为中断。

GreenPak配置

图2(a)所示的GreenPak设计实现了一个简单的RGB LED驱动器。在GreenPak通用Dev板上,将销3连接到蓝色LED的阴极,销5到绿色LED的阴极和销7到红色LED的阴极。公共阳极应连接到GreenPak的VDD引脚。

图2(a)。GreenPak块图与计数器设置每个颜色的PWM
图2(b)。GreenPak仿真器窗口

请记住根据需要使用与LED系列的电流限制电阻。计数器0设置为100 Hz刷新率,以便肉眼不可见闪烁。COUNTER2具有可以设置为255 PWM步骤的0到255的寄存器。每个步骤代表0.39%。CNT2,3和4控制RGB LED的PWM。

创造一个2c命令写入寄存器位

此应用笔记不会涵盖基本的GPAK I2C命令格式。相反,我们将强调特定命令来实现RGB LED。在示例GreenPak设计文件中(发现在对话网站)我们使用了00(十进制)的默认芯片地址,我们将以十六进制格式显示为0x00。注意[代表一个我2C启动位和]表示停止位。

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

表1.计数器寄存器地址

柜台

字节地址(十六进制)

CNT0.

0xC5.

CNT2

0xC0.

CNT3

0xC1.

CNT4.

0xC2.

表1提供了本设计中使用的四个计数器中的每一个的寄存器地址。更改这些寄存器会影响三个LED和最终颜色的亮度。

由于计数器2到4范围从0到255(十进制),我们可以通过i写信给他们2C从0x00到0xFF的数据。

通过将所有这些信息放在一起,我们可以通过将以下内容写入GreenPak来关闭红色LED:

[0x00 0xc0 0x00]

同样,这将关闭绿色LED:

[0x00 0xc1 0x00]

此命令将关闭蓝色LED:

[0x00 0xc2 0x00]

要打开所有三个LED到全亮度(以及每个PWM信号为100%),我们可以简化写命令,因为三个寄存器地址是顺序的:

[0x00 0xc0 0xff 0xff 0xff]

该命令将100%PWM信号写入与红色LED相关联的计数器,然后将100%到绿色LED的计数器,最后100%到蓝色LED的计数器。

使用GreenPak开发套件模拟器

我们可以使用GreenPak开发套件仿真器来创建正确驱动LED的信号。首先,我们必须将开发套件连接到计算机或笔记本电脑的USB端口。其次,将SLG46531V IC放入插座中。第三,在GreenPak设计器软件内打开设计文件,然后单击上工具栏中的仿真器按钮。这应该如图2(b)所示。接下来我们必须启用我2软件内的C工具。这是屏幕右侧的按钮。请参见图2(c)。

在启用i之后2C工具,我们必须选择i2C虚拟输入按钮。此工具允许我们直接写入计数器寄存器。请参见图3(a)。

在计数器0(CNT0)中输入256(十进制)的值为“新值”框。这为PWM的刷新时间设置为PWM。下一个输入255进入计数器2(CNT2)的“新值”框,然后按“写入”按钮。

图2(c)。仿真模式的GreenPak仿真器窗口
图3(a)。GreenPak仿真器与我2C虚拟输入窗口

这将打开100%PWM设置的红色LED。

有关连接到RGB LED的开发套件图片的窗口设置和图3(c),请参见图3(b)。

接下来输入0进入CNT2的“新值”框,然后输入255进入CNT3的“新值”框。按“写入”,您将看到绿色LED在100%PWM上打开。

有关绿色LED的图像的窗口设置,请参见图3(d),以及绿色LED的图片的图3(e)。

同样,对于100%PWM的蓝色LED,请参见图3(f),用于图片的窗口设置和图3(g)。

为简化写入过程,同时为所有三种颜色更改PWM设置,只需使用顺序写入命令。

图3(b)。GreenPak I.2用于红色LED的100%PWM设置的C虚拟输入
图3(c)。GreenPak开发套件驾驶RGB LED中的红色LED

例如,要将50%PWM写入所有三个LED,这将是命令:

[0x00 0xc0 0x80 0x80 0x80]

此命令通过将0x80写入红色LED PWM的寄存器,然后立即将0x80写入绿色LED PWM的寄存器,最后将0x80写入蓝色LED PWM的寄存器。

图3(d)。GreenPak I.2C用于绿色LED的100%PWM设置的虚拟输入
图3(e)。GreenPak开发套件在RGB LED中驾驶绿色LED
图3(f)。GreenPak I.2C虚拟输入为蓝色LED为100%PWM设置
图3(g)。GreenPak开发套件在RGB LED中驾驶蓝色LED

结论

我们可以使用GreenPak SLG46531V来实现RGB LED驱动器功能。通过这种方式实现系统架构,可以将微控制器或其他系统SOC放置在睡眠模式中以节省整个系统功耗,这对于基于电池的便携式和可穿戴系统来说是期望的。