Searching \ for 'LED matrix multiplexing' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/displays.htm?key=led
Search entire site for: 'LED matrix multiplexing'.

Truncated match.
PICList Thread
'LED matrix multiplexing'
1996\11\10@174111 by Zhahai Stewart

flavicon
face
I am considering building a small LED matrix sign, probably
using 12 stackable 8x8 LED matrix blocks (approx 2"x2").  This
would produce a display surface of 8 rows each 96 wide - enough
for 16 chars of 5x8 with one space between.  (One use would be
a Caller ID I could read at night with my glasses off :-)

How is this generally done?  If I did 8 way multiplexing, with
20 ma current per LED, this would mean about 2 amps draw.  This
could be done with 96 high side drivers sourcing 20 ma each,
96 current limiting resisters, and 8 low side drivers sinking
about 2 amps each (fairly hefty).  Or reverse this, and have 96
low side drivers (at this current, could be PICs directly) and
8 x 2 amp high side drivers.  OR I could split up the common side,
into, say, 3 groups of 4 matrix blocks, each with it's own driver
(to keep the current in the shared driver down) - but this would mean
24 common side drivers (plus 96 on the other side).  Is there a
preferred architecture?

Questions:

Is 1/8 duty cycle enough?

That would mean an average of 2.5 ma current for each lit
LED, which seems rather small; would I need higher current?
(50 ma/LED means 5 amp drivers!).

Is there a prefered direction for scanning, like top row to
bottom row (vs side to side within each 8x8 block)?

Other suggestions?
  Thanks, Zhahai


@ Zhahai Stewart       spam_OUTzhahaiTakeThisOuTspamhisys.com
@ A Meme Gardener      http://rainbow.rmii.com/~hisys/zhahai.html
@ Standard Disclaimer  YMMV - Your Maya May Vary

1996\11\10@200207 by Byron A Jeff

face picon face
>
> I am considering building a small LED matrix sign, probably
> using 12 stackable 8x8 LED matrix blocks (approx 2"x2").

I thought the whole display was 2x2 (i.e. small) but i realize that
is would be 8x96 and 2 feet long...

> This
> would produce a display surface of 8 rows each 96 wide - enough
> for 16 chars of 5x8 with one space between.  (One use would be
> a Caller ID I could read at night with my glasses off :-)

I want a nice lit display for a security panel. Unfortunately it's
a bit too big for my tastes. I'm looking for something like 5 5x7
elements that fit on a 14 pin DIP...

>
> How is this generally done?  If I did 8 way multiplexing, with
> 20 ma current per LED, this would mean about 2 amps draw.

Which is absolutely too much...

>  This
> could be done with 96 high side drivers sourcing 20 ma each,
> 96 current limiting resisters, and 8 low side drivers sinking
> about 2 amps each (fairly hefty).  Or reverse this, and have 96
> low side drivers (at this current, could be PICs directly) and
> 8 x 2 amp high side drivers.

Wait I'm missing something. Aren't these displays internally multiplexed?
Something along the lines of having 16 pins with all the anodes of a row
connected together and all the cathods of a column? It would neve occur
to me to try to drive all 96 bits at the same time. Think one column at
a time.



>OR I could split up the common side,
> into, say, 3 groups of 4 matrix blocks, each with it's own driver
> (to keep the current in the shared driver down) - but this would mean
> 24 common side drivers (plus 96 on the other side).  Is there a
> preferred architecture?

