Large Led Matrix (TLC5940)

Status
Not open for further replies.

TrueBlue

Member
Hello,

I've been developing a large modular LED matrix using the TLC5940 chip/library and teensy 3.2.

I got 16 x 16 LED PCBs fabricated and so far I have one fully assembled and working perfectly. However, I soldered the first 16 LEDs and 1 TlC chip to a new pcb and tried connecting the fully assembled matrix with the partially assembled matrix totaling 17 TLC chips and I'm having two different issues. And I'm almost certain it's not hardware related.

In the 'tlc_config.h' file I updated the '#define TLC_CHANNEL_TYPE' from uint8_t to uint16_t as it says to do so when using more than 16 TLC chips.

The first issue is that I can only run the provided examples from the library at 24Mhz cpu speed without glitches in the animation. However 16 chips is perfectly fine at 72Mhz. Any ideas on why this might be?

Second Issue: The way I'm driving the LEDs is through a program in processing that playbacks video, samples colors, and sends strings of data over serial to the teensy. This works perfectly with the 16 TLCs, but freezes and crashes immediately when the '#define TLC_CHANNEL_TYPE' is changed from uint8_t to uint16_t. This behavior is really puzzling to me. I'm fairly certain changing the channel type is causing the program to freeze and I also know it has something to do with the serial port because when I don't send serial commands the app doesn't crash. Anyone have any idea on why this is happening and any possible solutions?

Thanks

Code:
 #include "Tlc5940.h"

 void setup() {
   Serial.begin(9600); // Start serial communication at 9600 bps
   Tlc.init();  
 }
 void loop() {
   if (Serial.available() > 0) {

    if (Serial.read() == '\n'){

     int led = Serial.parseInt(); 
     int brightness = Serial.parseInt(); 
  
     Tlc.set(led,brightness);
     Tlc.update();
     
     }
   }
}
 
Hi,

I’m still struggling to figure out why my led matrix is having issues running at higher cpu speeds. To recap, I have multiple pcbs each with 256 Leds and 16 TLC5940 chips. One panel runs fine at a 72mhz cpu speed on a teensy 3.2, but to run 2 panels I have to lower it to 24mhz. I attached a video showing two panels running first at 24mhz and then at 72mhz. I’ve discovered if I clip the sclk data line going from one board to the other the flickering is almost completely reduced and then if clip the gsclk line the flickering stops completely, but I’m not sure how to completely identify the true issue and how to fix it. I’ve attached the schematic. Does anything jump out immediately as problematic?

Link to a video and schematic: [video]https://www.dropbox.com/sh/hh0tqbu72tdd38p/AACW5LnzidxW6evvrDVZzYCEa?dl=0[/video]
 

Attachments

  • c_sch.pdf.jpg
    c_sch.pdf.jpg
    64.3 KB · Views: 53
Status
Not open for further replies.
Back
Top