SLVA267B Mar 2007 – September 2018 MSP430F427 , TLC5940 , TLC5940-EP , TLC5941
The firmware is configured to drive a single TLC5941 with 16 LEDs. However, several TCL5941s can be cascaded or daisy-chained together to drive a large number of LEDs. The TLC5941 data sheet shows how to daisy-chain several TLC5941s together. The loop counters and RAM address calculations of the GSOUT and DCOUT subroutines can be changed to accommodate any number of daisy- chained TLC5941s. The only limitation is the speed of the serial communications versus the desired frame rate of the display and the amount of RAM to store the dot correction and grayscale data.
The firmware example requires little EEPROM space in the MSP430F427. The dot correction and grayscale data tables require 48 bytes of RAM per TLC5941. The MSP430F427 was selected for this example implementation because it has 1KB of RAM available to store the dot correction and grayscale data. The 1KB of RAM is enough to store data for up to 21 TLC5941s or 336 LEDs.
The example implementation uses a 2-MHz system clock. This frequency is generated by the MSP430F427 from an external 32.768-kHz quartz crystal. The selection of a 32.768-kHz crystal and a 2-MHz system clock allow for the possibility of the MSP430F427 to drive an optional LCD display. If an LCD display is not required, then the system clock speed could be increased to 8 MHz which is the highest capability of the MSP430F427. Increasing the clock speed would speed the firmware execution and thus speed the communications between the MSP430F427 and the TLC5941 and thus increase the frame rate.