How I've done it lately is to light one column at a time. I usually
use a 7445 BCD to 1-10 decoder because each pin can drive 80 ma (which
would be 10ma per led. Then all you'd need is one 8x10ma driver for
all the columns and one 7445 for each 10 columns (i.e. 10 for your application)
Another possibility is to use something like the Allegro Semi drivers
which can suck up a 1/2 A per line as long as only one line is on...


>
> Questions:
>
> Is 1/8 duty cycle enough?

Certainly. A typical PIC could drive this display in the 100's of kHz range.
That's why I'm suggesting 1/96 duty cycle. You can really
>
> That would mean an average of 2.5 ma current for each lit
> LED, which seems rather small; would I need higher current?
> (50 ma/LED means 5 amp drivers!).

Consider how long it's going to take you to set up 96 lines I'd go for
the much smaller duty cycle at much higher current.

>
> Is there a prefered direction for scanning, like top row to
> bottom row (vs side to side within each 8x8 block)?

Doesn't matter as long as it's fast enough. Typically I do one column
at a time from left to right.
>
> Other suggestions?

Yup. Up the current, drop the duty cycle. Remember you'll need at a minimum
96 bytes of memory, so it'll limit the choice of pics you can use.

>    Thanks, Zhahai
>
>
> @ Zhahai Stewart       .....zhahaiKILLspamspam@spam@hisys.com
> @ A Meme Gardener      http://rainbow.rmii.com/~hisys/zhahai.html
> @ Standard Disclaimer  YMMV - Your Maya May Vary
>

1996\11\10@210411 by Bob Blick

picon face
Zhahai writes:

>I am considering building a small LED matrix sign, probably

>How is this generally done?
>
>Is 1/8 duty cycle enough?
>
>Is there a prefered direction for scanning, like top row to
>bottom row (vs side to side within each 8x8 block)?
>

"Typical" moving signs are run at 1/7 duty cycle, so 1/8 is close enough. I
made a sign with 1/10 duty cycle and it works fine
(http://www.bobblick.com/bob/projects/sign2.html).

Most signs run bottom to top, which gives a somewhat "italic" look when the
text moves horizontally right to left.


Cheers, Bob

1996\11\11@015403 by Werner Terreblanche

flavicon
face
>I am considering building a small LED matrix sign, probably
>using 12 stackable 8x8 LED matrix blocks (approx 2"x2").  This
>would produce a display surface of 8 rows each 96 wide - enough
>for 16 chars of 5x8 with one space between.  (One use would be
>a Caller ID I could read at night with my glasses off :-)

>How is this generally done?  If I did 8 way multiplexing, with
>20 ma current per LED, this would mean about 2 amps draw.  This
>could be done with 96 high side drivers sourcing 20 ma each,
>96 current limiting resisters, and 8 low side drivers sinking
>about 2 amps each (fairly hefty).  Or reverse this, and have 96
>low side drivers (at this current, could be PICs directly) and
>8 x 2 amp high side drivers.  OR I could split up the common side,
>into, say, 3 groups of 4 matrix blocks, each with it's own driver (to
>keep the current in the shared driver down) - but this would mean 24
>common side drivers (plus 96 on the other side).  Is there a preferred
>architecture?

Zhahai

 I used to make LED displays like the one you describe.  Mine worked
as follows:

I used a row of 74HC164 shift registers, all connected in series so
that whatever you clock in at the first one, would eventually get to the
last one.  Then every shift register was buffered by a ULN2803
driver.   If your display is 96 leds wide, then you will need 12 x
74HC164's and 12 x ULN2803's.   There will also be 96 resistors to
limit the current to the LED's.

The eight rows of  96 LEDS are switched on as a whole row, by means
of one of eight TIP31 transistors.   My duty cycle for each row was
about  2mS per row.


>Is 1/8 duty cycle enough?

Depends on the birghtness that you need from your display.  Use only
good bright LED's, and it should not be a problem.

>Is there a prefered direction for scanning, like top row to
>bottom row (vs side to side within each 8x8 block)?

I found that my direction of scanning caused a slant of the font in a
particular direction.  I rather liked a forward slant in it.

Please feel free to ask any more question.  If you want, I can even
provide you with some of my old display boards to do your prototyping
on, but you will have to do the microprocessor part yourself.

Rgds
Werner



--
Werner Terreblanche   Tel +27 21 7102251   Fax +27 21 721278
wterrebspamKILLspamplessey.co.za (work) OR .....wernerKILLspamspam.....aztec.co.za  (home)

1996\11\11@025942 by Eric Smith

flavicon
face
Werner Terreblanche <EraseMEwterrebspam_OUTspamTakeThisOuTPLESSEY.CO.ZA> wrote:
>   I used to make LED displays like the one you describe.  Mine worked
> as follows:
>
> I used a row of 74HC164 shift registers, all connected in series so
> that whatever you clock in at the first one, would eventually get to the
> last one.  Then every shift register was buffered by a ULN2803
> driver.   If your display is 96 leds wide, then you will need 12 x
> 74HC164's and 12 x ULN2803's.   There will also be 96 resistors to
> limit the current to the LED's.

Note that Allegro (formerly Sprague) and other vendors of analog driver chips
such as the ULN2803 also make driver chips with integral shift registers.  I
don't have any part numbers handy, but I've used them in the past.  They
reduce package count, but I'm not sure whether or how much they reduce the
parts cost.

Cheers,
Eric

1996\11\11@111311 by Reginald Neale

flavicon
face
>Werner Terreblanche <wterrebspamspam_OUTPLESSEY.CO.ZA> wrote:
>>   I used to make LED displays like the one you describe.  Mine worked
>> as follows:
>>
>> I used a row of 74HC164 shift registers, all connected in series so
>> that whatever you clock in at the first one, would eventually get to the
>> last one.  Then every shift register was buffered by a ULN2803
>> driver.   If your display is 96 leds wide, then you will need 12 x
>> 74HC164's and 12 x ULN2803's.   There will also be 96 resistors to
>> limit the current to the LED's.
>

Eric Smith said:
>Note that Allegro (formerly Sprague) and other vendors of analog driver chips
>such as the ULN2803 also make driver chips with integral shift registers.  I
>don't have any part numbers handy, but I've used them in the past.  They
>reduce package count, but I'm not sure whether or how much they reduce the
>parts cost.
>
They can. The Allegro 5810 thru 5818 are serial drivers from 10 to 32 bits.
They can be cascaded. All outputs can simultaneously sink 25 ma and still
stay within total package dissipation limits. On the design where I used it
a year or so ago, the 5812 (20 bits) was USD $2.58 in qty 100.


.....................Reg Neale.....................
Complete text of the winning entry in a recent good-government essay contest:
"Good Government.  Gooooood Government.   Sit.    Stay."

1996\11\11@111523 by Matthew Mucker

flavicon
face
>I am considering building a small LED matrix sign, probably
>using 12 stackable 8x8 LED matrix blocks (approx 2"x2").  This
>would produce a display surface of 8 rows each 96 wide - enough
>for 16 chars of 5x8 with one space between.  (One use would be
>a Caller ID I could read at night with my glasses off :-)
>
>How is this generally done?  If I did 8 way multiplexing, with

Zhahai,

I am currently using a Maxim MAX7219 chip to drive five seven-gegment LED
displays in my project.  The 7219 handles the scanning for up to eight
displays. It interfaces to the uP via a three-wire serial interface, and
you can daisy-chain several of them by connecting DATA OUT of one to the
DATA IN pin of the next one.

These parts are designed for seven-segment displays, but could easily
handle the type of work you're describing.  Just spend a few minutes with
the data sheet.  I don't know what the price of these babies are, but I
think it's about $7.00US each, which may be a bit high.  On the other hand,
each chip handles 64 individual LEDs and has features like brightness
control built in, and external parts count is really low-- one resistor!!!


The part is PERFECT for my project, and has made life considerable easier
for me.  Whether or not it's right for you is something only you can
decide, but I thought I'd let you know it was out there.

-Matt


 "DOS Computers manufactured by companies such as IBM, Compaq, Tandy, and
millions of others are by far the most popular, with about 70 million
machines in use wordwide. Macintosh fans, on the other hand, may note that
cockroaches are far more numerous than humans, and that numbers alone do
not denote a higher life form."

1996\11\11@112143 by Byron A Jeff

face picon face
> Eric Smith said:
> >Note that Allegro (formerly Sprague) and other vendors of analog driver chips
> >such as the ULN2803 also make driver chips with integral shift registers.  I
> >don't have any part numbers handy, but I've used them in the past.  They
> >reduce package count, but I'm not sure whether or how much they reduce the
> >parts cost.
> >
> They can. The Allegro 5810 thru 5818 are serial drivers from 10 to 32 bits.
> They can be cascaded. All outputs can simultaneously sink 25 ma and still
> stay within total package dissipation limits. On the design where I used it
> a year or so ago, the 5812 (20 bits) was USD $2.58 in qty 100.

2 questions as I have a couple of these parts:

1) Is there an online data sheet for these?
2) Are there any suppliers in low quantities? Like less than 10.

