02 December 2015

Dot matrix display programmable interface - for TIL305

Thinking how to use those TIL305 matrix displays, I came up with a way to interface them with an ATtiny2313 saving the correct pins for I2C/TWI communication. The idea is taken from the "tinymatrix" project, but the coupling TIL305/ATtiny2313 is the one shown on my diagram. The decimal point LED has to be sacrificed if you want to keep TWI communication ability, but it is not a big loss for an alphanumeric display.

TIL305 on top of ATtiny2313.

The firmware will scan each dot, one by one, and turn ON those needed to form a predefined pattern. The scanning algorithm will be: column 1 / row 1, column 1 / row 2, ... column 1 / row 7, column 2 / row 1, and so on.

As with every LED a current limiting resistor is needed. They will be installed on the five anode lines ("columns") rather than on the 7 cathodes ("rows"). But how about using the pull-up resistor embedded in most Atmel microcontrollers? According to the datasheet it is 20 kohm typical, or more. At 5 V supply that means very little current through a red LED, but worth a try. How to implement it? When a column is active the corresponding pin will be configured as INPUT_PULLUP (in Arduino terms): this will allow some current to flow through the pin to the dot activated by pulling low the corresponding row. All other four columns will be set as high impedance INPUT. The Atmel datasheet does not mention how fast the pullup resistor can be switched in and out, so this is another thing to learn from this project.