Need help using 6 daisychained 74hc595's to drive a 40x8 dot-matrix screen

I'm making a clock and part of it is a big **** screen of 8x40 leds. But I'm having trouble driving it. You need a loooot of output pins to drive that kind of screen.

I assembled a driver for the screen myself. I daisychained six 74hc595 chips to drive the 40 columns and to sink the current of the 8 rows (through transistors). You can see the schematic here.

Here is the datesheet of 74hc595

But writing the code, I got in a bit of a pickle. I can't seem to get a non-flickering image. And even worse, if I use a lot of 'heavy' characters that light a lot of leds, the image gets worse and more flickery. Here's the code I'm using.

Any ideas? 'cause this is kind of exceeding my capacities.

Comments

  • 5 Comments sorted by Date Added Votes
  • Welcome to the forums!

    You did not mention the controller that you are using. Basic Stamp? Propeller?

    Also no code was included with your post.

    More information is needed to get a proper answer.
    Infernal Machine
  • rosco_pcrosco_pc Posts: 258
    edited July 4 Vote Up0Vote Down
    Stockholm, Sweden
    I am only an egg -- Stranger in a Strange land, Robert A. Heinlein
  • Beau SchwabeBeau Schwabe Posts: 6,301
    edited July 4 Vote Up0Vote Down
    Instead of daisy chaining them, consider paralleling all of the SRCLK's and SER's and loading them that way, making use of the RCLK to update or latch only the "banks" that change. The throughput will be faster that way and help minimize any flickering.



    Beau Schwabe -- Submicron Forensic Engineer
    www.Kit-Start.com - bschwabe@Kit-Start.com ෴෴ www.BScircuitDesigns.com - icbeau@bscircuitdesigns.com ෴෴

    Seriously at this point in the game the ship has sailed and "I have no expectations" <- said someone we know
  • tonyp12tonyp12 Posts: 1,864
    edited July 4 Vote Up0Vote Down
    How many MCU pins do you want to dedicate to this?
    1pin: can be done: The sink-mosfet gets its signal from the 595.



    4pins makes it easier, inserting dead-time between sink-mosfet will help with capacitance on the lines that could light up wrong LEDs for 1/100sec
    10pins and you can parallel them instead.


  • jmgjmg Posts: 10,611
    ..... I can't seem to get a non-flickering image. And even worse, if I use a lot of 'heavy' characters that light a lot of leds, the image gets worse and more flickery. Here's the code I'm using.

    Any ideas? 'cause this is kind of exceeding my capacities.
    If things get worse with more LEDs, that's usually a sign of bounce effects, aka too many spikes from the high current edges.
    Can you drop the LED current right down, and just light one led, and move that across the display ?
    That reduces bounce and lets you confirm you can drive ok.
    From there, increase the LED current, and number of driven LEDs and see what breaks.
    Bad cases of bounce may need local isolation and multiple ground wires - the effects can be at Host-> first C595, and then C595->C595
    Some mitigation could be possible with a blank-shift, where you disable LED drive, clock the registers, and then enable.
    If the x8 drivers are under your full control, that can be a good place to blank, as they can have slower Tr,Tf


    There are higher-current C595's - drop 6C595 into Digikey's search, to find a few.
    These are sinking parts, so would require you flip the LED Drive, which it may be too late to do.

Sign In or Register to comment.