BAJ

1996\11\11@122722 by hjmuller

flavicon
face
> Date:    Sun, 10 Nov 1996 16:35:27 -600
> From:    Zhahai Stewart <@spam@zhahaiKILLspamspamHISYS.COM>
> Subject: LED matrix multiplexing
>
> I am considering building a small LED matrix sign, probably
> using 12 stackable 8x8 LED matrix blocks (approx 2"x2").  This
> would produce a display surface of 8 rows each 96 wide - enough
> for 16 chars of 5x8 with one space between.  (One use would be
> a Caller ID I could read at night with my glasses off :-)
>
[part of message supressed]
{Quote hidden}

Hi Stewart:
                I suggest that you use the MAX7129  DIP24 (from MAXIM). This is
a
SERIALLY INTERFACED, 8-DIGIT LED DISPLAY DRIVER and you can get a free sample
from WWW.MAXIM-IC.COM or PHONE 1-800-998-8800.
               Do you have any information about CALL ID system that you
mention ? I'm interested in this class of information, and other user on the
list too. (Have you Technical Specifications about CALL-ID?
               Bye, Hugo




-------------------------------
Hugo J. Muller
E-mail:    RemoveMEhjmullerTakeThisOuTspamsatlink.com
Parana - Entre Rios - Argentina
-------------------------------

1996\11\11@165348 by Dwayne Reid
flavicon
face
  snip
>> I used a row of 74HC164 shift registers, all connected in series so
>> that whatever you clock in at the first one, would eventually get to the
>> last one.  Then every shift register was buffered by a ULN2803
>> driver.   If your display is 96 leds wide, then you will need 12 x
>> 74HC164's and 12 x ULN2803's.   There will also be 96 resistors to
>> limit the current to the LED's.
>
>Note that Allegro (formerly Sprague) and other vendors of analog driver chips
>such as the ULN2803 also make driver chips with integral shift registers.  I
>don't have any part numbers handy, but I've used them in the past.  They
>reduce package count, but I'm not sure whether or how much they reduce the
>parts cost.
snip

Eric: I currently use a Texas Instruments TPIC5B595 which is an 8 bit SR
with output latch driving 8 150 mA mosfet open drain drivers.  In hundreds,
they cost about $1.10 Canadian (maybe $0.80 US).  They have all the
advantages of 74hc595 but with much higher current (sinking only, tho).
Most of my projects use 4 or 6 of them chained in series (mixing in hc595 is
ok).

Dwayne

1996\11\12@025049 by fastfwd

face
flavicon
face
I forget who started this thread, but here's a bit of advice...

Many people have suggested that the easiest/best way to multiplex all
those LEDs is with very high currents and very low duty cycles.

That's fine for the finished product, since each LED will only be
subjected to those very high currents for a short time.

While you're debugging your software, however, you should limit the
LED current to whatever value your LEDs can handle CONTINUOUSLY.  If
you're single-stepping your code through an emulator (or if there's a
bug in your code that prevents the multiplexing from working
properly), this'll keep you from burning out hundreds of LEDs.

