Author Topic: Multiplexing high-current, high-voltage 7-segment  (Read 492 times)

0 Members and 1 Guest are viewing this topic.

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Multiplexing high-current, high-voltage 7-segment
« on: Yesterday at 04:25:26 pm »
I'm participating in a thread over on the Arduino forum, but I'm just a hobbyist, and need some expert advice from the EEs here.  The OP wants to build a display of up to 11 digits of what I assume are large 7-segments.  I don't have a link, but he describes them as CC having Vf = 7.8V, Imax = 60mA.  The special requirement is that the display has to show up properly on video as well as in still pictures.  Ouch.

Originally he planned to have continuous drive, with one high-current, high-voltage 595 equivalent on each digit.  But those steroidal 595s are expensive, and I wondered if it would be possible to multiplex the display using one such suped-up 595 driving all the digits in common, and two similar chips sinking the 11 common cathodes one at a time.

I've worked out software that runs a timer interrupt at 100us, and for a Nano or Uno at 16MHz it takes up about 1/3 of the time in servicing the interrupts.  I've tried it with a normal digit, and pictures taken at 1/1000 sec look pretty good.  But what concerns me is whether it's reasonable to be switching maybe 50mA at 10V or so at a speed of 10KHz over a distance of something in excess of one foot.  Actually, it's a bit worse than that because during the ISR, current is shut down while the changes are taking place so as to prevent ghosting.  So in the case of two adjacent digits both having the same segment turned on, current would be switched off, then back on, over just a few microseconds.

I've never done anything like this,  and just don't have a feel for whether it is at all reasonable.  It may be that 11 digits with this much current and voltage, at this distance, is just a bridge too far for multiplex. Any opinions would be appreciated.  Is it "no problem", or "no chance"?
 

Online Andy Chee

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: au
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #1 on: Yesterday at 04:34:18 pm »
As long as the average current remains within spec, LEDs can generally take a fair amount of punishment when being pulsed with high currents.

As for the 595 driver, you will have to buffer it with something like the ULN2003.
 

Offline MathWizard

  • Super Contributor
  • ***
  • Posts: 1605
  • Country: ca
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #2 on: Yesterday at 05:21:48 pm »
What about just making some higher voltage BJT drivers for the LED's ? Just some 2N2222/2N3904/BC547, anything like those would be plenty fast for switching LED's up to the kiloHertz or whatever you would need to be picked up by a camera.
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 901
  • Country: ca
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #3 on: Yesterday at 08:19:42 pm »
10KHz?

You only need 60Hz per digit, so an 11 digit multiplex is 660Hz, or an interrupt every 1.5ms.
However, you should probably make it an odd rate like, say, 83Hz per digit or 913Hz total, or an interrupt every 1.1ms.
That way it won't coincide with any standard shutter rate.
ISR-time should be minimized; just be sending out the display buffer and not execute complex calculations.

I've successfully multiplexed 16 digits; sending out one byte via SPI every ISR call (1600Hz, or every 625us).
The common cathodes were driven from two ULN2803s via two cascaded CD4017 counters.
The cascade arrangement was such the Q1..Q8 of each counter enabled a single cathode in sequence.
The first counter would stop at Q9. The second counter would count only after the first was stopped then reset both at its Q9.
Q0 of the first counter would signal the MCU via MISO when the count was just before the first digit (to re-synchronize if necessary).
The counter clocks were driven from the MCU device select/reg. load pin for the '595 (low-high-low on RCLK).
« Last Edit: Yesterday at 08:34:20 pm by pqass »
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #4 on: Yesterday at 09:43:15 pm »
Thanks very much for all the comments.

We're looking at the MIC5891 for the anodes.  That's a 595-type shift register, which handles much higher voltage and current.  Its outputs are open emitter darlingtons, so I was hoping there would be no need for a ULN2003.  And besides, I thought the ULN2003 could only sink - it has a common emitter and open collectors.  His displays are common cathode, so we need to source high current into the individual segments.  I don't know of a cheap 7-gate darlington array with open emitters.

