Maker Pro
Maker Pro

driving large 7-segment displays from a 3.3v microcontroller

S

Scott

Finding the 0.39" 7-seg displays that I had on hand a little small, I
may have gone a bit overboard and picked up these huge 2.25" (it
really didn't sound that big when I ordered them!) displays: p/n
LSD23255-10, datasheet at http://www.jameco.com/Jameco/Products/ProdDS/97201.PDF
.... Now I have to figure out how to make use of them.

First of all, I don't fully understand the datasheet. The numbers
specified are 1.7 forward voltage and 12-20 ma current. It wasn't
clear to me whether they meant per display, per segment, or per led
(each segment is comprised of 4 leds in series). Getting out the
trusty bench supply and ammeter, I found that it takes approximately 7
volts to light a segment (1.7 * 4 = 6.8, sounds about right), and
10-20ma depending on how bright I want them. Ok, that makes sense.

Assuming in the worst case that I have to drive 7 segments and a
decimal point, thats 8*20 = 160ma to light a whole display.

In my current project, I've been driving small displays using the
microcontroller to source the voltage to the segments and a 74HCT138
3-8 decoder to sink the common cathodes. The 74HCT138 lists a maximum
sink current per IO pin of 25ma, so that's going to have to be beefed
up, and the microcontroller of course outputs 3.3V, not 7V.

I've worked with ULN2803 darlington arrays for sinking current before,
so I'll probably stick one of those after the 74HCT138 and use it to
sink the cathodes. One problem solved.

However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

Thanks,
Scott
 
M

MooseFET

Finding the 0.39" 7-seg displays that I had on hand a little small, I
may have gone a bit overboard and picked up these huge 2.25" (it
really didn't sound that big when I ordered them!) displays: p/n
LSD23255-10, datasheet athttp://www.jameco.com/Jameco/Products/ProdDS/97201.PDF
... Now I have to figure out how to make use of them.

First of all, I don't fully understand the datasheet. The numbers
specified are 1.7 forward voltage and 12-20 ma current. It wasn't
clear to me whether they meant per display, per segment, or per led
(each segment is comprised of 4 leds in series). Getting out the
trusty bench supply and ammeter, I found that it takes approximately 7
volts to light a segment (1.7 * 4 = 6.8, sounds about right), and
10-20ma depending on how bright I want them. Ok, that makes sense.

Assuming in the worst case that I have to drive 7 segments and a
decimal point, thats 8*20 = 160ma to light a whole display.

In my current project, I've been driving small displays using the
microcontroller to source the voltage to the segments and a 74HCT138
3-8 decoder to sink the common cathodes. The 74HCT138 lists a maximum
sink current per IO pin of 25ma, so that's going to have to be beefed
up, and the microcontroller of course outputs 3.3V, not 7V.

I've worked with ULN2803 darlington arrays for sinking current before,
so I'll probably stick one of those after the 74HCT138 and use it to
sink the cathodes. One problem solved.

However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

You are going to have to level shift one or the other of the signals.
What supplies to you have to run this circuit?

Try the TD62064BP as the driver for the cathodes or use several
2N2222s and resistors.
 
T

TTman

SNIP
">> However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

Thanks,
Scott

ULN2003 old faithful...
 
J

Jon Kirwan

Finding the 0.39" 7-seg displays that I had on hand a little small, I
may have gone a bit overboard and picked up these huge 2.25" (it
really didn't sound that big when I ordered them!) displays: p/n
LSD23255-10, datasheet at http://www.jameco.com/Jameco/Products/ProdDS/97201.PDF
... Now I have to figure out how to make use of them.

First of all, I don't fully understand the datasheet. The numbers
specified are 1.7 forward voltage and 12-20 ma current. It wasn't
clear to me whether they meant per display, per segment, or per led
(each segment is comprised of 4 leds in series). Getting out the
trusty bench supply and ammeter, I found that it takes approximately 7
volts to light a segment (1.7 * 4 = 6.8, sounds about right), and
10-20ma depending on how bright I want them. Ok, that makes sense.

