跳到主要内容

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

内容

工具书类

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

https://www.dialog-seminile.com/produ雷电竞官网登录cts/greenpak.

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

雷竞技电竞平台对话框半导体提供完整的应用程序库注意[5],其中包含了设计示例以及对话框IC中的功能和块的说明。

  1. GreenPak Designer软件,软件下载和用户指南,对话框半导体雷竞技电竞平台
  2. An-1100使用GreenPak的i2C端口控制RGB LED呼吸图案.GP,GreenPAK设计文件,对话框半导体雷竞技电竞平台
  3. GreenPak开发工具,GreenPak开发工具网页,对话半导体雷竞技电竞平台
  4. GreenPak应用笔记,GreenPAK应用说明网页,对话框雷竞技电竞平台
  5. SLG46531.数据表,对话框半导体雷竞技电竞平台

作者:Chuck Subled和Luke Thomas

介绍

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

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

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

GreenPak福利

GreenPAK是一款多功能、低电流消耗的集成电路。它可以卸载其他微控制器和更大SOC的功能。例如,一个微控制器可以是活动的,消耗几毫安的电流,并且可以通过I2C至SLG46531V以设置RGB“呼吸时间”(或PWM斜坡模式)。当微控制器进入深度睡眠模式以节省系统电流时,GreenPAK将管理RGB灯光功能。如果需要,GreenPAK可以使用另一个I/O引脚作为中断唤醒微控制器。

格林帕克配置

图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输出的使能。

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

此应用笔记不会涵盖基本的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.2虚拟输入窗口

在计数器3(CNT3)的“新值”框中输入21(十进制)的值。这将设置偏移计数器。接下来,在计数器4(CNT4)的“新值”框中输入20,并按下“写入”按钮。这将启用RGB LED呼吸模式,并在OE引脚(引脚20)设置为高值且单个PWM输入为高时继续。

有关呼吸PWM模式的样子,请参见图3(c)。

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

图3(c)。示波器捕捉显示LED的PWM上升和下降

结论

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