Then he already has the TPIC6C595 on hand, which would be on the low side, with one input connected to the CC output of each digit.  He would need two of them to handle 11 digits.

Quote
Is this for a scoreboard or something like that?  I really wonder if 60mA/11 digits = 5mA average would be bright enough.

I don't know what it's for, but I have the same question about brightness.  But these days LEDs are so efficient that it might work.  However, it might be possible to split up the digits into 6 and 5, and drive each half with its own MIC5891.  The two TPIC6C595's would still be enough since there are still only 11 digits.  That would effectively double the brightness on the same current since each segment would be lit for twice as long.  So it would be 60/6 = 10mA average current.  But that's still better than 11 MIC5891's at $3 a piece.

Quote
What about just making some higher voltage BJT drivers for the LED's ? Just some 2N2222/2N3904/BC547, anything like those would be plenty fast for switching LED's up to the kiloHertz or whatever you would need to be picked up by a camera.

I don't think there is a problem generating the current.  The MIC5891 has darlington outputs, which should be good enough.  What I was concerned about was switching the current at 10KHz - I don't know what could go wrong doing that - reflections, or spikes, or whatever things professionals know to watch out for, but hobbyists like me don't.

Quote
You only need 60Hz per digit, so an 11 digit multiplex is 660Hz, or an interrupt every 1.5ms.

For video, perhaps, but still pictures are the complication.  What if the shutter speed is 1/1000 sec?  This requirement is the biggest obstacle to this working easily, but he was pretty clear about needing it, and it's why he was planning to make it continuous.  I was just hoping there was a better way using multiplexing.

Well, I'm still not clear about whether switching the currents will cause problems. I know that as lines get longer the frequency that can be supported reduces.  And presumably the same as currents get bigger.  I just don't know at what point that starts to be a practical problem.  I mean, 10KHz is not exactly RF.
 

Offline amyk

  • Super Contributor
  • ***
  • Posts: 8390
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #5 on: Yesterday at 10:15:36 pm »
Actually, it's a bit worse than that because during the ISR, current is shut down while the changes are taking place so as to prevent ghosting.
Are these LEDs or incandescent bulbs? LEDs react near instantaneously to current.
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #6 on: Yesterday at 10:17:15 pm »
Actually, it's a bit worse than that because during the ISR, current is shut down while the changes are taking place so as to prevent ghosting.
Are these LEDs or incandescent bulbs? LEDs react near instantaneously to current.

They are 7-segment LED displays.  Just bigger than normal.
 

Offline Benta

  • Super Contributor
  • ***
  • Posts: 6208
  • Country: de
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #7 on: Yesterday at 10:19:18 pm »
What is the supply voltage? And is it stable and fixed/defined?
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #8 on: Yesterday at 10:47:41 pm »
What is the supply voltage? And is it stable and fixed/defined?

I don't know.  Of course something greater than 7.8V, but I don't know what he will be using.
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 901
  • Country: ca
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #9 on: Yesterday at 10:51:42 pm »
If you're multiplexing then you would only need one MIC5891 (like anodes across all 7-seg displays; all a-segs connected, all b-segs, ... g-segs, dp-segs) and two ULN2003+74xx595 or two TPIC6C595 where each output drives one display's common cathode.  And every ISR call, you'd be sending 3 bytes.  However, the TPIC6C595 has a max of 100mA per output yet each display segment can be 60mA? The ULN2003 can support up to 500mA per output (which is >8segs*60mA/seg).

