5 - Firmware

Today I found some hours to work on the firmware for my arc clone. After setting up the basic software modules, I spent aproximately 4 hours trying to figure out, why the TLC5940 did not light up any led. With my diy logic analyser I measured a correct data transmission to the chip, the grayscale-clock was constantly sending pulses to the TLC5940 and the matrix rows were switching correctly.

Eventually, I noticed that I was not using the BLANK input pin. The primary function of this pin is to disable the leds, so I did not see any reason to use this pin and directly connected it to GND to enable the leds all the time. However, the BLANK pin has another function as well: It resets the internal pwm counter and starts a new pwm cycle (I was just assuming that the counter would overflow and thus start the new cycle itself). Now it was obvious, why the chip did not light any leds: Once the TLC5940's internal counter reached its maximum value (4096), it hangs there waiting for the micro controller to trigger a reset with the BLANK pin. But in my circuit, the BLANK pin was held low with a direct GND connection and therefore it is never triggered.

This GND connection had to be removed and a new connection had to be made. Some cutting tools and the soldering iron did the job. Here is an image of the working circuit conected to the logic analyser:

running_prototype_with_logic_analyser.png

Now, finally the first arc ring is working, proving that the "TLC5940 in a matrix" concept was a good chioce.