摘要:本应用笔记介绍MAX6964 LED驱动器的特性以及在需要亮度控制的应用中怎样正确使用这些特性。本应用笔记还提供实例程序,演示主机和MAX6964每个端口的亮度控制选项。LED亮度控制功能非常适合汽车应用,在这种应用中,白天和晚上不同状态下需要对LED进行亮度调整。
MAX6964是大电流输出、17端口LED驱动器,具有8位脉冲宽度调制(PWM)亮度控制功能。每个端口支持最大50mA的吸收电流。流入地引脚的最大总吸收电流被限制为350mA。8位PWM亮度控制被分成应用于所有端口的4位主机控制,以及另外4位独立端口控制。主机亮度控制可以用于调整普通设备LED亮度,以适应环境亮度变化,例如汽车在白天和晚上的情况。独立端口控制可以用于产生符合应用需求的亮度。或者,可以采用4个全局控制位来同时控制所有独立端口的亮度。寄存器0x0E的D0位到D3位可以用于全局或者端口O16亮度控制,而且,可以结合主机和独立亮度控制功能来产生所有端口的渐暗效果。
大家通常都知道,如果光源接通/关断足够快,那么,人眼感觉到物体是一直亮着的。PWM亮度控制功能改变接通时间,同时将接通/关断保持在固定频率上,从而调整感知亮度。为避免闪烁效应,PWM接通/关断频率一般要高于100Hz。MAX6964的PWM亮度控制由内部振荡器进行驱动,额定频率为32kHz。MAX6964的PWM持续240个时钟周期,产生32000/240 = 133.33Hz的PWM接通/关断频率。
当相应的极性位是0时,和MAX6964输出相连接的LED的亮度取决于主机和独立端口控制的重叠接通时间(逻辑低电平)。
MAX6964的主机亮度控制由寄存器0x0F的D7–D4位确定。这4个主机控制位将PWM周期分成15个时间片。主机接通时间片分别是0001、0010、...、1101和1110位模式的1/15、2/15、...、13/15和14/15。
每个端口以4位分组的独立端口控制位位于寄存器0x10至0x17。端口16控制位位于寄存器0x0F的D3至D0。如果使能了该选项,寄存器0x0F的这些位(D3–D0)也被用于全局控制。每个主机时间片含有16个内部振荡器时钟周期。这些时钟周期可以分别工作在具有0000、0001、...、1110和1111位模式的1/16、2/16、...、15/16和16/16。
图1显示了当极性为是0时,相应于0010位模式2/15主机接通时间的端口输出波形,以及相应于0001位模式2/16独立端口接通时间的端口输出波形。有两种主机接通时间片,二者都可以接通2/16,由独立端口的接通时间决定。

图1. 一个端口的输出波形
端口7到端口0以及端口15到端口8的相位0极性位分别位于寄存器0x02和0x03。同样的,端口7到端口0以及端口15到端口8的相位1极性位位于寄存器0x0A和0x0B。端口16的极性由寄存器0x0F的相位1 (D5)和相位0 (D4)位指示。当没有使能闪烁特性时,只和相位0极性位有关。
图2显示了具有相同主机和独立端口位模式0010和0001的端口输出波形,但是极性位是1。对比图1和图2,可以看出,接通和关断时间相反—它们构成了互补波形。最好采用极性0来设置亮度等级,但是闪烁时需要采用极性1。

图2. “1”的互补波形
MAX6964驱动LED时,触发BLINK输入,或者翻转闪烁翻转位(寄存器0x0F的D1),使其闪烁(接通和关断)。闪烁使能位(寄存器0x0F的D0)必须设置为1,以激活BLINK输入和闪烁翻转位。每次闪烁时,主机控制器需要改变BLINK输入逻辑电平或者写入MAX6964。使能闪烁(D0 = 1)后,某一端口的LED极性与相位0或者相位1相关,具体取决于BLINK输入和闪烁翻转位异或的结果是0还是1。
为激活所需端口的闪烁功能,相应的相位0和1极性位必须不同。当使能了闪烁后,由于PWM亮度控制还在起作用,闪烁LED不但可以接通和关断,而且还可以受控,在正常和互补波形基础上,亮度在较亮和较暗模式之间变化。而且,通过分别选择不同端口相位0和1逻辑电平,它们能够反相闪烁,或者根本就不闪烁。例如,设置端口1相位0位为0,相位1位为1,端口2相位0位为1,相位1位为0,使它们反相闪烁。设置端口的相位0和相位1位同时为0或者1将使端口停留在较亮或者较暗模式中。
图3显示了最初以及互补波形相位0和相位1的闪烁。相位0和相位1的持续时间取决于主机控制器的工作,一般要比明显闪烁的单个PWM周期长得多。

