Go Down

Topic: MAX7219 and higher voltage LED displays - how? (Read 9682 times) previous topic - next topic


Common anode 7-segments displays and a TPIC6B595 (or other member of that family) per digit is cheap and easier.
And not matrixed means full brightness, while it's still possible to PWM/dim them.


Another option for High Side driving of common cathode displays is MIC5891


Available at Digikey.com, good for higher voltage and current for large displays.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


The UDN2981A is obsolete, I tend to avoid buying obsolete parts. However it looks like the UDN2981A is pin for pin compatible with the part I chose, and specs are pretty much the same too. 

I did not realize the MAX7219 could sink so much. I checked the data sheet and you are correct. I was not paying attention to that since I will be operating in the 6mA range on this project.

Thanks Greg


My board came back and I built the project. I am happy to confirm that my schematic (see post 8) does work well. I am using the TBD62783 as the highside driver. Display segment brightness is consistent.



My understanding is that the MAX7219 switches off a digit by pulling the common cathode high. In your case, the MAX7219 would pull it high to 5V but each segments could be pulled high at 12V (to control a different digit). This would mean you have 7V being applied to each segment.

If that isn't enough to light up a segment, then I guess that's okay?


Yon1237, actually the segments barely turn on at 7volts, you really need about 9 volts to get any brightness. The TBD62783 (high side, or source driver) will output nearly 12v. The MAX7219 digit driver (low side, sink) goes to nearly 0v when the digit is selected. This puts 12 volts across the segment, so you have to include a current limiting resistor for each segment line.


Can you post a picture of the completed project?
Is everything on one PCB?



Here is a couple of photos. If you look closely you can see that I have a ghosting problem. The right digit is displaying an 8 with the decimal point turned on. The other decimal points also come on at a much reduced brightness. If I display a some other digit, like "2" it is also ghosted onto the other blank digits.

I'm trying to narrow down the issue. It appears to be a timing issue that is due to the high-side driver. It's output is on a little longer than the input. For some reason the DP has the worst ghosting. It has something to do with the much lower voltage drop of one led vs the three that the segments have.

I can live with the ghosting of the digits, that is fairly faint. I need to find a way to solve the DP issue though, it really looks bad.

I was thinking that the propagation delay added by the high-side driver might be the problem, and I'm considering adding a low side driver to make the timing the same. But if the outputs are slow about changing state it would make the problem worse. I'll try to post some scope captures later. I am limited to one post for every five minutes, I think. I may start a new thread at that point.


Note that I turned the third digit upside down to use the DP leds for the colon (it's a clock). There also are some wires attached for scope attachments, those are only for debuging.


I have found that the output of the highside driver is 2uS longer than the output of the Max source lines. I don't think that is an issue. The propagation delay seems to be insignificant. What I seem to be seeing is that the Source and the Sink lines are never conducting at the same time. It appears that the capacitance of the displays provides the power when the sink line goes low.

I think I am going to try making a simple driver for just the DP and see what happens. Just two MOFETS and a resistor or two. Not using the high-side driver, for just the DP.


I got the decimal point issue resolved. See the new schematic. I took the high-side driver out of the circuit for the decimal point line. I added a pair of MOSFETs to directly drive the DP. I could have tried driving directly from the MAX7219, but was afraid of having trouble matching brightness levels. I had to use two to make the signal non-inverted. Driving the DP with five volts is probably helping.

I do have a very faint ghosting on the left digit when it is blank, but the DP is good and dark. I can live with it like this. I still want to understand why the highside driver is causing ghosting, but enough for now.


I still want to understand why the highside driver is causing ghosting, but enough for now.
Simple.  Look at the turn-off delay figure in the datasheet!


Dec 29, 2018, 12:57 am Last Edit: Dec 29, 2018, 01:02 am by amdkt7
Paul, do you think that 2uS (which is about what I measured) is enough to cause ghosting? It seems like a very small amount of time compared to the rest of the cycle. I guess I need to measure the delay that my pair of MOSFETS have.


Well, 2 ┬Ás (I doubt you actually measured its conductance) is about one thousandth of the strobe time for the MAX7219, but modern LEDs are very responsive and that may well be visible.


amdkt7, thanks for the updates! It seems like your issue with DP could have been due to the issue I highlighted above. With the 7Segs I've worked with DP required half the voltage compared to the rest of the Segs. So that would be more than enough to activate DP.

Do you think you could drive DP directly from the MAX chip?

Go Up