Teens 4.0 TLC59116 Led Driver

Status
Not open for further replies.

ghostintranslation

Well-known member
Hi,

I'm trying to use a TLC59116IPWR that I made a pcb with but nothing happens. Here is the schematics:
TLC59116.png

First, I noticed I might need to actually wire RESET and REXT, but I tried to do so by touching resistors to the pins and couldn't make it work anyway, might not be the best way to test though...

But is there any other issues you could see in my schematics?

SCL0 and SDA0 are connected to pins 19 and 18 of Teensy 4.0.

And regarding code I'm testing with this library, and its Sinewave example:
https://github.com/MajenkoLibraries/TLC59116

Thanks
 
A couple of things to look at:

According the datasheet, you'll need a pull-up resistor on the /RESET pin. Make sure you have that connected before you power it up.
And you'll need REXT connected to a resistor to select the LED current. The example in the datasheet uses 931 ohms for a 20mA LED current, which seems like a good start.

Once you get those set, try just a little test to make sure you have I2C connectivity:

Code:
       Wire.beginTransmission(0xC0); // the device address with A0-A3 zero.
       uint8_t error = Wire.endTransmission();

if error is returned as 0 then the Wire library was able to talk to the device. 2 means it's not found.
 
Thanks for the suggestions,
So I have run that test without the RESET and REXT and also with them (but I'm connecting the resistors on that super small chip holding everything in my hands so I'm wondering how good is this test), and I also tried adding 2 pullups to SCL and SDA pins, but I always get a 4 as error code which I understands means there is some sort of chaos on the bus?

I should have shared the bigger picture of my pcb, I have 2 other ICs on the same bus, one is the same chip, one is a PCF8574T.

Here is the entire schematics:
Motherboard-B-test.jpg

I'm not sure what I have done wrong in there to mess the I2C bus...

If there doesn't seem to be anything wrong on the schematics I guess I will have to make a new PCB that would include the pullups resistors on SCL and SDA and the 2 resistors on RESET and REXT so that this is connected properly.

Do you see any other things on this more global schematics?
 
You'll definitely need those resistors (I2C pull-ups, RESET, REXT), so see if you can get them soldered in somehow.

And looking at the schematic, it seems you are using 5v+ for some of the devices, including the TLC59116, which is bad. Take a look at the typical application schematic on the first page of the datasheet to see how to power via 3.3v (the device is powered by 3.3v, the LEDs use the 5v rail). Hopefully you haven't damaged the Teensy.

Error code 4 could be one of several error conditions on the I2C bus.

Since you have multiple devices on the I2C bus, I'd double check that those lines are all intact (no shorts, opens) and that each of the devices on the bus is properly powered on.

If you can disconnect any of them, that might narrow down where the I2C bus issue is.

(Also, I noticed you have resistors on all the LED pins, which shouldn't be necessary as the TLC59116 has constant current outputs...)
 
Ah I looked at the schematics and since it was saying 3.3v to 5v power supply I chose 5v (cannot remember why though) but you are right the typical example shows it powered with 3.3v
https://www.ti.com/lit/ds/symlink/t...-digikeymode-dsf-pf-null-wwe&ts=1611017691232

I'll check the power going to the other devices, but since I need 4 missing resistors and Im not able to solder them so I'm just trying to make the connections by hand it's not the best conditions to test anyway, but that will be a good starting point for the new test pcbs Ill make: one with just 1 TLC59116 and another with 2 TLC59116 and another with 1 PCF8574T, to test them separately, will cost me more because I order on JLCPCB the smt assembly for those because they are way to small for me to solder but I will be able to test better.

Thanks also for telling me about the resistors on each leds, I only understood now that REXT was playing that role... that will simplify my design.

Ill post again when I have more to test.

Thanks!
 
So I've made a PCB only with the TLC59116 chip and the few required resistors to test. I still get the same result.

I looked up the chip datasheet, and the address of this chip when A0-A3 are at zero is not 0xC0 actually it is 0x60. But anyway I tried both and get the same error code: 4.

So then I thought, I would test with an audioboard that I know works, first I upload an audio example to make sure the audioshield works, it generates sound so it works, and then I try the same code you suggested to test the I2C transmission with the audioshield so this time with address 0x0A which is the address of the SGTL5000:
Code:
  Wire.beginTransmission(0x0A);
  uint8_t error = Wire.endTransmission();
  Serial.println("Error:");
  Serial.println(error);

And I still get "4"...

I also tried the I2C scanner example, with the audioboard hooked to the Teensy, and it says "No I2C devices found".

At this point I'm not sure what's going on and what else to try

In case it can help, here is the schematics of my TLC59116 test board:
tlc59116 test.jpg
 
The first thing I see is that the Reset line is pulled high to +5V. I don't think the TI chip likes that because it's powered by 3V3.

Paul
 
The first thing I see is that the Reset line is pulled high to +5V. I don't think the TI chip likes that because it's powered by 3V3.

Paul

Thanks for the suggestion,

First I made it work with the audio board and the scanner, I had to add these 2 lines at the top:
Code:
#include <Audio.h>
AudioOutputI2S audioOutput;

also I detect the audio board with this little test now:

Code:
#include <Wire.h>
#include <Audio.h>
AudioOutputI2S audioOutput;

void setup() {
  Wire.begin();
  Serial.begin(9600);
  while (!Serial); // wait for serial monitor
  
  Wire.beginTransmission(0x0A);
 
  
  uint8_t error = Wire.endTransmission();
  Serial.println("Error:");
  Serial.println(error);
}

void loop() {
  // put your main code here, to run repeatedly:

}

But, I just tested to connect my test PCB's "5v" to the 3.3v of the Teensy instead of the Teensy's 5v, and it doesn't make any difference, I still get a "4"...

Any other ideas?
 
Any other ideas?
Maybe show us some photos of the boards.

Remove power from everything. If the Teensy is removeable, remove it.
Use a multimeter to check if there are connections between
- 3v3 on all chips
- gnd to all chips
- SCL to all chips
- SDA to all chips.
- Measure between SCL and 3V3 - is it really 2k2?
- Measure between SDA and 3V3 - is it really 2k2?
 
Last edited:
Maybe show us some photos of the boards.

I had the PCB done by JLCPCB, I soldered only the pins that are used:

tlc59116-test-1.jpg

tlc59116-test-2.jpg

tlc59116-test-3.jpg

Remove power from everything. If the Teensy is removeable, remove it.
Use a multimeter to check if there are connectections between
- 3v3 on all chips
- gnd to all chips
- SCL to all chips
- SDA to all chips.
- Measure between SCL and 3V3 - is it really 2k2?
- Measure between SDA and 3V3 - is it really 2k2?

Ill do that a little bit later today, thanks for the suggestions
 
...and I see not a single via. Is that correct?

Edit: no there are some near the connector.

Yeah that's just the photo, the traces keep going to the "JPLED" connector. That might be the 45º angle on the low quality jpg that do not translate.

Remove power from everything. If the Teensy is removeable, remove it.
Use a multimeter to check if there are connectections between
- 3v3 on all chips
- gnd to all chips
- SCL to all chips
- SDA to all chips.
- Measure between SCL and 3V3 - is it really 2k2?
- Measure between SDA and 3V3 - is it really 2k2?

And we have a winner, for some reason the 3.3v connection is missing, it is missing on the board traces even though it was in the schematics so it seems to be my mistake and not a manufacturing error... So the chip is not powered.

With a wire to do the missing connection it works perfectly now!

Thank you for the help
 
Status
Not open for further replies.
Back
Top