Having the hardest time with this TLC59116 LED Driver IC from Texas Instruments. I have done a crazy amount of debugging and still cannot get it to drive a single LED. I have followed all the instructions on the datasheet, as well as referenced every software library/tutorial I could find to make sure I am doing everything properly, but it still will just not drive an LED.
I have double checked the validity of the chip and can confirm it is stable.
Here is how I currently have it hooked up:
And here is my I2C code:
void writeRegister(char reg, char data) {
char buffer[2];
buffer[0] = reg;
buffer[1] = data;
i2c->write(address, buffer, 2);
}
writeRegister(MODE1, 0b00000000); // defaults
writeRegister(MODE2, 0b00000000); // defaults
writeRegister(GRPPWM, 0xFF);
writeRegister(GRPFREQ, 0xFF);
writeRegister(LEDOUT0, 0b11111111); // led "fully on"
writeRegister(LEDOUT1, 0b11111111);
writeRegister(LEDOUT2, 0b11111111);
writeRegister(LEDOUT3, 0b11111111);
writeRegister(PWM0, 0xFF); // full brightness
writeRegister(PWM1, 0xFF);
writeRegister(PWM2, 0xFF);
writeRegister(PWM3, 0xFF);
writeRegister(PWM4, 0xFF);
writeRegister(PWM5, 0xFF);
writeRegister(PWM6, 0xFF);
writeRegister(PWM7, 0xFF);
I have tried several enumerations of this code but it makes zero difference.
Like… am I missing something integral here?
Best Answer
I was using the wrong I2C address. I was using the 7-bit address of
0b1100000
instead of the 8-bit address0b11000000
...