Yes. If you ever wonder, just keep in mind that a red LED (shorter
wavelength LEDs will be still higher) takes at least 1.55V or so to
become visible. If you have four in a series chain, it's not possible
that they are 0.4V LEDs.
Assuming in the worst case that I have to drive 7 segments and a
decimal point, thats 8*20 = 160ma to light a whole display.

Is the decimal point also a four-LED series arrangement?
In my current project, I've been driving small displays using the
microcontroller to source the voltage to the segments and a 74HCT138
3-8 decoder to sink the common cathodes. The 74HCT138 lists a maximum
sink current per IO pin of 25ma, so that's going to have to be beefed
up, and the microcontroller of course outputs 3.3V, not 7V.

I've worked with ULN2803 darlington arrays for sinking current before,
so I'll probably stick one of those after the 74HCT138 and use it to
sink the cathodes. One problem solved.

Yes. And there are a lot of choices for sink arrays. Given that its
a darlington array you are considering, keep in mind that you will
drop a Vbe + Vcesat, instead of Vcesat. This moves upward your
required high side voltage a little and will waste some power in the
array, as well. Not necessarily a big deal. Just a note. Since this
is a common cathode, it's not like you need an array that much (unless
you have lots of digits, I suppose.) So you might consider the idea
of just using discrete 2N3904 or 2N2222 devices (and resistors.) They
can handle the current and (lower) dissipation fine. Just so long as
your microcontroller can handle the base drive (need to check that,
and on this point your darlingtons are no worry.)
However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

Well, it is the anodes that prefer the arrays, because of how many you
have to deal with (8.) You might use two arrays, one an 8-element PNP
and another an 8-element NPN. The PNP array would be common emitter
form and should be findable. For the NPN, I'd prefer driving the base
directly from the output (see Q3 below), so would want emitter
resistors and that would mean access to all three pins separately in
the array and I'm not sure if that is readily available, let alone
cheap or usable as a package. Might have to succumb to common emitter
there and use a base drive resistor. You will need an array of NPN
collector/PNP base pull up resistors with one side in common. But
those are cheap and available.
In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

The problem will be that if you are pulling from 3.3V, you need to
level shift, somehow. There are some CD4000 series packages that
support higher voltage level shifting (search for "dual supply" and
"high voltage" and "level shifter") like the CD40109 or CD4504. I've
not used them and haven't taken the time to consider the details here.
But you might consider them. I don't know of any others that accept
one rail higher than about 5.5V, off hand, though. Perhaps someone
else can help on that point. But you could use their output to drive
each base of a PNP from an array. Again, multiple parts though.

Three examples you might consider (view in fixed-spaced font):
: +HI
: +HI |
: | \
: \ +HI R5 / +HI
: / R2 | \ |
: \ | / |
: / | | |
: | R3 |<e Q2 | |<e Q4
: +--/\/\---| PNP +----| PNP
: | |\c | |\c
: | | | |
: | '---> ANODE | '-----> ANODE
: | 3.3V |/c Q3
: 3.3V R1 |/c Q1 MICRO------| NPN
: MICRO----/\/\-----| NPN |>e
: |>e |
: | \
: | R4 /
: gnd \
: /
: |
: gnd
: +HI
: |
: \ +HI
: / R8 |
: \ |
: / |
: | |<e Q6
: +--------| PNP
: | |\c
: \ |
: R7 / '------> ANODE
: \
: /
: |
: |
: 3.3V R6 |/c Q5
: MICRO----/\/\-----| NPN
: |>e
: |
: |
: gnd