-Andy

Andrew Warren - spamBeGonefastfwdspamBeGonespamix.netcom.com
Fast Forward Engineering, Vista, California
http://www.geocities.com/SiliconValley/2499

1996\11\12@104136 by Zhahai Stewart

flavicon
face
> > I am considering building a small LED matrix sign, probably
> > using 12 stackable 8x8 LED matrix blocks (approx 2"x2").

> >  This
> > could be done with 96 high side drivers sourcing 20 ma each,
> > 96 current limiting resisters, and 8 low side drivers sinking
> > about 2 amps each (fairly hefty).  Or reverse this, and have 96
> > low side drivers (at this current, could be PICs directly) and 8 x
> > 2 amp high side drivers.
>
> Wait I'm missing something. Aren't these displays internally
> multiplexed?

No, I believe that the 64 LED's in each of the twelve blocks are
arranged in an 8x8 matrix.  16 pins.  8 are cathodes for columns,
8 are anodes for rows (also available vice versa).  To me
the obvious way to scan them is to power one anode (of 8) at a
time, while driving the appropriate subset of cathodes (depending
one which LEDs in this row should be lit currently).

For 96 wide by 8 high (27" x 2", twelve x8x blocks), this means 96
individually controlled column drivers, and 8 massive row drivers.

There have been some great leads regarding low side drivers (for the
96 sinks).  What about the 8 high side (in this regard) high current
drivers, many amps each?  I now read that the peak current for some
of these LED blocks (per LED, 1/10 or less duty cycle) can be 80-100
ma!  (by 8, would be 640-800 ma per block, via the row anode, times
twelve is up to 10 amps!).  I don't have to have absolute maximum
brightness, so I could compromise this to much less current.  But it
seems that I still need 8 high current transistors for the
rows/anodes.

I have read that logic gate power MOSFETs when used high side
(between power and the LED anodes) take several volts (eg: 5)
above the power supply to switch!  That makes it hard to simply
interface them (as high side drivers) to PIC outputs.

How would I use a PIC output to switch approx 5 volts at 2-10 A
(most to least compromise) into each of the 8 anode/rows?  Only
one (or none) at a time is needed.  At LED multiplexing speeds;
no relays please :-)

I guess this also brings up the question of appropriate multiplexing
speeds.  Would a 16 msec cycle, with 2 msec per row, be a good
frequency?  Or does it need to be faster to avoid visible flicker?

Thanks for the help!
   Zhahai


@ Zhahai Stewart       TakeThisOuTzhahaiEraseMEspamspam_OUThisys.com
@ A Meme Gardener      http://rainbow.rmii.com/~hisys/zhahai.html
@ Standard Disclaimer  YMMV - Your Maya May Vary

1996\11\12@111426 by Byron A Jeff

face picon face
{Quote hidden}

What you just described is internally multiplexed. A non multiplexed display
would have 64 anodes and 64 cathodes - a packaging nightmare.

I usually do the opposite - drive one cathode and control the anodes.

>
> For 96 wide by 8 high (27" x 2", twelve x8x blocks), this means 96
> individually controlled column drivers, and 8 massive row drivers.

You're still thinking in terms of driving an entire 96 element row. It's
not necessary I believe but of course the biggest display I've built only
had 40 columns. I drove one column at a time (max 7 LED on at a time using
5x7 displays). Looked great.

