2

I am in India where LEDs are super cheap. I have my 256 x 256 pixel Conway "Life Machine"(TM) circuit which I am thinking to give a display nicer than that small oscilloscope screen. Each LED costs me about a penny, so 256 x 256 would cost me 655.36 dollars. OK, that isn't cheap, let alone the amount of time it would take to solder all those LEDs. Perhaps I won't do it. But I would still like to review if my electronic design would be about right.

We'd be writing this screen serially, so it all is just like an oscilloscope, except I won't need the R2R DAC circuits. To address a pixel, let's say the column line needs to be high and the row line needs to be low. I could use a decoder 4-to-16, or, if we can't get those chips, we use 3-to-8. So, let me design a 16 x 16 display.

schematic

simulate this circuit – Schematic created using CircuitLab

This would give me a 16 x 16 = 256 pixel monochrome display.

If I wanted to extend this to 128 x 128 pixels, then I would add another 74HC138 3-to-8 decoder to connect to the !E1 lines for each pair of 74HC[12]38 so I have 7 bit row and column addresses. To extend to full 256 x 256 I would get the 8th address line from the !E0--E2 pair of the secondary 74HC138's again.

This would seem to work and if I'd order a PCB and order the LEDs to be soldered in already (or perhaps have it manually manufactured here in India itself) it would even be feasible.

Is there a simpler method to drive the LEDs?

Is this method insufficient? -- YES it is insufficient. First I thought maybe I don't need the following:

  1. I suppose I should add (trimmable?) resistors at least on the connections to the ground paths (to the 74HC138 outputs)?
  2. I suppose I do not need line drivers? That the output power and resistance of all pins of the 74HC[12]38 chips are even?

But then I noticed I need at least an on-off channel (corresponding to the Z-channel on the oscilloscope), not just those X (column) and Y (row) address lines. Of course, duh!

And it was already stated that the current source and sink of those chips isn't sufficient to make the display appear bright. So, we need to insert transistors.

schematic

simulate this circuit

To make this work I would have to replace the 74HC138 on the row lines with 74HC238's also, and using NPN transistors for everything (or should I use PNPs?)

For gray-scale I would need n-bits per pixel, in that case instead of the simple on-off Z strobe that controls the pixel as the row/column addresses scan, I would introduce an R2R DAC of 2, 3, or 4 (or more) bits and drive the Z-input that way.

For RGB color, I would use RGB diodes and in this case a common cathode on the 74HC138 side and replicate this R2R DAC for each color channel.

Is this how it essentially works? Or is there something vastly more simple?

Gunther Schadow
  • 1,441
  • 7
  • 22
  • 1
    Yes, there are simpler ways to do it. However your design is suffering badly from 'feature creep'. You started off just wanting to show Conway's Game of Life on a 256x256 pixel LED screen, then expanded it to gray scale and color, which is huge step up in complexity. I suggest you stick with the original plan. – Bruce Abbott Oct 09 '22 at 19:48
  • @BruceAbbott feature creep, sure, it would be crazy to try to do color. The gray scale diversion helped me discover that I completely forgot the Z-channel to actually control the pixels. – Gunther Schadow Oct 09 '22 at 19:55

1 Answers1

4

The chips you propose have pin output current much too low to support such a large a row (or column) multiplexed display. The multiplexed displays only appear bright because the pulses to each LED are quite high - often higher than the continuous current the LED can support. E.g. a LED that you would drive at 1mA continuously, takes 256mA pulses in a 256 row or column multiplexed application. The LED itself needs to be qualified for such use: if the LED doesn't explicitly allow such high pulsed current operation, you'll have to set up a test in typical environment the LEDs would operate in, and run the LED for at least 6 months while accurately measuring its light output, to characterize aging.

Also, assume 1mA per LED average, all LEDs on. Let's say the LEDs have 2V forward current. That's 65,536×2V×1mA ≈ 130W. Assuming about 30% efficiency of a typical LED, that's about 100W of heat dissipated by the LEDs, and say an additional 20-50W dissipated by the series resistors and driver chips.

This is not something to overlook. It will be a problem unless you design it not to be a problem. At the very least, you'll have to do worst-case measurements, i.e. in 40C or 50C ambient temperature.

I suppose I should add (trimmable?) resistors at least on the connections to the ground paths (to the 74HC138 outputs)? [...] the output power and resistance of all pins of the 74HC[12]38 chips are even?

CMOS logic outputs are soft current sources, and are pretty well matched inside of a chip. No external resistors are needed as long as the chip can sustain the dissipation. For CMOS logic LED driving, it's normal not to use any resistors, and instead control the supply voltage to the logic to vary the brightness. A 2.5V to 5.0V adjustment range will cover the full brightness range those chips can support. It will not be a whole lot, and certainly not enough for a 256x256 display. It will maybe be bright enough for an 8x8 display.

You could set up the display as 1024 modules of 8x8 pixels each - then you could drive the LEDs directly from CMOS logic outputs - not 74HC since it doesn't have enough drive current though. Otherwise, you'll need a much higher drive current. The column drivers would be PNP transistors, for example, and the row drivers would be ULN2003. There are many other ways of doing it, of course!

  • Note that I forgot the Z-channel and then inserted transistors to actually turn pixels on and off. But you are telling me that I could indeed vary Vcc on the 74HC238 instead, that is very interesting. – Gunther Schadow Oct 09 '22 at 19:57
  • 1
    About the current not being enough for a larger display, are you considering that at any given moment only one LED is actually on? Is your concern about the over-current that must be used to drive the LED bright enough in the short instant that it is on? – Gunther Schadow Oct 09 '22 at 19:58
  • just vary the on-time of the 74HC238 enable to control brightness – Jasen Слава Україні Oct 09 '22 at 23:26
  • You are giving me another idea: you say "a large row or column multiplexed display" I didn't think about that. Indeed I could light up the appropriate columns of an entire row! So the design would be very different. There would be flip-flops for all the pixels of the row, and the pixels for the next row would be shifted in, like the 74HC595 serial in parallel out register. Is that how it's done? – Gunther Schadow Oct 10 '22 at 04:04