Two of those are compatible with the idea of using common-emitter
arrays of BJTs. (My usual preference isn't.) The resistor values are
easily designed. If you want some help on that, just ask.

Jon
 
Finding the 0.39" 7-seg displays that I had on hand a little small, I
may have gone a bit overboard and picked up these huge 2.25" (it
really didn't sound that big when I ordered them!) displays: p/n
LSD23255-10, datasheet athttp://www.jameco.com/Jameco/Products/ProdDS/97201.PDF
... Now I have to figure out how to make use of them.

First of all, I don't fully understand the datasheet. The numbers
specified are 1.7 forward voltage and 12-20 ma current. It wasn't
clear to me whether they meant per display, per segment, or per led
(each segment is comprised of 4 leds in series). Getting out the
trusty bench supply and ammeter, I found that it takes approximately 7
volts to light a segment (1.7 * 4 = 6.8, sounds about right), and
10-20ma depending on how bright I want them. Ok, that makes sense.

Assuming in the worst case that I have to drive 7 segments and a
decimal point, thats 8*20 = 160ma to light a whole display.

In my current project, I've been driving small displays using the
microcontroller to source the voltage to the segments and a 74HCT138
3-8 decoder to sink the common cathodes. The 74HCT138 lists a maximum
sink current per IO pin of 25ma, so that's going to have to be beefed
up, and the microcontroller of course outputs 3.3V, not 7V.

I've worked with ULN2803 darlington arrays for sinking current before,
so I'll probably stick one of those after the 74HCT138 and use it to
sink the cathodes. One problem solved.

However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

Thanks,
Scott

Easiest is another uln array with a pnp transistor for each anode. PNP
emitter to the high volt supply, collector to the anode, base to the
uln collector via a resistor of 100ohm per volt of the high voltage.
eg. 10volt supply=1k.
 
J

JosephKK

Easiest is another uln array with a pnp transistor for each anode. PNP
emitter to the high volt supply, collector to the anode, base to the
uln collector via a resistor of 100ohm per volt of the high voltage.
eg. 10volt supply=1k.

You could try NTE2322 pnp arrays after another ULN2803. Compact does
the job.
Or perhaps something like a ULN2987. Or maybe a UDN2580.
 
G

Glenn Gundlach

Finding the 0.39" 7-seg displays that I had on hand a little small, I
may have gone a bit overboard and picked up these huge 2.25" (it
really didn't sound that big when I ordered them!) displays: p/n
LSD23255-10, datasheet athttp://www.jameco.com/Jameco/Products/ProdDS/97201.PDF
... Now I have to figure out how to make use of them.

First of all, I don't fully understand the datasheet. The numbers
specified are 1.7 forward voltage and 12-20 ma current. It wasn't
clear to me whether they meant per display, per segment, or per led
(each segment is comprised of 4 leds in series). Getting out the
trusty bench supply and ammeter, I found that it takes approximately 7
volts to light a segment (1.7 * 4 = 6.8, sounds about right), and
10-20ma depending on how bright I want them. Ok, that makes sense.

Assuming in the worst case that I have to drive 7 segments and a
decimal point, thats 8*20 = 160ma to light a whole display.

In my current project, I've been driving small displays using the
microcontroller to source the voltage to the segments and a 74HCT138
3-8 decoder to sink the common cathodes. The 74HCT138 lists a maximum
sink current per IO pin of 25ma, so that's going to have to be beefed
up, and the microcontroller of course outputs 3.3V, not 7V.

I've worked with ULN2803 darlington arrays for sinking current before,
so I'll probably stick one of those after the 74HCT138 and use it to
sink the cathodes. One problem solved.

However, what I haven't done before is to drive the anodes for the
segments with anything other than direct driving them from a
microcontroller. I know that this can be done with transistors, but I
don't know what kind of transistors to order. Can someone point me to
a schematic or some recommendations?

In particular, is there anything in a nice DIP package that might
contain 8 such transistors in a convenient array? Sort of a source-
side counterpart to the ULN2803?

Thanks,
Scott

You bought the less expensive common CATHODE displays which makes life
a little more complicated in that you need to pulll those anodes
posiitve. When I did my clock project several years back (2.25" Jameco
displays), I used the common ANODE parts so I _could_ use the simple
ULN2803 solution. Looking back, I too would use the cheaper display,
run a negative 5 supply for the cathodes and use digital PNP
transistors (built in bias resisotrs) from the +5 bus. Since you're
driving from a micorcontroller (as was I), you can simply invert the 7-
segment Look Up Table.

 
Top