{Quote hidden}

Once again think smaller and faster. Like the post yesterday on the TI
TPIC6B595. This part has a shift register and latch with 8 low side drivers
that can sink 150ma continous, 500ma peak/pulsed. All in a 16 pin DIP.
Cascadeable too.  You'd need 12 of them and pulse one at a time (simply a
shift and latch).  Then you can drive all of the anodes with 8 transistors
2N2222 and 100 ohm current limiting resistors. The display will work fine
at 1/96 duty cycle. The 1/8 cycle isn't important and designing with
multiamp circuitry to get it is tough work. If it turns out you need
a faster duty cycle, then just find a duty cycle that works for you then
duplicate the anode circuitry.

Find a solution that works for one column (the sort side) then extend. Once
one column works, then you can have as many columns as you like.

Also consider how long it going to take the PIC to load up 96 bits of data
for each row. For one column all you need is a single 8 bit latch and 4-5
instructions to load it. 96 bits will requre either 96 bits shifted in or
require 12 8 bit latches. By working with one column at a time, you reduce
your data load capacity and time.

>
> I have read that logic gate power MOSFETs when used high side
> (between power and the LED anodes) take several volts (eg: 5)
> above the power supply to switch!  That makes it hard to simply
> interface them (as high side drivers) to PIC outputs.

Exactly. And you only need to do that for multiamp solutions. A one column
at a time solution will be less that 400 ma tops and that's pulsed.

BTW what are the peak/pulsed currents on the LEDs? And the duty cycle? That
should help determine a solution...

>
> How would I use a PIC output to switch approx 5 volts at 2-10 A
> (most to least compromise) into each of the 8 anode/rows?  Only
> one (or none) at a time is needed.  At LED multiplexing speeds;
> no relays please :-)
>
> I guess this also brings up the question of appropriate multiplexing
> speeds.  Would a 16 msec cycle, with 2 msec per row, be a good
> frequency?  Or does it need to be faster to avoid visible flicker?

I find that flicker is free at about 500 Hz. So a 96 column display would
need to be driven at about 48 khZ to be effective.

>
> Thanks for the help!

Thnk about 1 column at a time. You can control 96 columns using only 3 bits
of the PIC and a single shift an load for each column.

BTW Marshall Electronics has samples of the TI TPIC6B595. I plan to test
my next display with them.

BAJ

1996\11\12@130644 by Bob Blick

picon face
>I guess this also brings up the question of appropriate multiplexing
>speeds.  Would a 16 msec cycle, with 2 msec per row, be a good
>frequency?  Or does it need to be faster to avoid visible flicker?
>

Most signs run faster than this, but 16 msec cycle is actually fine. I just
tested one of my signs, and at 30 msec there is quite obvious flicker. At 20
msec or less I don't notice any flicker. I'm sure there are people out there
with "golden eyes" who will see flicker down to 10 msec, so that might be a
rate to shoot for.

On your topic of current, if you are making an indoor sign with that many
LEDs, you don't need a tremendous amount of current. An average current of 5
mA will be quite bright. Choose your LEDs carefully, though. There is a lot
of variation in efficiency(as well as price!).

Cheers, Bob

1996\11\12@152033 by Zhahai Stewart

flavicon
face
>>>> I am considering building a small LED matrix sign, probably
>>>> using 12 stackable 8x8 LED matrix blocks (approx 2"x2").
>>>>
>>>> This could be done with 96 high side drivers sourcing 20 ma each,
>>>> 96 current limiting resisters, and 8 low side drivers sinking
>>>> about 2 amps each (fairly hefty).

>> [These are interally multiplexed]

>> No, I believe that the 64 LED's in each of the twelve blocks are
>> arranged in an 8x8 matrix.  16 pins.  8 are cathodes for columns,
>> 8 are anodes for rows

> What you just described is internally multiplexed.

OK.  Just not the way I use the term, no problem.

> You're still thinking in terms of driving an entire 96 element row.
> It's not necessary I believe but of course the biggest display I've
> built only had 40 columns. I drove one column at a time (max 7 LED
> on at a time using 5x7 displays). Looked great.

I am concerned that I could not get much brightness from a 1/96 duty
cycle.  Two modules I've looked at are spec'd at:

 max  80ma@1/16 or 15ma continuous (surplus)
 max 100ma@1/10 or 20ma continuous (new)

I'm not sure how much I can boost the max current with a low duty
cycle; I am assuming that there is a max dissipation limit (long
term as well as short term) as well as possibly other limits.
Suppose I boosted the former (surplus) module to 100 ma.  That would
be barely over 1 ma average current (at 1/96 duty cycle,
multiplexing).