图3. 相位0和相位1之间的闪烁
下面的I²C命令序列发送给MAX6964,以接通LED,达到一定的PWM亮度等级。
下面的3条I²C写命令可用于接通O16 LED,达到最小亮度等级。MAX6964的I²C器件地址是0x49。
0x49 0x0F 0x30 // Turn off the global bit
0x49 0x0E 0x10 // Select 1/15th for master and 1/16th
// for O16
0x49 0x0F 0x00 // Set phase 0 and 1 polarity bits of
// O16 to 00
可以采用下面的I²C写命令来接通所有的LED,达到最小亮度等级。
0x49 0x0F 0x30 // Turn off the global bit
0x49 0x0E 0x10 // Select 1/15th for master and 1/16th for O16
0x49 0x0F 0x00 // Set phase 0 and 1 polarity bits of O16 to 00
0x49 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 // Set 1/16th for all ports
0x49 0x02 0x00 0x00 // Set phase 0 polarity bits for all ports
最后两条命令利用了寄存器地址自动递增特性,支持使用单条写命令写入多个寄存器。
LED有时需要在上电期间逐渐接通。可以在每个主机设置中,设置主机控制为低到高,改变每个端口控制为从低到高,从而调整LED亮度从低到高。由于某些主机和独立端口组合产生相同或者相似的亮度等级,并不需要进行所有的设置来产生亮度递增。在高亮度等级上,必须跳过某些底层独立端口设置(表1)。由于跳过了某些相同或者相似的亮度等级,亮度等级的增加基于双环(主机亮度变化为一个环,独立端口为第二个环)。表1只显示了240种组合中的59步。
表1. 双环递增
| Individual |
Master |
Intensity |
Individual |
Master |
Intensity |
| X |
0 |
0 |
C |
4 |
52 |
| 0 |
1 |
1 |
D |
4 |
56 |
| 1 |
1 |
2 |
E |
4 |
60 |
| 2 |
1 |
3 |
F |
4 |
64 |
| 3 |
1 |
4 |
C |
5 |
65 |
| 4 |
1 |
5 |
D |
5 |
70 |
| 5 |
1 |
6 |
E |
5 |
75 |
| 6 |
1 |
7 |
F |
5 |
80 |
| 7 |
1 |
8 |
D |
6 |
84 |
| 8 |
1 |
9 |
E |
6 |
90 |
| 9 |
1 |
10 |
F |
6 |
96 |
| A |
1 |
11 |
D |
7 |
98 |
| B |
1 |
12 |
E |
7 |
105 |
| C |
1 |
13 |
F |
7 |
112 |
| D |
1 |
14 |
E |
8 |
120 |
| E |
1 |
15 |
F |
8 |
128 |
| F |
1 |
16 |
E |
9 |
135 |
| 8 |
2 |
18 |
F |
9 |
144 |
| 9 |
2 |
20 |
E |
A |
150 |
| A |
2 |
22 |
F |
A |
160 |
| B |
2 |
24 |
E |
B |
165 |
| C |
2 |
26 |
F |
B |
176 |
| D |
2 |
28 |
E |
D |
195 |
| E |
2 |
30 |
F |
D |
208 |
| F |
2 |
32 |
E |
E |
210 |
| A |
3 |
33 |
F |
E |
224 |
| B |
3 |
36 |
E |
F |
225 |
| C |
3 |
39 |
F |
F |
240 |
| D |
3 |
42 |
|
|
|
| E |
3 |
45 |
|
|
|
| F |
3 |
48 |
|
|
|
下面的文本是伪编程代码,在LoopLength x WaitTime秒内逐步接通LED。I²C程序向MAX6964寄存器发出一条写命令,提供由阵列定义的亮度。利用寄存器地址自动递增特性,可以完成多次写操作。
LoopLength; // Total number of step in the increase in
// intensity
MasterPort(2, LoopLength); // Array for master/port setting pairs of every
// step
StepTime; // Lighting duration at each intensity step
For i = 1 to LoopLength // Start intensity increasing loop
I²C(Write, 0x0E, MasterPort(1, i)); // Set master intensity level
I²C(Write, 0x10, MasterPort(2, i), MasterPort(2, i), ...); // Set port
// intensity
// levels
Wait(StepTime); // Lighting up
End // End loop
LED亮度等级取决于主机和独立端口PWM控制位选择。两个不同的主机和独立端口组合可以复现某些亮度等级。另一方面,某些亮度等级则不可能由任何组合实现。表2列出了对应于主机和独立端口PWM亮度控制位的亮度等级。亮度等级是当极性位为0时,表中的数字除以240。该表沿对角线对称,从左上角第二行到右下角倒数第二行。
表2. 基于主机和独立端口选择的亮度等级
| |
Master Port Intensity |
| 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
Individual Port Intensity |
0 |
off |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
| 1 |
off |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
30 |
| 2 |
off |
3 |
6 |
9 |
12 |
15 |
18 |
21 |
24 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
| 3 |
off |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
32 |
36 |
40 |
44 |
48 |
52 |
56 |
60 |
| 4 |
off |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
50 |
55 |
60 |
65 |
70 |
75 |
| 5 |
off |
6 |
12 |
18 |
24 |
30 |
36 |
42 |
48 |
54 |
60 |
66 |
72 |
78 |
84 |
90 |
| 6 |
off |
7 |
14 |
21 |
28 |
35 |
42 |
49 |
56 |
63 |
70 |
77 |
84 |
91 |
98 |
105 |
| 7 |
off |
8 |
16 |
24 |
32 |
40 |
48 |
56 |
64 |
72 |
80 |
88 |
96 |
104 |
112 |
120 |
| 8 |
off |
9 |
18 |
27 |
36 |
45 |
54 |
63 |
72 |
81 |
90 |
99 |
108 |
117 |
126 |
135 |
| 9 |
off |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
110 |
120 |
130 |
140 |
150 |
| A |
off |
11 |
22 |
33 |
44 |
55 |
66 |
77 |
88 |
99 |
110 |
121 |
132 |
143 |
154 |
165 |
| B |
off |
12 |
24 |
36 |
48 |
60 |
72 |
84 |
96 |
108 |
120 |
132 |
144 |
156 |
168 |
180 |
| C |
off |
13 |
26 |
39 |
52 |
65 |
78 |
91 |
104 |
117 |
130 |
143 |
156 |
169 |
182 |
195 |
| D |
off |
14 |
28 |
42 |
56 |
70 |
84 |
98 |
112 |
126 |
140 |
154 |
168 |
182 |
196 |
210 |
| E |
off |
15 |
30 |
45 |
60 |
75 |
90 |
105 |
120 |
135 |
150 |
165 |
180 |
195 |
210 |
225 |
| F |
off |
16 |
32 |
48 |
64 |
80 |
96 |
112 |
128 |
144 |
160 |
176 |
192 |
208 |
224 |
240 |
表2中,注意,16之前的整数是连续的。16以后,没有了素数(即,不能通过1到16和1到15之间的数相乘得到的数)。此外,可以通过主机和独立端口设置的多种选择来产生较多的数字/事件。表3显示了亮度等级线性递增趋势。Short1列的亮度等级跳过了2/240,Short2列跳过了4/240。您还可以通过使用这些主机和独立端口组合以及表2中的对角线实现平方递增趋势。或者,从表2中选取最近组合得到所需要的递增趋势。
表3. 主要的平滑递增趋势
| Choice 1 |
Choice 2 |
Intensity Level x 240 |
| Individual |
Master |
Individual |
Master |
Full |
Short1 |
Short2 |
| X |
0 |
X |
0 |
0 |
0 |
0 |
| 0 |
1 |
0 |
1 |
1 |
|
|
| 1 |
1 |
0 |
2 |
2 |
2 |
|
| 2 |
1 |
0 |
3 |
3 |
|
|
| 3 |
1 |
0 |
4 |
4 |
4 |
4 |
| 4 |
1 |
0 |
5 |
5 |
|
|
| 5 |
1 |
0 |
6 |
6 |
6 |
|
| 6 |
1 |
0 |
7 |
7 |
|
|
| 7 |
1 |
0 |
8 |
8 |
8 |
8 |
| 8 |
1 |
0 |
9 |
9 |
|
|
| 9 |
1 |
0 |
A |
10 |
10 |
|
| A |
1 |
0 |
B |
11 |
|
|
| B |
1 |
0 |
C |
12 |
12 |
12 |
| C |
1 |
0 |
D |
13 |
|
|
| D |
1 |
0 |
E |
14 |
14 |
|
| E |
1 |
0 |
F |
15 |
|
|
| F |
1 |
1 |
8 |
16 |
16 |
16 |
| 8 |
2 |
1 |
9 |
18 |
18 |
|
| 9 |
2 |
1 |
A |
20 |
20 |
20 |
| 6 |
3 |
2 |
7 |
21 |
|
|
| A |
2 |
1 |
B |
22 |
22 |
|
| B |
2 |
1 |
C |
24 |
24 |
24 |
| 4 |
5 |
4 |
5 |
25 |
|
|
| C |
2 |
1 |
D |
26 |
26 |
|
| 8 |
3 |
2 |
9 |
27 |
|
|
| 6 |
4 |
3 |
7 |
28 |
28 |
28 |
| 9 |
3 |
2 |
A |
30 |
30 |
|
| 7 |
4 |
3 |
8 |
32 |
32 |
32 |
| A |
3 |
2 |
B |
33 |
33 |
|
| 6 |
5 |
4 |
7 |
35 |
|
|
| B |
3 |
2 |
C |
36 |
36 |
36 |
| C |
3 |
2 |
D |
39 |
39 |
|
| 9 |
4 |
3 |
A |
40 |
40 |
40 |
| 6 |
6 |
5 |
7 |
42 |
42 |
|
| A |
4 |
3 |
B |
44 |
44 |
44 |
| 8 |
5 |
4 |
9 |
45 |
45 |
|
| B |
4 |
3 |
C |
48 |
48 |
48 |
| 9 |
5 |
4 |
A |
50 |
50 |
|
| C |
4 |
3 |
D |
52 |
52 |
52 |
| 8 |
6 |
5 |
9 |
54 |
54 |
|
| A |
5 |
4 |
B |
55 |
|
|
| 7 |
7 |
6 |
8 |
56 |
56 |
56 |
| 9 |
6 |
5 |
A |
60 |
60 |
60 |
| 8 |
7 |
6 |
9 |
63 |
63 |
|
| F |
4 |
F |
4 |
64 |
64 |
64 |
| C |
5 |
4 |
D |
65 |
|
|
| A |
6 |
5 |
B |
66 |
66 |
66 |
| 9 |
7 |
6 |
A |
70 |
70 |
|
| B |
6 |
5 |
C |
72 |
72 |
72 |
| E |
5 |
4 |
F |
75 |
75 |
|
| A |
7 |
6 |
B |
77 |
77 |
77 |
| C |
6 |
5 |
D |
78 |
78 |
|
| 9 |
8 |
7 |
A |
80 |
80 |
80 |
| 8 |
9 |
8 |
9 |
81 |
81 |
|
| B |
7 |
6 |
C |
84 |
84 |
84 |
| A |
8 |
7 |
B |
88 |
88 |
88 |
| E |
6 |
5 |
F |
90 |
90 |
|
| C |
7 |
6 |
D |
91 |
91 |
91 |
| B |
8 |
7 |
C |
96 |
96 |
96 |
| D |
7 |
6 |
E |
98 |
98 |
|
| A |
9 |
8 |
B |
99 |
|
|
| 9 |
A |
9 |
A |
100 |
100 |
100 |
| C |
8 |
7 |
D |
104 |
104 |
104 |
| E |
7 |
6 |
F |
105 |
105 |
|
| B |
9 |
8 |
C |
108 |
108 |
108 |
| A |
A |
9 |
B |
110 |
110 |
|
| D |
8 |
7 |
E |
112 |
112 |
112 |
| C |
9 |
8 |
D |
117 |
117 |
117 |
| E |
8 |
7 |
F |
120 |
120 |
120 |
| A |
B |
A |
B |
121 |
121 |
|
| D |
9 |
8 |
E |
126 |
126 |
126 |
| F |
8 |
F |
8 |
128 |
128 |
128 |
| C |
A |
9 |
D |
130 |
130 |
|
| B |
B |
A |
C |
132 |
132 |
132 |
| E |
9 |
8 |
F |
135 |
135 |
135 |
| D |
A |
9 |
E |
140 |
140 |
140 |
| C |
B |
A |
D |
143 |
143 |
|
| B |
C |
B |
C |
144 |
144 |
144 |
| E |
A |
9 |
F |
150 |
150 |
150 |
| D |
B |
A |
E |
154 |
154 |
154 |
| C |
C |
B |
D |
156 |
156 |
156 |
| F |
A |
F |
A |
160 |
160 |
160 |
| E |
B |
A |
F |
165 |
165 |
165 |
| D |
C |
B |
E |
168 |
168 |
168 |
| C |
D |
C |
D |
169 |
169 |
169 |
| F |
B |
F |
B |
176 |
176 |
176 |
| E |
C |
B |
F |
180 |
180 |
180 |
| D |
D |
C |
E |
182 |
182 |
182 |
| F |
C |
F |
C |
192 |
192 |
192 |
| E |
D |
C |
F |
195 |
195 |
195 |
| D |
E |
D |
E |
196 |
196 |
196 |
| F |
D |
F |
D |
208 |
208 |
208 |
| E |
E |
D |
F |
210 |
210 |
210 |
| F |
E |
F |
E |
224 |
224 |
224 |
| E |
F |
E |
F |
225 |
225 |
225 |
| F |
F |
F |
F |
240 |
240 |
240 |
表3显示了在240个主机和独立端口设置组合中有96个不同的亮度等级。按照所有亮度等级的这种递增趋势,需要在某些步骤中后向设置主机亮度等级。可以使用设置阵列来实现这一点,例如伪编程代码中所列出的。
可以采用下面的I²C写命令来闪烁MAX6964驱动的LED。MAX6964的I²C器件地址还是0x49。
0x49 0x02 0x00 0x00 // Set phase 0 polarity to all zeros to
// turn LEDs on
0x49 0x0E 0xF0 // Set master intensity to full
0x49 0x0F 0x0D // Set the blinking enable bit to start
0x49 0x0F 0x0F // Switch blinking flip bit to blink
0x49 0x0F 0x0D // Switch back the blinking flip bit to
// blink
...
0x49 0x0F 0x0C // Reset the blinking enable bit to stop
// blinking
0x49 0x02 0xFF 0xFF // Set phase 0 polarity to all ones to
// turn LEDs off
对于上面的命令,假设所有端口的相位1极性位被设置为1 (上电默认)。对于没有被设置为闪烁的端口,相位0和相位1寄存器中的极性位可以设置为相同的值。PWM亮度等级设置在闪烁期间有效。如果相位0或者相位1中的极性位是0,PWM亮度等级置位。否则,“1”互补波形将驱动LED。
总之,可以设置MAX6964 LED驱动器在互补波形定义的一对不同亮度等级之间闪烁。通过正确的设置,还可以实现亮度等级逐渐变化,有时也被称为渐暗。
MAX7313/MAX7314具有和MAX6964相似的LED驱动能力,其所有的端口还可以用作带有转换探测功能的逻辑输入。MAX6965、MAX7315和MAX7316也是相似的型号,只是端口数量减半。本应用笔记介绍的MAX6964常用编程方法还可以用于控制这些相似型号的PWM亮度。
| 相关型号 | |
APP 4253: Nov 20, 2008
|
|
|
自动更新
需要自动接收最新发布的应用笔记吗?请订阅EE-Mail™ (English only)。
我们期待您的反馈! 喜欢?不喜欢?有待改善?或为我们提供建议?请与我们联系 — 我们将根据您的意见或建议改善我们的工作。
网页评价或提供建议
|
下载,PDF格式 (60kB)
AN4253,
AN 4253,
APP4253,
Appnote4253,
Appnote 4253
|
|