概述MAX6956 LED驱动器和I/O扩展器无需外部限流电阻,即可为全部20或28个LED驱动端口(取决于采用何种封装类型)提供并维持所期望的恒定电流。所有端口可以同时设置,具有十六级恒定电流(从1.5mA至24mA);或者可以分别将各个端口设置为不同的恒定电流。MAX6956不仅仅具有LED亮度控制,同时器件的端口匹配精度确保了色度更将一致。除了恒流LED驱动器,MAX6956的各个独立端口还可以作为带有瞬态检测功能的输入端口,或者具有10mA吸入电流和4.5mA源出电流的推挽输出端口。
MAX6957与MAX6956类似,但采用SPI™而不是I²C兼容接口。MAX7300是一款与MAX6956相类似的通用I/O (GPIO)端口扩展器,但该器件不带恒流LED驱动功能。MAX7301则是一款类似MAX7300的GPIO端口扩展器,但器件采用SPI接口而不是I²C兼容接口。
图1给出了在没有限流电阻的情况下,采用MAX6956驱动十路白光和RGB LED的简单应用范例。
图1. MAX6956应用电路
MAX6956配置寄存器MAX6956的具体 *** 作受控于对89个寄存器的写入。除了数据资料里所描述的四个寄存器(全局电流、配置、瞬态检测屏蔽以及显示测试),MAX6956还具有其它三个寄存器组:
- 端口配置(0x09至0x0F)
端口配置寄存器中每个端口分为两个位。这两个位可以将各个端口定义为LED驱动器、输出端口或带/不带上拉电阻的输入端口。对应28个端口具有7个端口配置寄存器。 - 独立电流(0x12至0x1F)
独立电流寄存器中每个端口分为四个位。这四个位可以将各个独立端口定义到期望的恒定电流。最小的步长为连接在ISET引脚的外部电阻所设置的最大电流值的1/16。 - 端口I/O值(0x20至0x5F)
器件具有29个端口I/O值寄存器对应各个独立端口(端口31有两个寄存器)。有21个端口I/O值寄存器可用于同时定义8个不同端口为一组的I/O值。其他端口I/O值寄存器可以用于同时定义2、3、4、5、6或7个不同端口为一组。
I2CWrite(0x80, 0x02, 0x07); // Set a half global constant current I2CWrite(0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); // Set all ports to LED drive mode I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuraTIon register
作为参考检查点,设置关断/运行位写命令的等效二进制数在下面列出来。
I2CWrite(0x80, 0x04, 0x01); 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
下面给出了上电时,将一个端口(本例为P4)设置到满量程恒定电流的I²C命令。
I2CWrite(0x80, 0x12, 0x07); // Set a half port P4 constant current I2CWrite(0x80, 0x09, 0xA8); // Set P4 to LED drive mode I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuraTIon register
上电时,所有端口均被设置为不带上拉电阻的逻辑输入。仅需下列I²C命令即可将MAX6956设置到所有上电默认状态工作。
I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuraTIon register
MAX6957 SPI命令MAX6957的任意一个寄存器可以通过SPI接口发送包含寄存器地址以及紧接数据字节的16位字对其进行写入或读出。地址字节的第一位决定是写(0)命令还是读(1)命令。所有16位字可以与其他字排放在一起。
下面给出了MAX6957 DIN输入引脚上的数据字节,用于将所有端口设置到24mA最大恒定电流的一半。这些命令与MAX6956相似,除了需要指定器件地址。对于SPI接口,通过将低有效的CS输入引脚设为低电平可以选择特定的器件。MAX6957没有寄存器地址自动递增功能。
0x02, 0x07; // Set a half global constant current 0x09, 0x00; // Set ports P4 through P7 to LED drive mode 0x0A, 0x00; // Set ports P8 through P11 to LED drive mode 0x0B, 0x00; // Set ports P12 through P15 to LED drive mode 0x0C, 0x00; // Set ports P16 through P19 to LED drive mode 0x0D, 0x00; // Set ports P20 through P23 to LED drive mode 0x0E, 0x00; // Set ports P24 through P27 to LED drive mode 0x0F, 0x00; // Set ports P28 through P31 to LED drive mode 0x04, 0x01; // Set the shutdown/run bit of the configuraTIon register
MAX7300/MAX7301配置寄存器MAX7300和MAX7301没有恒流LED驱动能力。通过写73个寄存器控制器件的详细工作状态。此外,除了配置和瞬态检测屏蔽寄存器以外,还有另外两组寄存器:
- 端口配置(0x09至0x0F)
- 端口I/O值(0x20至0x5F)
I2CWrite(0x80, 0x0B, 0x5A, 0x55, 0x55); // Set P14 through P23 to output I2CWrite(0x80, 0x4E, 0xFF); // Set P14 through P21 to logic high I2CWrite(0x80, 0x56, 0x03); // Set P22 through P23 to logic high I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit
MAX7301 SPI命令MAX7301的任意一个寄存器可以通过SPI接口发送包含寄存器地址以及紧接数据字节的16位字对其进行写入或读出。地址字节的第一位决定是写(0)命令还是读(1)命令。所有16位字可以与其他字排放在一起。
下面给出了MAX7301 DIN输入引脚上的数据字节,当输出处于逻辑高时,将P14至P23设置到端口电流的一半,并且使芯片由初始关断进入工作状态。这些命令与MAX7300相似,除了需要指定器件地址。对于SPI接口,通过将低有效的CS输入引脚设为低电平可以选择特定的器件。MAX7300没有寄存器地址自动递增功能。
0x0B, 0x5A; // Set P14 and P15 to output 0x0C, 0x55; // Set P16 through P19 to output 0x0D, 0x55; // Set P20 through P23 to output 0x4E, 0xFF; // Set P14 through P21 to logic high 0x56, 0x03; // Set P22 and P23 to logic high 0x04, 0x01; // Set the shutdown/run bit
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)