Anybody else have any experience with such a stretched out
multiplexing cycle?  I presume it would work (at the 48 KHz
pulse/500 HZ cycle you suggest to avoid flicker), but be
fairly dim.  I have in mind using the display for multiple
purposes, some outdoors (tho not in direct sunlight).

You are right that it would simplify the electronics in some
ways.

But this would mean driving 8 LED's at time, with 100 ma
current each, so each of the 96 column drivers would have to
sink 800 ma (when all LEDs in that column were lit).  The row
drivers would only have to source 100 ma each, not a biggie.
With 1/96 multiplexing, I couldn't drop these currents much and
still be visible at all!  (Say to 160 ma/colum, 20 ma peak per
LED, at 1/96 duty cycle).

I'm still leaning more towards 96 column drivers each sinking up
to 100 ma (eg: the TPIC6B595 suggested), and 8 mongo high side
drivers handling one row each for all 12 blocks; or 16 each driving
6 blocks (48 LEDs each); or 24 each driving 4 blocks (32 LEDs each),
etc.  I am still open to alternatives, tho.

> Also consider how long it going to take the PIC to load up 96 bits
> of data for each row.

They need to load it only 8x full cycle frequency.  If the shift
registers were clocked.  I am figuring around 5 PIC instructions
per bit to test a data bit, set the data out line, and pulse the
clock out line (40 instructions inline for one byte), plus say 8
per byte to load each byte in to be tested or shifted, for an
average of about 6 instructions per bit - if it were bit banged.
Could do better with a SSP if available.  To load a 96 bit shift
register (for the columns) this would be around 600 instructions
per LED row, times 8 is 5000 instructions per full refresh (to
load the shift register).  For a 500 Hz full refresh, this would
require a faster PIC; for less, less so.

The alternative of loading one 8 bit row driver shift register 96
times per cycle rather than one 96 bit column driver 8 times per
cycle, comes out to about the same.

Loading either 8 bits parallel would cut the time a great deal, if
there are enough spare I/O pins.  (In the 1/8 cycle scheme, I could
use 12 edge triggered latches in a sequence, and clock out 8 bits
at a time).

Thanks for all the helpful discussion!
   Zhahai

@ Zhahai Stewart       RemoveMEzhahaispamTakeThisOuThisys.com
@ A Meme Gardener      http://rainbow.rmii.com/~hisys/zhahai.html
@ Standard Disclaimer  YMMV - Your Maya May Vary

1996\11\12@154332 by Clyde Smith-Stubbs

flavicon
face
Zhahai Stewart <zhahaiEraseMEspam.....HISYS.COM> wrote:

> Anybody else have any experience with such a stretched out
> multiplexing cycle?  I presume it would work (at the 48 KHz
> pulse/500 HZ cycle you suggest to avoid flicker), but be
> fairly dim.

The human eye is more sensitive to peak brightness levels than
it is to average levels; in my experience a 1/10 duty cycle
looks about half as bright as a 1/1 duty cycle at the same
peak current. 1/96 is certainly low, but it might be worth
experimenting with. It's necessarily a subjective assessment.

It would be unwise to drive the display
at higher than rated peak current, though. And remember Andy's
warning about current limiting during development.


--
Clyde Smith-Stubbs       | HI-TECH Software,       | Voice: +61 7 3354 2411
EraseMEclydespamhitech.com.au      | P.O. Box 103, Alderley, | Fax:   +61 7 3354 2422
http://www.hitech.com.au | QLD, 4051, AUSTRALIA.   |
---------------------------------------------------------------------------
For info on the World's best C cross compilers for embedded systems, point
your WWW browser at http://www.hitech.com.au, or email RemoveMEinfoEraseMEspamEraseMEhitech.com.au

1996\11\12@194101 by Gonzalo Palarea

flavicon
At 09:37 AM 11/12/96 -600, you wrote:

>How would I use a PIC output to switch approx 5 volts at 2-10 A
>(most to least compromise) into each of the 8 anode/rows?  Only
>one (or none) at a time is needed.  At LED multiplexing speeds;
>no relays please :-)
>

The PIC should drive a transistor, which should drive the leds.

1996\11\12@202632 by Byron A Jeff

face picon face
This is an extremely interesting discussion....

>
> >>>> I am considering building a small LED matrix sign, probably
> >>>> using 12 stackable 8x8 LED matrix blocks (approx 2"x2").
> >>>>
> > You're still thinking in terms of driving an entire 96 element row.
> > It's not necessary I believe but of course the biggest display I've
> > built only had 40 columns. I drove one column at a time (max 7 LED
> > on at a time using 5x7 displays). Looked great.
>
> I am concerned that I could not get much brightness from a 1/96 duty
> cycle.  Two modules I've looked at are spec'd at:
>
>   max  80ma@1/16 or 15ma continuous (surplus)
>   max 100ma@1/10 or 20ma continuous (new)

