跳过主要内容

AN-1118 8输出8位PCM LED ASM调光

内容

参考文献

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

//www.wsdof.com/雷电竞官网登录products/greenpak

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

雷竞技电竞平台Dialog Semiconductor提供了一个完整的应用笔记[4]库,包括设计示例以及Dialog IC内的功能和模块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,Dialog Semiconductor雷竞技电竞平台
  2. AN-1118 8输出8位PCM LED调光,绿派克设计文件,Dialog半导体雷竞技电竞平台
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体雷竞技电竞平台
  4. GreenPAK应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台
  5. SLG46531.对话框数据表,半导体雷竞技电竞平台

作者:余汉太阳

介绍

本应用笔记将解释如何创建一个8输出LED控制器,每个通道8位分辨率PCM(脉冲编码调制),使用GreenPAK中的ASM块。此外,I2C接口可以从MCU中卸载LED驱动功能,如图1所示。在实施过程中只需要GreenPAK IC的一部分资源;许多块可用来实现其他用户功能。

背景

GreenPAK5中的ASM块具有内置的能力,可以同时驱动8个输出,每个输出具有独立的8位代码,可以由I2C任意设置。代表模拟信号的8位串行码被称为脉冲码调制(PCM)。

图1所示。系统级视图

在这个应用中,我们通过对每个输出位的串行时序进行二进制加权,将PCM码转换为模拟调光电平,这样时间平均电压与码的二进制值成比例。

其结果与PWM(脉冲宽度调制)非常相似,其中数字信号可以简单地通过滤波转换为模拟信号。

PCM方案和PWM方案的区别如图2所示。PCM和PWM波形的平均值相同,均为700mV。然而,PWM每个周期需要更少的转换,因此更适合于需要最小化开关能量损失的应用。雷竞技安卓下载然而,在LED应用中,周期速率相雷竞技安卓下载对较慢,所以PCM调光方案的额外过渡没有问题。

优点是,从二进制代码到PCM的自然转换对于在GreenPAK中实现来说更节省资源。

图2。PWM vs PCM

ASM表示GreenPAK设计

该设计从ASM开始,八态异步状态机。每个状态代表代码中的二进制比特。

表1。ASM状态机

State0

State1

State2

State3

State4

State5

State6

State7

少量

bit0 (LSB)

Bit1.

Bit2.

Bit3.

Bit4.

Bit5.

Bit6.

Bit7(MSB)

时间(T)

T / 256

T / 128.

T / 64

T / 32

T / 16

T / 8.

T / 4.

T / 2.

责任%

0.390625%

0.78125%

1.5625%

3.125%

6.25%

12.5%

25%

50%

转换

CLK / 2

CLK / 4

CLK / 8

CLK / 16.

CLK / 32

CLK / 64

CLK / 128.

重新启动信号

图3。ASM状态机

状态机循环所有状态,确保每个状态持续指定的时间。通过ASM的一个完整循环对应一个周期。请参见图3中的状态图。状态图描述了状态转换的方向,从初始状态0开始,顺时针移动到状态7。状态7然后循环回到状态0,开始一个新的周期。

状态0表示最低有效位bit0,状态7表示最高有效位bit7。每个状态所代表的位、占空比和占空比请参见表1。

状态过渡信号以严格的间隔出现,以确保每个状态只持续指定的时间量。

这一数额是计算期间的一小部分0至7个国家。参见图4。每个OSC部门都连接到顺序过渡信号。每个后续状态持续的时间是前一个状态的两倍,因为每个后续状态都是在左边的二进制位。即状态0的持续时间为T/256,状态1的持续时间为T/128。

GreenPAK设计,ASM输入

ASM状态临时输入必须是CLK的二进制划分,如上一节所述。在这个设计中,划分是用dff来完成的。有几种方法可以实现这一点,我们将着眼于蛮力方法以及更优雅的解决方案。

