2.3" 16 segment common anode LEDs, HT16K33 and ULN2803 (now common cathode)

I'm about to breadboard a circuit to drive six displays using these components. Cathodes will be connected to the ULN2803 and it will be driven by the HT16K33 in a 16x6 multiplex configuration.

I was researching the way to calculate the series resistor value for each multiplexed row segment when I realized that anywhere from 0-6 segments in each row will be on at the same time, so I'm stuck. Can you suggest a better way to do this? I want to stay with the HT16K33.

Thanks in advance.

I'll add that these displays use four LEDs for ten segments, each with two series LEDs in parallel, and five shorter segments use two LEDs in series.

I guess I could use 16 individual resistors on each of the displays segments for a total of 96 resistors, but I'm not sure how that would work with multiplexing and there must be a simpler way.

Post a clickable link to the data sheet or whatever technical detail you have on the displays please.

Why do you want to use uln2803?

Displays are common anode and I have some around, but if there is a better solution please let me know. I do want to stay with the HT16K33 because the software is working well.

I was researching the way to calculate the series resistor value for each multiplexed row segment when I realized that anywhere from 0-6 segments in each row will be on at the same time, so I'm stuck.

Do don't multiplex it like that. Although how you plan to multiplex it is a bit of a mystery at the moment.

The resistors go in each cathode not in the anode.

Sorry, I see that I was not clear in my description.

The HT16K33 can't drive the big LED displays because they draw too much current. It handles the multiplexing and I have it working perfectly with smaller, .8" displays driving them directly.

I thought that using two, ULN2803s between the six, 16 segment displays and the HT16K33, would work. For that I'll need 96 (16 x 6 segments) resistors, one on each cathode. The other side of the resistors will be connected together for each segment to make the rows.

Will that work given that the displays are multiplexed? Is there a better way?

Thanks in advance for the help.

Grumpy_Mike:
Do don't...

Did any of the bottles make it back from the supermarket unopened, Mike?

For that I'll need 96 (16 x 6 segments) resistors, one on each cathode.

No, just 16, I suspect.

Need to see your proposed schematic. And that link.

Thanks. I’ll draw a schematic tomorrow.

Is this similar? The below is common cathode, but your displays are common anode?

I have it working perfectly with smaller, .8" displays driving them directly.

Are those also common anode? I would have expected common cathode to be used with ht16k33.

The .8" displays I'm using are common cathode. They are connected directly to the HK16K33, and working perfectly.

Paul, the 2.3" displays are exactly as in the drawing you posted, but they are common anode. I'm working on a partial schematic now. I'll post it shortly. Thanks for the help.

I think you will need high-side drivers as well as the uln chips as the low-side drivers. Perhaps p-channel MOSFETS.

I am also concerned that the uln chip will drop too much voltage. If your supply is 5V (and maximum is 5.5V for the HT chip, so you can't go much higher anyway), the forward voltage of the segments will be at least 3.6V. The ULN chip could drop as much as 1.5V, leaving only 0.1V drop for your series resistors, which won't be enough, you need at least a volt.

Or...

Perhaps you could use a 6V supply for the displays, but still run the HT chip at 5V. Then you would have 1.1V to drop across the series resistors. But driving the p-channel MOSFETs would be tricky, you can't expose the COMM pins of the HT chip to >5V. But if you put another driver transistor in there, it would invert the signal...

I added a P-Channel MOSFET, but the connections are probably not correct. 12v is available and preferred because the blue displays require 6v. Please let me know if this is close to a working solution. Thanks.

The MOSFET seems to be connecting the display anode to ground, should it not be 12V?

R2 should be removed.
R3 value is not critical, maybe 220R, just to limit current sunk by COM pin of the HT chip.
R1 will need to be different value for the segments with 1, 2 or 4 leds.

Pin 10 of the ULN chips does not need to be connected to 12V. I don't think it would do any harm, but is only needed for inductive loads, not for leds.

There is nothing to switch off the MOSFET. It needs its gate to be pulled up to 12V to switch off. But this can't be done with a simple resistor, I think, because that would expose the COM pin of the HT chip to 12V, way above its Vcc, which could damage it.

But I'm no expert on P-channel MOSFETs. Maybe Mike can advise (if he is no longer hung over).

To calculate R1:

Supply is 12V. ULN chip will probably drop around 1.5V. Segments with 2 or 4 leds will drop 6V. Decimal points only have one led so will only drop 3V. So R1 will need to drop (12-1.5-6) or (12-1.5-3).

Current for segments with 1 or 2 leds will be, lets say, 20mA. Segments with 4 leds will need 40mA.

To calculate R1, divide the required voltage drop by the required current.

So for example the segments with 4 leds, R1 = (12-1.5-6)/0.040 = 112 ohms, so maybe 120R.

Thanks again for the help. I’ve made the suggested changes to the drawing.

The display specs list 20mA per LED for blue LEDs and 18ma for red, so I’ll use 19ma for the calculation:

R2 = (12 - 1.5 - 6) / (.019 * 4) = 60R (4 LED segments)

R1 = (12 - 1.5 - 6) / (.019 * 2) = 120R (2 LED segments)

From the HT16K33 datasheet, the refresh rate is 11.4ms or 88Hz. Does that affect the values of the resistors? Should they be lower for multiplexed displays?

Is the NDP-6020P a good choice for the MOSFET?

If this looks correct, once the issue will pulling the gate to 12v is resolved (maybe a transistor?), I’ll breadboard the circuit.

Maybe just a blocking diode in series with the connection from the display driver Cx on the HT16K33, to the resistor, R3, and +12v to the gate of the MOSFET in series with a 10k resistor.

This may be useful.

R2 = (12 - 1.5 - 6) / (.019 * 4) = 60R (4 LED segments)

No, it's a pair of LEDs in series, in parallel with another pair of LEDs in series. LEDs in series have the same current flowing through both of them, so the above should be .019 * 2, not .019 * 4