So in fact they could be pulsed higher at a lower duty cycle. But like you said
let's take the 100ma.
>
> I'm not sure how much I can boost the max current with a low duty
> cycle; I am assuming that there is a max dissipation limit (long
> term as well as short term) as well as possibly other limits.
> Suppose I boosted the former (surplus) module to 100 ma.  That would
> be barely over 1 ma average current (at 1/96 duty cycle,
> multiplexing).
>

Well the eye doesn't work linearly. The pulsed brightness seems brighter
than the average. So an led pulsed at 100ma and 1/100 cycle will seem
much much brighter than the same led continous at 1ma.

> Anybody else have any experience with such a stretched out
> multiplexing cycle?  I presume it would work (at the 48 KHz
> pulse/500 HZ cycle you suggest to avoid flicker), but be
> fairly dim.  I have in mind using the display for multiple
> purposes, some outdoors (tho not in direct sunlight).

I haven't dealt with outdoor situations but like I said earlier I've built
a 40 column display pulsed at 1/40 duty cycle at 11ma each. plenty bright.

{Quote hidden}

That's your target. The TPIC6B595 can handle it and sourcing 20ma is no
problem. Keep adding columns until you don't feel it's bright enough, then
stop and add another set of anode drivers.

>
> I'm still leaning more towards 96 column drivers each sinking up
> to 100 ma (eg: the TPIC6B595 suggested), and 8 mongo high side
> drivers handling one row each for all 12 blocks; or 16 each driving
> 6 blocks (48 LEDs each); or 24 each driving 4 blocks (32 LEDs each),
> etc.  I am still open to alternatives, tho.

Try the pulsed low to medium current solutions first. BTW using the system above
how exactly are you going to control brightness? If you current limit the
high side drivers, then you'll get variable brightness. If you current limit
the columns, you'll need 96 resistors (i.e. a 16 pin pack for each display).
By dropping the current using 1 column, you only need 8 resistors for the
whole display, and the brightness will be constant.


{Quote hidden}

OK now mine. Presume that port B is driving the anode drivers and Port A
the cathode serial drivers. On initialization the serial cathode string is
initialized by setting all drivers to 1. After that a single 0 is clocked
and latched into the drivers selecting successive columns. 6 instructions.
Now to prevent bleed from one column to the next the row drivers have to
be turned off between successive columns. So Port B has to be cleared, The
column switched, and portB loaded with the next value. Presuming that
indirect access is used to get the data for each column, we're talking
about 10/11 instructions total:

disploop clrf  portb
        bsf   porta,clock
        nop
        bcf   porta,clock
        nop
        bsf   porta,latch
        nop
        bcf   porta,latch
        movf  INDF,W
        movwf portb
        incf  FSR,F
        decfsz count,F
        goto  disploop

To get 500Hz per column a 2.688 Mhz clock is required. Probably a bit
faster because a small delay between columns is required.

>
> The alternative of loading one 8 bit row driver shift register 96
> times per cycle rather than one 96 bit column driver 8 times per
> cycle, comes out to about the same.

I guess I wasn't playing fair because I planned to load the short side in
parallel, and not bother to latch it (unless of course you need port B
for some other activity.)

BTW the senario above leaves 3 portA pins available on an 18 pin PIC for
communication.

>
> Loading either 8 bits parallel would cut the time a great deal, if
> there are enough spare I/O pins.  (In the 1/8 cycle scheme, I could
> use 12 edge triggered latches in a sequence, and clock out 8 bits
> at a time).

Could do that. I kind of like the cathode shift registers because no real
data is involved, just clocking and latching a bit that only changes at
the beginning of a cycle.
>
> Thanks for all the helpful discussion!
>     Zhahai
>
> @ Zhahai Stewart       RemoveMEzhahaispam_OUTspamKILLspamhisys.com
> @ A Meme Gardener      http://rainbow.rmii.com/~hisys/zhahai.html
> @ Standard Disclaimer  YMMV - Your Maya May Vary
>

1996\11\12@211656 by Ian Stirling

flavicon
face
>
> >I guess this also brings up the question of appropriate multiplexing
> >speeds.  Would a 16 msec cycle, with 2 msec per row, be a good
> >frequency?  Or does it need to be faster to avoid visible flicker?
> >
>
> Most signs run faster than this, but 16 msec cycle is actually fine. I just
> tested one of my signs, and at 30 msec there is quite obvious flicker. At 20
> msec or less I don't notice any flicker. I'm sure there are people out there
> with "golden eyes" who will see flicker down to 10 msec, so that might be a
> rate to shoot for.

Put a 100hz display next to a 50hz, the difference is quite marked, especially
when looking away from it.