图4.变异#1,八个dffs

第一种方法是将一个DFF串接在另一个DFF之后,得到8个被分割的时钟。第二种方法是使用PGEN来产生所有必要的过渡信号。下面将对此进行讨论。

注1:重要的是要记住,ASM过渡输入是高主动的,这将在生成ASM输入信号时考虑。

方法1 - 8个DFFs

第一种方法总共使用8个DFF,每个ASM输入一个DFF。在这里,管道延迟被用作DFF,但带有额外的反向输出。每个DFF切换到时钟下一个DFF,这样每个DFF的频率是前一个DFF的一半,产生所需的DFF输入信号。

每个DFF输出都反转以防止所有信号同时高,这将导致ASM以圆圈循环。最后,循环在每个周期结束时通过上升沿检测器(Pdly)重置,这将改变256至255的周期宽度,其效果在“分辨率”部分中讨论。

注意DFF6是NORed带有CLK/128,当CLK/128上升时,CLK/1被强制为零,如图1所示。这也是为了防止CLK/1和CLK/128同时过高,从而导致从状态7到状态0的不必要转变。

时间图1所示。变体#1的ASM输入

方法#2 - PGEN和时钟复用

第二种方法使用一个PGEN和时钟复用电路来产生定时脉冲。PGEN配置有1S和0的图案,如图6所示。选择图案的1和0,使得上升和下降沿对应于时序EDGE_DET0检测上升沿和边缘_DET1检测下降沿。当组件检测到边缘时,这些块的输出脉冲高。

我们使用两个边缘检测器而不是一个,这样每个其他ASM输入都有相同的源。
PGEN仅限于16位模式,这仅是四个连续边缘的足够位。为了将PGEN拉伸到下一个边缘,在快速2MHz / 8时钟和慢速2MHz / 8/16时钟之间复用到PGEN时钟的输入。多路复用器的选择位来自DFF5,当检测到两个红色脉冲时,从高到低电平降低。DFF5还支持/ 16管延迟分频器。

图5。# 2变种。ASM DFFs产生的过渡信号
时序图2.变体#2的ASM输入
图6。PGEN配置
图7。ASM输出和输出配置

比较

方法#1使用17个组件,而Method#2仅使用7,最多留下12个组合功能组件,其中7个可以配置为计数器。虽然第一个设计易于理解和进入另一个项目,但第二种方法中的多路复用节省了更多的资源。在此应用笔记中,我们将继续分析PGEN和时钟复用解决方案。

表2。比较

方法1 - 8个DFFs

方法#2 - PGEN和时钟复用

使用宏单元

16 + 1

7

剩下的宏单元

3.

12

255

255

时序图3.图6中输出配置的ASM输出定时

GreenPAK设计,ASM输出

ASM output是连接到GPIOs 20到13的PCM代码。

图7中的输出表被配置为使得每个ASM输出表示一个ASM状态。这是为了示出时序图3中所示的每个状态的相对定时。OUT0是第一且最短的,因为它代表了STAME0-BIT0。Out7是最后一个和最长的,因为它代表了State7-Bit7。每个输出与其相邻输出没有重叠,每个输出都是前一个输出的两倍。

决议

唯一PCM代码的总数为256,从0到255.对于这种设计,该期间分为255个段。通常,GreenPak的PWM块输出具有256个段的段。

最后一段强制强迫高或低,使得输出占空比范围为0-99.6%或0.4-100%。

为了实现第256段,我们需要第9个状态。然而,GreenPAK5的ASM只有8个州。

为了避免重置,我们将周期强制为255段。这导致占空比范围从0到100%,分辨率是0.39215%(1/255)而不是0.390625%(1/256)。这种逻辑已经集成到具有15位模式的PGEN中。PGEN将通过15个快时钟和15个慢时钟进行计时。每个慢钟比快钟慢16倍。因此,段的总数为:16*15 + 15 = 255。

