This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SN74HCS595: Seeking guidance on shift registers for driving a 9x9 LED matrix

Part Number: SN74HCS595
Other Parts Discussed in Thread: SN74LVTH244A, SN74LVC1G175, SN74HCS164, SN74LVC1G374, TPL7407L, SN74HCS74

Hello all,

I'm working on a two-color (Red/Green) 9x9 LED Matrix, operating at 3V with a 3mA forward current per LED and driven via a "common cathode" method. I'm interested in a shift register capable of sourcing 3mA@3V for driving the columns. I'm considering integrating a buffer for the rows, likely the SN74LVTH244ARGYR, that can manage up to 54mA per row. The architecture is similar to the one outlined in "TIDUC25–November 2016" but accommodates a 9x9 instead of an 8x8 matrix.

Here are my questions:

  1. I'm considering the SN74HCS595BQBR due to its footprint, price, and availability on Digi-Key. It's suitable for my package height restriction of <1mm. However, the IC's output current appears to be insufficient. My interpolation calculation from the datasheet (20uA@2V to 6mA@4.5V) gives roughly 2.41mA @3V, which falls short. Can you verify this estimation?

  2. Assuming the first point is valid, could you recommend an IC with similar specifications and a comparable footprint/price range? The SN74LV595ARGYR seems ideal, but its availability and cost are issues.

  3. The main issue with this setup is that I have a 9x9 matrix, not an 8x8. Adding an extra shift register feels inefficient, so my alternate solution is to utilize FETs to drive the remaining LEDs. Are there any standard solutions to this issue? 

  • I do not know if the SN74LVTH244A can manage 432 mA through the GND pin.

    1. At 3.3 V, HCS can do 4 mA; see [FAQ] What are the performance specifications of the HCS logic family at 3.3V operation?

    3. Shift registers are made up from flip-flops. You can just add another bit with the SN74LVC1G175 or SN74LVC1G374. (To get both the shift and storage registers of the '595, you need two. For LEDs, you do not really need a separate storage register; consider using the SN74HCS164 instead.)

  • Hey Den,

    I'm considering the SN74HCS595BQBR due to its footprint, price, and availability on Digi-Key. It's suitable for my package height restriction of <1mm. However, the IC's output current appears to be insufficient. My interpolation calculation from the datasheet (20uA@2V to 6mA@4.5V) gives roughly 2.41mA @3V, which falls short. Can you verify this estimation?

    This is one case where the obvious interpolation answer doesn't really work.

    The rated current at each voltage is specific to an output voltage drop rather than any consistent output metric that would scale directly with supply voltage.

    In this case, the voltage drop at 2V with 20uA is up to 0.1V, and the voltage drop at 4.5V with 6mA is up to 0.5V.

    It's much easier to skip to the typical char section and use the output resistance plots:

    In the high state, we expect to see around 40 ohms equivalent at the output for 3.3V, or a voltage drop of 0.132 V.

    -

    Clemens brings up a valid concern with the total current -- logic gates generally can't drive a huge amount of total current -- hopefully you are planning to multiplex the LEDs to avoid exceeding the total current limitations of the SN74LVTH244A. You could also look at a stronger driver like the TPL7407L, which can handle a lot of current but only can drive low (should work for the common cathode design), or perhaps using discrete transistors to handle the higher current.

    Another option for another register would be the SN74HCS74 which is available in the BQA package and contains 2 D-type flip-flops you could configure as your last channel.

  • Thank you both for the feedback, @Clemens, @ Emrys

    I plan to scan each row sequentially, ensuring a maximum of 54mA through the GND pin of the SN74LVTH244A at any given time. As the whole setup will run from a 3V coin battery, I can't afford to waste energy.

    1. How do the sourcing capabilities at 3.3V compare to 3.0V? Can I expect close to 4mA, say at least 3.5mA?
    2. Great suggestion! I've put together a basic sketch from datasheet print screens. Can you check if I've connected it all up correctly?
      1. Regarding the SN74HCS164: I'm new to LED matrices, so correct me if I'm wrong, but don't I need a storage register to keep the "current row value" before sending it to output to avoid visible "glitching" or bit-shifting?

    @Emrys

    Thank you for the clarification. So, if I get it right, I should take 40 Ohms into account when calculating the current limiting resistor for my LED? 

    I'm a bit lost on how you arrived at the 0.132V drop though.. 

    Also, thanks for the tip on the SN74HCS74. I came across it as well after finishing the above diagram and realizing that I need two flip-flops. 

  • 1. From the graphs above, I'd estimate the output resistance at 3.0 V to be about 34 Ω and 42 Ω.

    3. You need to wire up the extra flip-flops in exactly the same way as the other flip-flops. This looks correct.

    a. If the clock is fast enough, the glitches will not be visible. (HCS supports more than 40 MHz at 3.3 V.) I do not know how you are controlling the shift register; GPIOs should be fast enough, but it is also possible to use an SPI output.