跳到主要内容

AN-1100使用GreenPak的I2C端口控制RGB LED呼吸模式

内容

参考文献

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

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

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

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

  1. GreenPak Designer软件,软件下载和用户指南,对话框半导体yabo国际娱乐
  2. An-1100使用GreenPak的i2C端口控制RGB LED呼吸图案.GP,绿派克设计文件,Dialog半导体yabo国际娱乐
  3. GreenPak开发工具,GreenPak开发工具网页,对话框半导体yabo国际娱乐
  4. GreenPak应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐
  5. SLG46531数据表,对话框半导体yabo国际娱乐

作者:Chuck Subled和Luke Thomas

介绍

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

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

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

GreenPak福利

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

GreenPAK配置

图2(a)所示的GreenPak设计实现了一个简单的RGB LED驱动器。在GreenPak通用Dev板上,将销3连接到蓝色LED的阴极,销5到绿色LED的阴极和销7到红色LED的阴极。公共阳极应连接到GreenPak的VDD引脚。请记住根据需要使用与LED系列的电流限制电阻。

图2(a)。GreenPak块图与计数器设置每个颜色的PWM
图2 (b)。计数器和逻辑定时

呼吸模式是通过两个计数器之间的不断变化而产生的。每个计数器将输出一个高脉冲为他们的一个时钟周期的程序周期。通过编程使CNT3比CNT4高一个计数,我们在计数器的输出脉冲之间产生了一个时钟宽度的偏移。然后将这两个信号异或输入DFF的时钟输入,DFF配置为在其时钟输入的每个上升沿切换。

图2(b)显示了计数器的前两个时段。您可以通过主计数器的每个时段,通过一个时钟周期看到偏移计数器相对于主计数器的偏移。计数器输出之间的时差确定输出LED信号的脉冲宽度。主和偏移计数器的输出之间的相对差异将生长,直到输出信号处于完整PWM之前。然后它将翻转并开始减少PWM,直到达到最小占空比,这将再次启动整个过程。

为了设置RGB颜色,该设计被配置为在引脚2,4和6上接受三个单独的外部PWM信号。引脚20用作三个LED输出的使能。

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

此应用笔记不会涵盖基本的GPAK I2C命令格式。相反,我们将强调特定命令来实现RGB LED。在示例GreenPak设计文件中(在对话框网站上找到),我们使用了0x00的默认芯片地址。注意'['代表一个我2C起始位和']'表示停止位。由于设计使用了两个计数器,我们需要知道每个计数器的寄存器的地址。

表1.计数器寄存器地址

柜台

字节地址(十六进制)

CNT3

0xC1.

CNT4.

0xC2.

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

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

要写入CNT3,我们使用此命令将21(十进制)写入CNT3寄存器:

[0x00 0xc1 0x15]

同样,对于CNT4,我们使用此命令将20(十进制)写入CNT4寄存器:

[0x00 0xC2 0x14]

使用GreenPAK开发工具包模拟器

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

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

图3(a)。GreenPak仿真器与我2C虚拟输入
图3(b)。GreenPak仿真器I.2C虚拟输入窗口

在计数器3 (CNT3)的“新值”框中输入21(小数)的值。这将设置偏移计数器。接下来,在4号计数器(CNT4)的“新值”框中输入20,并按“写入”按钮。这将启用RGB LED呼吸模式,并持续,只要OE引脚(引脚20)被设置为一个高值和个别PWM输入高。

请参见图3(c)呼吸PWM图案的样子。

同样,只要在CNT3和CNT4的寄存器范围内输入一个值,并且CNT3的寄存器比CNT4高一个值,就可以创建任意长度的呼吸模式。

图3 (c)。示波器捕获显示PWM斜坡上和下的led

结论

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