• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

MAX7219s in Parallel?

Status
Not open for further replies.

JonSea

Well-Known Member
Most Helpful Member
I have a product where I have two three-digit 7-segment displays driven by a MAX7219. Works great but I'm always on the lookout for improvements.

One of those improvements is using the bezels from Chinese voltmeters you can get on ebay for less than a couple bucks. The link describes my idea in detail, but basically, I want to remove the voltmeter electronics and display and replace it with 3 digits and a MAX7219 driver. That seems like a handy thing in general and maybe a nice way of having the two readouts I have now.

In the current scheme, digits 0-2 are one display, and 3-5 are the other display. The MAX chip uses a shift register type interface with addressable registers for each each digit.

Thereason are two usual ways of cascading MAX7219s. The chips can be connected in series, with the Dout pin of the first feeding the Din pin of the second, and extra bytes are inserted to shift the data to the right chip. Alternately, the data lines (data, clock and latch) may be connected in parallel, and which chip receives the message is controlled by the enable lines.

In my drug-adled state (2 weeks post knee replacement surgery), I think I have a better way of handling this, which requires no changes in firmware. If I connect the digits in display 1 to the MAX D0-D2 lines, and the digits in display 2 to the MAX D3 -D5 lines and I connect the data lines in parallel, both displays get all of the messages but each MAX only displays what it should...well, each is trying to display all 6 digits, but only 3 have LEDs connected and matter.

Am I missing anything here?
 

granddad

Well-Known Member
The selective digit solution looks reasonable. both chips showing only the intended digits.. With this MAX chip ( * 3) with no SS decode I send all the data, 24 words, to the daisy chain >Din >Dout >Din with common clock and enable . Guess there was a reason for not using the 6 digits out of the 8 on one chip .
 

JonSea

Well-Known Member
Most Helpful Member
...Guess there was a reason for not using the 6 digits out of the 8 on one chip..... .
Yeah, the reason is I only need 3 digit displays, in the form M:SS The 2nd digit is rotated so its decimal point form a colon.
 

Mike - K8LH

Well-Known Member
You shouldn't have any problems implementing that method, Jon. The concept is not unlike my smart LED displays which share a common serial bus and implement an HD44780 command set (using unused DDRAM addresses so that they can co-exist on the same bus with an LCD display).

Have fun... Hope you're feelin' better soon...
 
Last edited:

JonSea

Well-Known Member
Most Helpful Member
Thanks Mike,

It will be a couple months before my knee just works and I'm not thinking about it I'm told.

I did manage to squeeze everything into the tight space. I have a little cleanup yet, but everything is on the board and routed.
 

hyedenny

Active Member
Maybe I'm not understanding your post, but I can't imagine a reason you would want to do it that way -- especially if you already have it functioning as per the datasheet! Besides, the 7219 must know how many digits it is powering (through the scan-limit control register), and the outputs must be addressed sequentially. It the number of digits is not set correctly, the brightness of the different digits won't be uniform.
 

JonSea

Well-Known Member
Most Helpful Member
I thought my reasons were pretty clear. At this point, the system is in 2 sections. The control board has the micro and board-mounted sockets for the switches. The display board has two 3 digit readouts controlled by a single MAX7219. This works exceedingly well, but the bezels for the displays require a lot of labor to do right.

The Chinese bezels offer an easier solution. I trade one large circuit board (about 160mm x 100mm) for two small circuit boards (50mm x 25mm) and add a second MAX chip and save a tremendous amount of hand assembly in the process.

As you said, a key feature of these MAX chips is the each digit is addressed individually. Unlike a typical shift register, where data for every digit must be sent every time.

I don't think that having the scan register set for 6 digits with only 3 attached will be a problem. Yes, the display would be brighter with only 3 digits and a scan limit of 3, but intensity is not an issue with the digits I have. And since each chip in this arrangement has the same number of digits, I don't think that's going to be an issue. In fact, using 2 chips allows me to set different currents for each display if necessary - one is red, the other amber.

You have managed to hit a key issue...does having the scan register set to more digits than are connected cause the chip any harm? I'll take a look at the data sheet to answer that question.
 

JonSea

Well-Known Member
Most Helpful Member
Yeah, space is really tight for 0.56" digits! I did lay out boards for 3 individual digits and they work great, except for a minor problem.

I shifted the digits over 1mm from center to give myself more room for the 6 pin header. That shift means a small part of a segment on one side is covered by the bezel. The digits must be centered on the board for this to work. I did use a 2mm header rather than a 0.1" header to save a little room.

There is an article at Digital-DIY describing this project. Pictures of the finished display are shown in the comments.
 
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top