MAX6956編程指南
概述
MAX6956 LED驅(qū)動器和I/O擴(kuò)展器無需外部限流電阻,即可為全部20或28個LED驅(qū)動端口(取決于采用何種封裝類型)提供并維持所期望的恒定電流。所有端口可以同時設(shè)置,具有十六級恒定電流(從1.5mA至24mA);或者可以分別將各個端口設(shè)置為不同的恒定電流。MAX6956不僅僅具有LED亮度控制,同時器件的端口匹配精度確保了色度更將一致。除了恒流LED驅(qū)動器,MAX6956的各個獨(dú)立端口還可以作為帶有瞬態(tài)檢測功能的輸入端口,或者具有10mA吸入電流和4.5mA源出電流的推挽輸出端口。MAX6957與MAX6956類似,但采用SPI?而不是I2C兼容接口。MAX7300是一款與MAX6956相類似的通用I/O (GPIO)端口擴(kuò)展器,但該器件不帶恒流LED驅(qū)動功能。MAX7301則是一款類似MAX7300的GPIO端口擴(kuò)展器,但器件采用SPI接口而不是I2C兼容接口。
圖1給出了在沒有限流電阻的情況下,采用MAX6956驅(qū)動十路白光和RGB LED的簡單應(yīng)用范例。
圖1. MAX6956應(yīng)用電路
MAX6956配置寄存器
MAX6956的具體操作受控于對89個寄存器的寫入。除了數(shù)據(jù)資料里所描述的四個寄存器(全局電流、配置、瞬態(tài)檢測屏蔽以及顯示測試),MAX6956還具有其它三個寄存器組:- 端口配置(0x09至0x0F)
端口配置寄存器中每個端口分為兩個位。這兩個位可以將各個端口定義為LED驅(qū)動器、輸出端口或帶/不帶上拉電阻的輸入端口。對應(yīng)28個端口具有7個端口配置寄存器。 - 獨(dú)立電流(0x12至0x1F)
獨(dú)立電流寄存器中每個端口分為四個位。這四個位可以將各個獨(dú)立端口定義到期望的恒定電流。最小的步長為連接在ISET引腳的外部電阻所設(shè)置的最大電流值的1/16。 - 端口I/O值(0x20至0x5F)
器件具有29個端口I/O值寄存器對應(yīng)各個獨(dú)立端口(端口31有兩個寄存器)。有21個端口I/O值寄存器可用于同時定義8個不同端口為一組的I/O值。其他端口I/O值寄存器可以用于同時定義2、3、4、5、6或7個不同端口為一組。
MAX6956 I2C命令
下面給出了上電時,將所有端口設(shè)置到24mA最大恒定電流(采用39kΩ外部電阻)的一半的I2C命令。當(dāng)AD0和AD1引腳均連接到地時,MAX6956的I2C器件地址為0x80。I2CWrite例程利用寄存器地址自動遞增特性,向一個MAX6956寄存器寫入一個特定字節(jié)或向一系列連續(xù)的寄存器寫入多個字節(jié)的命令。I2CWrite(0x80, 0x02, 0x07); // Set a half global constant currentI2CWrite(0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00); // Set all ports to LED drive modeI2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuration register
作為參考檢查點(diǎn),設(shè)置關(guān)斷/運(yùn)行位寫命令的等效二進(jìn)制數(shù)在下面列出來。
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)設(shè)置到滿量程恒定電流的I2C命令。
I2CWrite(0x80, 0x12, 0x07); // Set a half port P4 constant currentI2CWrite(0x80, 0x09, 0xA8); // Set P4 to LED drive modeI2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuration register
上電時,所有端口均被設(shè)置為不帶上拉電阻的邏輯輸入。僅需下列I2C命令即可將MAX6956設(shè)置到所有上電默認(rèn)狀態(tài)工作。
I2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit of the configuration register
MAX6957 SPI命令
MAX6957的任意一個寄存器可以通過SPI接口發(fā)送包含寄存器地址以及緊接數(shù)據(jù)字節(jié)的16位字對其進(jìn)行寫入或讀出。地址字節(jié)的第一位決定是寫(0)命令還是讀(1)命令。所有16位字可以與其他字排放在一起。下面給出了MAX6957 DIN輸入引腳上的數(shù)據(jù)字節(jié),用于將所有端口設(shè)置到24mA最大恒定電流的一半。這些命令與MAX6956相似,除了需要指定器件地址。對于SPI接口,通過將低有效的CS輸入引腳設(shè)為低電平可以選擇特定的器件。MAX6957沒有寄存器地址自動遞增功能。
0x02, 0x07; // Set a half global constant current0x09, 0x00; // Set ports P4 through P7 to LED drive mode0x0A, 0x00; // Set ports P8 through P11 to LED drive mode0x0B, 0x00; // Set ports P12 through P15 to LED drive mode0x0C, 0x00; // Set ports P16 through P19 to LED drive mode0x0D, 0x00; // Set ports P20 through P23 to LED drive mode0x0E, 0x00; // Set ports P24 through P27 to LED drive mode0x0F, 0x00; // Set ports P28 through P31 to LED drive mode0x04, 0x01; // Set the shutdown/run bit of the configuration register
MAX7300/MAX7301配置寄存器
MAX7300和MAX7301沒有恒流LED驅(qū)動能力。通過寫73個寄存器控制器件的詳細(xì)工作狀態(tài)。此外,除了配置和瞬態(tài)檢測屏蔽寄存器以外,還有另外兩組寄存器:- 端口配置(0x09至0x0F)
- 端口I/O值(0x20至0x5F)
MAX7300 I2C命令
上電時,所有端口均被設(shè)置為不帶上拉電阻的邏輯輸入。下面給出了輸出為邏輯高時,將P14至P23設(shè)置為端口滿電流一半,以及使芯片由初始關(guān)斷進(jìn)入工作狀態(tài)的I2C命令。當(dāng)AD0和AD1引腳連接到地時,MAX7300的I2C器件地址為0x80。I2CWrite(0x80, 0x0B, 0x5A, 0x55, 0x55); // Set P14 through P23 to outputI2CWrite(0x80, 0x4E, 0xFF); // Set P14 through P21 to logic highI2CWrite(0x80, 0x56, 0x03); // Set P22 through P23 to logic highI2CWrite(0x80, 0x04, 0x01); // Set the shutdown/run bit
MAX7301 SPI命令
MAX7301的任意一個寄存器可以通過SPI接口發(fā)送包含寄存器地址以及緊接數(shù)據(jù)字節(jié)的16位字對其進(jìn)行寫入或讀出。地址字節(jié)的第一位決定是寫(0)命令還是讀(1)命令。所有16位字可以與其他字排放在一起。下面給出了MAX7301 DIN輸入引腳上的數(shù)據(jù)字節(jié),當(dāng)輸出處于邏輯高時,將P14至P23設(shè)置到端口電流的一半,并且使芯片由初始關(guān)斷進(jìn)入工作狀態(tài)。這些命令與MAX7300相似,除了需要指定器件地址。對于SPI接口,通過將低有效的CS輸入引腳設(shè)為低電平可以選擇特定的器件。MAX7300沒有寄存器地址自動遞增功能。
0x0B, 0x5A; // Set P14 and P15 to output0x0C, 0x55; // Set P16 through P19 to output0x0D, 0x55; // Set P20 through P23 to output0x4E, 0xFF; // Set P14 through P21 to logic high0x56, 0x03; // Set P22 and P23 to logic high0x04, 0x01; // Set the shutdown/run bit
評論