For 1/1000s stills you'd have to drive all segments full-time.  This can be possible, cheaply, if you employ a common VFD display circuit design; discrete PNP or PFET per segment driven by a '595 output (times 11 displays) but with a negative common cathode.  See attached (simulation here).
« Last Edit: Today at 01:41:08 am by pqass »
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #10 on: Today at 04:55:45 am »
If you're multiplexing then you would only need one MIC5891 (like anodes across all 7-seg displays; all a-segs connected, all b-segs, ... g-segs, dp-segs) and two ULN2003+74xx595 or two TPIC6C595 where each output drives one display's common cathode.

Exactly.

Quote
And every ISR call, you'd be sending 3 bytes.

Well, he would be sending one full byte to the MIC5891, but on the cathode side he only has to shift one bit on each interrupt.  So the On bit would move across the register, activating one display at a time.  The latch would be permanently On.  So he would just toggle the serial clock pin, and serial data would always be low except when it rolls around to the first digit.

Quote
However, the TPIC6C595 has a max of 100mA per output yet each display segment can be 60mA? The ULN2003 can support up to 500mA per output (which is >8segs*60mA/seg).

I don't read the datsheet that way.  100mA is the continuous current limit per output.  I think the 250mA is a pulse current limit per output.  Now of course 250mA isn't 420mA, so the TPIC6B595 would be a better choice.  But he already has the 6C, and  they might work ok if there aren't too many "8" and "0" values.  But in the worst case, I think he could double up the 6Cs, even soldering two of them together piggyback.

Quote
For 1/1000s stills you'd have to drive all segments full-time.  This can be possible, cheaply, if you employ a common VFD display circuit design; discrete PNP or PFET per segment driven by a '595 output (times 11 displays) but with a negative common cathode.  See attached (simulation here).

I think you're probably right about the 1/1000s stills, but it might be worth just trying it out on one digit that's turned on 1/11th of the time.  It probably won't be bright enough, but I think it's worth a try.  Attached is such a 1/1000s picture that looks ok, but that's using my super-efficient red display, not whatever he's using.  But it also used 220R resistors, so it could have been brighter.
 

Offline BennoG

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #11 on: Today at 05:18:53 am »
I would skip multiplexing.
Modern film/photo camera have shutter times in the 1/10000 s (on a sunny day), so if you want do do multiplexing and don't see it on the camera you need to multiplex (every segment at least 1 time on) at least 50kHz.

Benno
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 901
  • Country: ca
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #12 on: Today at 05:29:46 am »
Quote
The latch would be permanently On.

It doesn't work that way.  RCK only works on the rising edge (see description 8.3.1 on page 12). 
It's not a transparent latch like C on the '373.
« Last Edit: Today at 05:35:36 am by pqass »
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #13 on: Today at 01:43:09 pm »
Quote
The latch would be permanently On.

It doesn't work that way.  RCK only works on the rising edge (see description 8.3.1 on page 12). 
It's not a transparent latch like C on the '373.

You're right.  I was looking at the MIC5891, which is level triggered, and just assumed it was the same.  So I would toggle the serial clock once, then toggle the latch clock.
 

Online mikerj

  • Super Contributor
  • ***
  • Posts: 3317
  • Country: gb
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #14 on: Today at 02:06:14 pm »
A boat load of shift registers and transistors seems like the lowest cost solution without resorting to very high speed multiplexing.  This will also take negligible CPU time, just load a buffer up with the next display data and let the SPI peripheral squirt it out, just once very fast interrupt per byte.

The TLC6C598 will directly drive LEDs up to 50mA and even in 10s quantity is quite reasonably priced ~$0.60
 

Offline PeabodyTopic starter

  • Super Contributor
  • ***
  • Posts: 2130
  • Country: us
Re: Multiplexing high-current, high-voltage 7-segment
« Reply #15 on: Today at 04:46:00 pm »
The TLC6C598 will directly drive LEDs up to 50mA and even in 10s quantity is quite reasonably priced ~$0.60

Well, again, the TLC6C598 is open drain.  It won't work with his common cathode display.  He would need something similar, but which can source current into the segment anodes.  The MIC5891 was all I could find that does that at 9V, but it's not cheap.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf