应用笔记 4397

MAX6960大LED显示屏编程指南

By: Walter Chen

摘要 : 本文介绍了如何级联配置多个8 x 8点阵LED驱动芯片MAX696x,实现大规模LED显示屏或点阵的驱动。该系列驱动器可最多菊链连接256个芯片,构成大规模点阵显示屏的驱动、控制和编程。该应用笔记解释了该系列芯片之间的差别,以及如何利用它们实现多层、多行、多列配置。

器件概要

LED驱动芯片MAX6960无需使用外围电路,通过其8行、16列端口可直接驱动两组单色8 x 8点阵显示模块。每个集电极开路的行端口可以从16个列端口吸取最大40mA的固定电流。8个行端口在时间上可以复用;某一时刻,只有一个行端口吸取电流。因此,从每个列端口吸取的平均电流为5mA。

MAX6960也可以驱动一组双色(红、绿) 8 x 8点阵显示模块。点阵的每个节点都可以独立控制开、关,或支持4级的亮度调节(包括关闭)。所有显示模块的亮度由PWM信号控制,共有256个亮度级。能够将最多256个MAX6960级联在一起,组成一个大规模显示控制系统;而主控制器可通过4线串口(DIN、DOUT、CLK和/CS)对所有显存进行寻址访问。所有级联芯片通过3线串口(ADDCLK、ADDIN和ADDOUT)连接,无需主控制器介入即可完成芯片间级联的自行配置。

该系列的其它LED驱动芯片和MAX6960功能相似。MAX6961只能对点阵中节点进行开、关操作;MAX6962只能驱动单色显示模块;MAX6963可对点阵节点进行开、关操作,只能驱动单色显示模块。

应用示例

图1所示电路采用两片MAX6960驱动4个单色显示模块,LDM-24288NI是由Lumex®公司生产的8 x 8点阵、绿色LED显示模块。4个显示模块(D1、D2、D3和D4)由左到右排列,组成一个8行32列的显示屏。因为U1和U2的RISET0和RISET1均连接到GND,所以,所有列的电流都设置成固定40mA。

U1和U2的4线接口采用并行连接而不是由DIN和DOUT进行串行级联。每个芯片指令都只能选中一个芯片,这是因为上电后通过3线接口配置每个芯片的专有地址。当两个或多个MAX6960级联到一起时,全局命令可同时控制所有MAX6960。所有芯片的4线接口都以并联方式连接。

每个MAX6960都有一个3线接口,所有MAX6960通过这个3线接口级联。通常,会有一个MAX6960被选为主芯片。这个主芯片的地址为0,并为其余MAX6960提供时钟信号。所有MAX6960的ADDCLK引脚连接在一起。只有主芯片的ADDIN引脚连接到V+,其余MAX6960的ADDIN引脚连接到前一芯片的ADDOUT引脚,而芯片地址较前一级联芯片加1。最后一个芯片的ADDOUT引脚悬空。

图1. 多个MAX6960驱动4个单色显示屏
图1. 多个MAX6960驱动4个单色显示屏

上电时,所有MAX6960的0x00驱动器地址寄存器被初始化为全0,ADDOUT引脚被置成逻辑低。因为在没有时钟信号输入时,主芯片的ADDIN引脚为逻辑高电平,所以MAX6960主芯片需要自检测其状态。上电后,主芯片生成时钟信号,并将其ADDOUT引脚置为逻辑高。主芯片其后级联的每一片MAX6960在其ADDIN引脚变成逻辑高之前,会通过计数时钟周期数设置芯片地址,然后将ADDOUT引脚设置成逻辑高。因此,所有MAX6960驱动地址寄存器将在256个ADDCLK时钟周期内完成初始化。

显存地址的配置

每个MAX6960内有64字节显存,显存可以划分为2层或4层。某一时刻,只选中一层驱动芯片端口。这种多层结构使用户可以在某一层驱动LED时更新其它层;也可在多层之间切换,实现动画功能。

当应用配置为4层时,每层包含16字节;如果每一像素占用1位,那么16列、8行像素将占用128位。应用配置为2层时,每层包含32字节;如果每像素占用2位,那么16列、8行像素将占用256位。一个单色显示模块有8行、8列;一个双色显示模块有8行、16列,因此,一层可支持2个单色显示模块或一个双色显示模块。

显存一次仅支持8位访问。对1位/像素的应用,显存执行写操作的第一个8位数据是写第一列,第二个8位的数据是写第二列,以此类推。因此,一个8 x 8像素的1位/像素的显示模块,需要写入8字节。这就是说,第一个显示模块的第一列地址是0,第一个显示模块的第二列地址是1,第二个显示模块的第一列地址是8,以此类推。当使用多个MAX6960芯片时,所有的显存组合在一起,而显存地址由下式确定:

显存地址 = (驱动器数 - 1) × 16 + (显示模块数 - 1) × 8 + (列数 - 1)

对于2位/像素应用,一个8位显存访问只能更新半个列的显存。如上所述,驱动芯片数在上电后由3线接口自动完成配置并存储在0x00寄存器。其中,有14位用来区分组合显存的哪一个字节。对于1位/像素的应用,开始的2位用来标识哪一层,其余12位用来定位256个MAX6960的2048个列中的哪一列。对于2位/像素应用,开始的1位用来标识哪一层,其余13位用来定位256个MAX6960的4096个半列中的哪一列。

MAX6960的4线接口只能识别8位、16位或24位传输命令,完成寄存器寻址访问。因此,在片选信号/CS有效期间,如果传输数据不是8位、16位或24位格式,数据都将被忽略。

间接访问寄存器的方法

使用8位传输命令间接访问显存时无需显存地址。在每片MAX6960中,都有两个全局显示屏间接地址寄存器(0x09和0x0A)。每个这样的寄存器都能跟踪同一个全局间接显存地址。上电时,这些寄存器地址的初始值都为0。在每个8位间接显存访问完成后,所有MAX6960寄存器值都加1。使用间接访问显存时,每片MAX6960会将这两个间接地址寄存器的值与自己芯片的地址进行比较,以确定显存是否需要更新。

用户也可以用24位传输命令直接访问组合显存中的某一个字节。24位中,第一个位表示写操作(0)还是读操作(1);第二位无意义,可忽略;接下来的14位用来确定是显存中的哪个字节;而最后8位是数据字节。

16位传输命令用来访问MAX6960的16个寄存器。16位中,第一位表示写操作(0)还是读操作(1);第二位用来确定是否激活地址自动增加功能;第三位标识寄存器访问是本地访问(0)还是全局访问(1);第四位始终为0;随后四位确定要访问的是哪个寄存器;最后八位是数据字节。对本地寄存器访问,驱动芯片的地址被存储在全局驱动间接地址寄存器0x08。所有MAX6960的0x08寄存器在上电后默认为0,其值可通过16位传输命令更改。如果设置了第二位,这些0x08寄存器的值可在每个16位传输命令后同时自动增加。

如果上电时默认值不能满足显示屏尺寸、颜色和亮度的要求,所有的MAX6960都需进行初始化。对256个MAX6960,寄存器上电默认状态是单色、1位/像素、全屏显示、50%的面板亮度。

使用间接访问时,一次只能从左列像素至右列像素访问一个显示模块(8 x 8)的显存。然后,从左至右,逐个访问显示模块(8 x 8),直到访问完该行最后一个MAX6960驱动的显示模块为止。依照同样方式,间接访问会从上至下、按照行扫描的顺序访问所有MAX6960驱动芯片。间接方法会先访问整个显示屏的红色显存部分,然后再访问绿色显存部分。地址为0x0E的全局驱动器件寄存器需要首先进行初始化,这样显示屏间接地址计数器才能够自复位至正确值。以上过程如图2图3所示,其中,DAN代表显示模块的访问顺序数。每个显示模块需更新8字节的显存(8 x 8显示点阵对应1位/像素或4 x 8的显示点阵对应2位/像素)。需初始化的全局驱动器件寄存器的总数为系统中MAX6960的总数减去1。

图2. 单色、1位/像素、显存访问序列
图2. 单色、1位/像素、显存访问序列

图3. 双色、1位/像素、显存访问序列
图3. 双色、1位/像素、显存访问序列

同样,如果像素的分辨率是2位,那也需要初始化地址为0x0F的全局驱动行寄存器。这个初始化过程能够确保MAX6960的某一行能够在访问下一行之前被访问,如图4图5所示。需要初始化的全局驱动行寄存器的总数为系统中MAX6960的总数减去1。

图4. 单色、2位/像素、显存访问序列
图4. 单色、2位/像素、显存访问序列

图5. 双色、2位/像素、显存访问序列
图5. 双色、2位/像素、显存访问序列

亮度控制寄存器

MAX6960有16个寄存器,可通过写这些寄存器完成各种操作。这些寄存器包括像素亮度比例(0x01)、面板亮度(0x02)、显示模块0的亮度(0x03)、显示模块1的亮度(0x04)、故障寄存器(0x05)和全局面板配置寄存器(0x0D)。每个亮度控制寄存器包含8位。

初始化全局驱动器件

以下列出了一些16位传输命令,用来初始化图1所示应用电路的全局驱动器件寄存器和全局驱动行寄存器。
0x0E, 0x01, 		// Write to global driver devices register with two total devices.
0x0F, 0x01, 		// Write to global driver rows register with two MAX6960s in a row. 
以下列出的8位和16位传输命令,用来点亮显示屏的边沿。显示屏由4个8 x 8显示模块构成一个8 x 32显示点阵,电路配置如图1所示。
0xFF, 		// Light up the left edge.
0x81, 		// Light up top and bottom pixels of the second column.
0x81, 		// Light up top and bottom pixels of the third column.
...
0x81, 		// Light up top and bottom pixels of the fourteenth column.
0x81, 		// Light up top and bottom pixels of the fifteenth column.
0xFF, 		// Light up the right edge.
0x0D, 0x31, 	// Turn on the shutdown bit.
下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 4397:
应用笔记 4397,AN4397, AN 4397, APP4397, Appnote4397, Appnote 4397