14总调制输出

除了从ASM的八个输出,我们可以利用剩余的计数器作为更多的调制输出。请参见图8。

由于PCM和PWM可互换用于时间平均电压应用,因此剩余计数器可用于创建PWM输出。雷竞技安卓下载一个计数器创造了这个时期,其余部分比周期短。8 ASM输出+ 6个CNT输出使14个PWM / PCM输出。

I2C

单片机可以利用I2C来改变PCM值,只在需要时进行更新。

ASM输出配置位于字地址(0x0h) D0, D1, D2, D3, D4, D5, D6和D7。表2视图。

为了改变一个ASM输出,我们必须重写所有8个寄存器。例如,在表2中,OUT2被更改为0x42。这需要我们写入8字节的数据,从D0到D7,其中第三个最低有效位在下面的'红色'被改变。命令如下:

[0xSA, 0xD0, 0x22, 0xE7, 0xB0, 0xE4, 0xB0, 0xE4, 0x70, 0xE8]

其中SA为从地址。

在400kHz时,不包括启动位和停止位,单片机可以改变输出代码的最大速度为225µs (4.4kHz)。

这给了我们足够的空间,因为肉眼无法识别超过24Hz的变化。

在I2C写入期间,输出不会在更新数据时缩小。这是因为始终锁存ASM状态输出,直到状态转换为止。

但是,也可能存在一个周期,这个周期既不是一个PCM代码也不是另一个,而是由于在周期中间的数据变化而将两者混合在一起。

其他示例命令有:

[0xSA,0xD0,0xAA 0xcc 0xF0 0x00 0x00 0x00 0x00 0x00]输出7,6,5,4,3,2,1,0

[0xSA, 0xD0, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80]输出图6中的单位矩阵

图8。额外的计数器输出
表3. I2C字地址和数据字节示例

字地址

7

6

5

4

3.

2

1

0

数据字节

D0

0

0

1

0

0

0

1

0

0将

D1

1

1

1

0

0

1

1

1

0 xe7

D2

1

0

1

1

0

0

0

0

0 xb0

D3

1

1

1

0

0

1

0

0

0 xe4

D4

1

0

1

1

0

0

0

0

0 xb0

D5

1

1

1

0

0

1

0

0

0 xe4

D6

0

1

1

1

0

0

0

0

0x70.

D7

1

1

1

0

1

0

0

0

0 xe8

小数

190

234

255

84.

128

42

3.

2

波形的功能

D0 -引脚#20 (out0)

D1 - PIN#19(OUT1)

D2 - PIN#18(OUT2)

D3 - PIN#17(OUT3)

D4 - PIN#16(OUT4)

D5 - PIN#15(OUT5)

D6 -引脚#14 (out6)

D7 -引脚#13 (out7)

D8 -(红色)

D9 -(美联储)

D10 - (PGEN OUT)

D11 - PIN#8(SCL)

D12 -引脚9号(sda)

图9。单位矩阵
图10.放大(20us / div)
图11. i2c在0xD7时写入
图12。I2C写入0xD6

结论

SLG46531V ASM可以配置为实现八个PCM输出通道,每个PCM输出具有8位分辨率。所有输出都会同步到ASM周期,输出代码可以用I2C重写。这允许GreenPak5独立于MCU运行,这可能会在一段时间内唤醒以更新PCM代码,节省电量和GPIO。

使用多路复用时钟和图案发生器,7个组件被用来做ASM输入,留下12个其他组件备用。

在计数器/延迟模式下配置组合宏单元允许最多6个PWM输出信号,总共14个脉冲调制输出。在20针格林纳克5中,我们可以有效地驱动14个输出,从2个I2C输入接收信息,仍然有2个GPIO,可用于MCU和GreenPak之间的启用或中断。在此应用笔记中,您应该能够使用GreenPak5和ASM制作自己的基本资源高效的PCM输出。