>
> On your topic of current, if you are making an indoor sign with that many
> LEDs, you don't need a tremendous amount of current. An average current of 5
> mA will be quite bright. Choose your LEDs carefully, though. There is a lot
> of variation in efficiency(as well as price!).
>
> Cheers, Bob
>


--
Ian Stirling.                        |  http://www.mauve.demon.co.uk/
AKA Caeser, Bolonewbie.              |  With information on the PDA I'm making.

1996\11\13@053254 by Kalle Pihlajasaari

flavicon
face
Hi all LED matrix fans,

A few comments.

Large Backlit LCD displays are available and might be suitable
in some circumstances.

To minimise the number of drivers required you should reorganise
your matrix into as close to a square as possible electrically.

For 8 x 96 you have 768 LEDs (sqrt = 27.7...) 'nice' numbers
are 24 x 32 which would give you a 1:24 multiplex with 32
collumns.  This will be a total of 56 drivers as opposed
to the 104 with the skinny display layout.  About half the number.

The multiplex time and max current are altered by about 3 (better
or worse depending on which way you were planning to drive the
skinny arrangement)

Now the problems are:

No longer quite as logical display arrangement
Possibly more high current drivers.
Slightly more code.

Cheers
--
Kalle Pihlajasaari     RemoveMEkalleTakeThisOuTspamspamdata.co.za
Interface Products     Box 15775, Doornfontein, 2028, South Africa
+27 (11) 402-7750      Fax: +27 (11) 402-7751

1996\11\13@085847 by Byron A Jeff

face picon face
>
> Hi all LED matrix fans,
>
> A few comments.
>
> Large Backlit LCD displays are available and might be suitable
> in some circumstances.
>
> To minimise the number of drivers required you should reorganise
> your matrix into as close to a square as possible electrically.
>
> For 8 x 96 you have 768 LEDs (sqrt = 27.7...) 'nice' numbers
> are 24 x 32 which would give you a 1:24 multiplex with 32
> collumns.  This will be a total of 56 drivers as opposed
> to the 104 with the skinny display layout.  About half the number.

True it's 32 cathode drivers. Each now has to sink 32*20ma = 640ma. That's
more than 1/2 AMP. Packaging comes into play then. Of course it's easy
to find power MOSFETs that can sink that kind of current, but then you
have to wire each one individually. Plus you still need a controller to
select which one(s) are on...

>
> The multiplex time and max current are altered by about 3 (better
> or worse depending on which way you were planning to drive the
> skinny arrangement)
>
> Now the problems are:
>
> No longer quite as logical display arrangement

Not a big deal.

> Possibly more high current drivers.

This is the killer in my estimation.

> Slightly more code.

Just a bit...

BAJ

1996\11\13@093609 by Ray Gardiner

flavicon
face
Brilliant flash!(pun)...this is easy, all you need to do is use
the new 8 pin pics use one for every column of leds if need be and then
simply drive each one from a clocked serial bus. let's say each
column is 8 leds, and then any width, The central controller
simple clocks the bit patterns to each 12Cxx, this way you can have
100% duty cycle and you are distributing data (low power) rather than
switching all those FETS uselessly. What's more the system could be
extended by adding rows without affecting display brightness. As mux
methods do.
                                       ray gardiner

{Quote hidden}

Ray Gardiner, Shepparton, Victoria 3630,  Australia,   EraseMErayspamspamspamBeGonenetspace.net.au

1996\11\13@103432 by Byron A Jeff

face picon face
>
> Brilliant flash!(pun)...this is easy, all you need to do is use
> the new 8 pin pics use one for every column of leds if need be and then
> simply drive each one from a clocked serial bus. let's say each
> column is 8 leds, and then any width, The central controller
> simple clocks the bit patterns to each 12Cxx, this way you can have
> 100% duty cycle and you are distributing data (low power) rather than
> switching all those FETS uselessly. What's more the system could be
> extended by adding rows without affecting display brightness. As mux
> methods do.

A cool idea to say the least. A 12CXX and 3 TPIC6B595's could drive two
panels (8x16) and still have a pin left over for getting data. The TPIC6B595's
are 86 cents in 25-100 quantity, so the cost wouldn't bee too bad...

BAJ

1996\11\14@040921 by Shel Michaels

picon face
In a message dated 96-11-13 11:06:17 EST, BAJ writes:

<< TPIC6B595's are 86 cents in 25-100 quantity, so the cost wouldn't bee too
bad...
>>

Tell me, where do you folks buy PICs that Digikey doesn't carry - do the
local reps carry them?  Are they at good prices?

TIA,
Shel Michaels

More... (looser matching)
- Last day of these posts
- In 1996 , 1997 only
- Today
- New search...