2.8 Charlieplexing Status LEDs

All the LEDs connected to ATtiny3217, except the application heartbeat, are updated using the charlieplexing technique.

Charlieplexing is a technique that takes advantage of the tri-state logic capabilities of ATtiny3217 for driving a high number of LEDs using only a few pins. On FSFEB, this method was chosen since a large number of LEDs are necessary to display the status of all the modules, and most of the pins on ATtiny3217 were used for other things.

The technique is efficient in its use of I/O pins but can be complicated to use in large designs due to issues with duty cycle, current requirements, and LED forward voltage considerations.

Because only a single set of LEDs, with a common anode or cathode, can be lit simultaneously without turning unintended LEDs ON, charlieplexing requires frequent output changes, through a method known as flickering. Not all LEDs are lit simultaneously, but rather one set of LEDs are lit briefly, then another set, then another, and eventually the cycle repeats. If it is done fast enough, due to the human eye persistence of vision, the LEDs will appear to be ON all the time.

On FSFEB there are 19 charlieplexed LEDs, using only five I/O pins. The update frequency is set to 60 Hz.

More information about charlieplexing can be found here.