LP5562调光芯片驱动
LP5562调光芯片驱动
芯片介绍
LP5562是一款设计用于产生多种照明效果的四通道LED驱动器。
四个独立的 LED 通道具有准确的可编程电流吸收能 力,从 0mA 到 25.5mA(步长 100μA),以及灵活的PWM控制 每个通道可被配置为三个程序后执行引擎, 程序执行引擎具有使用 PWM 控制来产生所需照明序列的程序存储器。
-
W :LED1控制脚
-
ADDR_SEL_1 : 地址选择引脚1
-
SDA : IIC数据脚
-
VDD:电源脚
-
ADDR_SEL_0:地址选择引脚0
-
SCL:IIC时钟脚
-
CLK_32K:外接32kHz时钟
-
GND:地
-
EN/VCC:使能引脚
-
B :LED2控制脚
-
G :LED3控制脚
-
R :LED4控制脚
通讯介绍
IIC通讯
IIC器件地址
由
ADDR_SEL_1 与ADDR_SEL_0组合控制
寄存器介绍
LED电流控制寄存器
W CURRENT Register
地址:(0FH) 写入0-255
B CURRENT Register
地址:(05H) 写入0-255
G CURRENT Register
地址:(06H) 写入0-255
R CURRENT Register
地址:(07H) 写入0-255
PWM控制器
W LED Output PWM Control Register
地址:(0EH) 写入0-255
B LED Output PWM Control Register
地址:(02H) 写入0-255
G LED Output PWM Control Register
地址:(03H) 写入0-255
R LED Output PWM Control Register
地址:(04H) 写入0-255
使能寄存器
LOGEN_EN:使能对数调整效果如下。
CHIP_EN:使能芯片顺序启动
ENG1_EXEC:
00→保持:等待当前命令完成,然后在保持EXEC模式保持时停止。在此模式下只能读或写
01→步骤:执行由当前ENG1中定义的指令,并将ENG1_EXEC更改为00b(保持);
10→运行:从当前ENG1中定义的程序计数器值开始;
11→由当前引擎1PC值定义的执行指令,并将ENG1_EXEC更改为00b(保持)
ENG2_EXEC与ENG3_EXEC同上
活动模式寄存器
ENG1_MODE:
00→关闭
01→将程序加载到SRAM,ENG1;
10→运行由ENG1_EXEC定义的程序;
11→直接控制
ENG2_MODE与ENG3_MODE同上
配置寄存器
PWM_HF:0→使用了256Hz的PWM时钟 1→使用了558Hz的PWM时钟
PWRSAVE_EN:1→已启用省电模式
CLK_DET_EN:
00→外部时钟
01→内部时钟;
10→自动选择;
11→内部时钟;
LED映射寄存器
W_ENG_SEL:
00→输出的PWM由PWM Control Register控制;
01→输出的PWM由Engine 1;
10→输出的PWM由Engine 2;
11→输出的PWM由Engine 3;
R_ENG_SEL、G_ENG_SEL、B_ENG_SEL同上
内部PWM编程规则
PWM变化规则定义
-
Increment:步骤数为Increment+1。注意:0是一个等待指令
-
Sign:0→增加PWM的输出量; 1→减少PWM的输出
-
Step time: 一步的时间=(步骤数)x(预压后的时钟)注:0表示设置PMW步骤时间
-
Prescale:0→将主时钟(32.768Hz)除以16=2048Hz、0.49毫秒的循环时间; 1→将主时钟(32.768Hz)除以512=64Hz,15.6毫秒的循环时间
设置PWM要到达的目标
0-255
开始启动
写入:00000000000
设置程序循环次数
-
loop count:循环次数,0为无限循环
-
step number:
结束指令
-
int:是否产生中断 0→不产生中断,1→激活中断
-
reset:复位设置 0→保持当前的PWM值,1→PWM值变为0
激活命令
- wati trigger:等待已定义的引擎的触发器。在同一命令中可以等待多个触发器0-7。位0是引擎1,位1是引擎2,位2是引擎3。
- send trigger:为已定义的引擎发送触发器。可以在同一命令中定义多个触发器。位0是引擎1,位1是引擎2,位2是引擎3