Best way to use multiple decoders for an LED matrix

decoderdigital-logicled-matrixshift-register

I'm designing a 16 x 32 RGB LED Matrix and its controller / driver board.
So I've designed a couple of solution approaches and I'm wondering if there is a better way to drive multiple 4 to 16 line decoders ( I am using the CD4514B ) than the solution I'll show in the image below.


Some background information:

Simply I want to use two of the 4-16 decoders to end up with 32 channels so I can select/enable ONE row|column of the matrix at a time.

The other row|column ( the 16 pin side of the matrix in this solution ) is selected/activeted by two 8bit shift registers ( times three since RGB ).

At this point I'm not sure if I should control the 16pin side by 2x shift registers and the 32pin side by 2x 16bit decoders OR control the 16pin side by 1x 16bit decoder and the 32pin side by 4x 8bit shift registers.

I am also not shure if I should/can split the matrix into 8 individual 8×8 matrixes, and why I should do that…

Since I dont even know which AVR I'll be using as the main unit at this point, I don't know how many IO pins I can use. Even if I want to keep the size and costs as down as possible, I dont want to run into some timing / speed problems. And that is the point – I dont know which design suits the best, because I will need many shift registers in a tree-like-structure when I want to use a small AVR like the ATtiny45 ( 5 IO pins ).

So If you have some ideas / experiences about this, please tell me.


But to come back to the original question, here is my thought about the dual 4-16 decoders:

enter image description here

What do you think about it ? Is this the common way to do this ?

For sure, for chaining more than 2 decoders, I could simply use another ( e.g. 3 to 8 bit ) decoder, just to control the inhibits, but for this one I'm dealing with only two.

Thank you for your help.

Best Answer

That's exactly the way it's done, as long as you don't want to turn off all the LEDs at any time. If so

schematic

simulate this circuit – Schematic created using CircuitLab

will allow a master inhibit to override the select line.