Suggestion Part alternatives for the MAX7219/MAX6954 7-Segment LED Driver - Page 1
Forum section: electronics / projects

author: optoisolated
author_rank: Unknown
timestamp: October 01, 2018, 12:16:19 pm
content: I'm working on a project which has 16 7-Segment LED modules (maybe more) and am looking for a suitable driver for it. Usually I'd go for the 7219, but i'd need a fair few of them and they are getting rather pricey.. The 6954 is slightly cheaper but still >25 bucks a piece. I'm wondering if anyone has seen any alternatives for 7-Segment LED drivers which would help me get my BOM cost down? Appreciate any advice or tips anyone has.

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 01, 2018, 12:21:57 pm
content: I don't really understand why those parts are so expensive, to be honest.

author: optoisolated
author_rank: Unknown
timestamp: October 01, 2018, 12:22:49 pm
content: Me either.. Maxim Tax?

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 01, 2018, 12:24:30 pm
content: Quote from: optoisolated on October 01, 2018, 12:22:49 pmStill, there should be a more sensible party producing something similar. It seems the volume should be there.

author: optoisolated
author_rank: Unknown
timestamp: October 01, 2018, 12:40:51 pm
content: Parametric search on Digikey isn't proving particularly fruitful either. I mean, I could do it with some I/O Expanders, and some transistors, but seems like a lot of mess for something which should be very common, like you say. Plus I really like the idea of a solution that allows me to offload some work from the microcontroller, and has built in latching and brightness control.

author: mariush
author_rank: Super Contributor
timestamp: October 01, 2018, 12:44:02 pm
content: You could just get a regular led driver IC with 16 / 24 / 28 / 32 / 36 / more separate channels and use a tiny micro (8-10 pin pic that's less than 0.5$) to act as an in-between converting your 16 bytes (or however you want to send the data about segments) into the segments which have to be turned on or not... besides this you'd only need a bunch of cheap mosfets or transistors to enable power to groups of leds at a time (because you'll only have a few digits turned on at any point)or could just have 3-4 led drivers on the same i2c bus, each with its own address, and have a small micro to send segment data to each, but this way you're getting to around 6$ in driver chips so it's not much saving.for exampleIS31FL3235Ahas 28 channels and it's <2$ in quantity (1.5$ if you get 100) ... that's enough for 4 digits of 7 segments , so you could use either 4 of these each with it's own i2c address, or just multiplex digits, as you have 4 groups of 4 digits.Would work great if you have ready made 4 digit 7 segment common anode displays.

author: optoisolated
author_rank: Unknown
timestamp: October 01, 2018, 12:52:07 pm
content: That's not a bad idea.. I will look into those and see if they will do what I need but cursory glance suggests it should do the job. Cheers

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 01, 2018, 01:07:41 pm
content: Quote from: mariush on October 01, 2018, 12:44:02 pmCheap and small microcontrollers seem available starting at less than $0.30 for ATtinys, but I don't think those have I2C. Controllers with I2C seem to be a lot more expensive, though I have to say that I just did a quick parametric search. I don't think you want to go down the path of bitbanging for something like this.

author: austfox
author_rank: Regular Contributor
timestamp: October 01, 2018, 01:16:32 pm
content: What about AS1107. They seem to be around the $12 mark.

author: chickenHeadKnob
author_rank: Super Contributor
timestamp: October 01, 2018, 01:31:56 pm
content: This is one part where the fake max7219 from ebay make sense. They do work in my experience, though I bought mine years ago and don't know what the quality is like these days. Would not use them in a product for sale, hobby only. You could also use 74xx595 shift regs in daisy chain.

author: maor
author_rank: Contributor
timestamp: October 01, 2018, 01:45:02 pm
content: Hey,How about using a CPLD plus some drivers?a lattice part costs maybe 2$ and with some lightweight drivers and a pcb you could probably do it in like 5$https://www.digikey.com/product-detail/he/lattice-semiconductor-corporation/ICE5LP1K-SG48ITR50/220-2064-1-ND/5358105might give it a shot...

author: mariush
author_rank: Super Contributor
timestamp: October 01, 2018, 02:24:27 pm
content: Depending on the seven segment digits you have (for example if you go with single digit common cathode ones) you could even use a single 1-2$ microcontroller.For example, a 40pin DIPPIC16(L)F18875has i2c orspi and up to 36 i/o pins... send data to it through i2c and let it multiplex the digits ... you could use 28 i/o pins to drive up to 4 digits directly from the micro, and 4 other io pins to connect 4 digits at a time to ground (multiplexing the 16 digits). You can use resistor arrays (one per digit) to limit current to each segment easily... you'll want to do that as the micros have some limitations ... for example, the datasheet of the pic I mention ha something like 50mA per pin max and 350mA in total (provided evenly spread across all pins)... so with 28 outputs, you still have 350/28 = ~12.5 mA ... You should be fine with 10mA per segment, even with 5mA per segment depending on led color you choose.

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 01, 2018, 02:27:19 pm
content: Quote from: maor on October 01, 2018, 01:45:02 pmThey don't tend to be very frugal, so it depends on the application.

author: maor
author_rank: Contributor
timestamp: October 01, 2018, 02:50:20 pm
content: Quote from: Mr. Scram on October 01, 2018, 02:27:19 pmWell if the part he wants costs about 25$, a design with cpld should be about 8$ including a PCB to adapt it to TH, so why not?

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 01, 2018, 03:27:18 pm
content: Quote from: maor on October 01, 2018, 02:50:20 pmThe engineering cost could still make it an expensive part, or the product could have a disappointing battery life because CPLDs aren't frugal. Again, it depends on the application.

author: mino-fm
author_rank: Regular Contributor
timestamp: October 03, 2018, 01:13:19 pm
content: Quote from: chickenHeadKnob on October 01, 2018, 01:31:56 pmOr 40HC94 or 4094 shift registers with (40HC94) or without limiting resistors.https://www.mikrocontroller.net/topic/291503#3103604Static driving will produce no noise and needs no refresh from µC.

author: Old Printer
author_rank: Frequent Contributor
timestamp: October 03, 2018, 04:42:56 pm
content: Im in USA so my sources are probably not $$ smart, but you might be able to find something similar local to you. My local dealer sells these 8x8 LED programmable displays. His regular price is $3.95 but a few times a year he puts them on sale for $2.95. They have a MAX7219 in a DIP socket so it is easy enough to pop them out and use them in another project. That's the only reason I buy them as just the IC can run $7 - $9 alone.http://www.mpja.com/8X8-Red-Programmable-LED-Matrix/productinfo/34563+MP

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 03, 2018, 05:08:09 pm
content: Quote from: Old Printer on October 03, 2018, 04:42:56 pmI can only assume those are fake or reclaimed ICs.

author: Old Printer
author_rank: Frequent Contributor
timestamp: October 03, 2018, 06:54:34 pm
content: Quote from: Mr. Scram on October 03, 2018, 05:08:09 pmI am sure that is possible, but I have yet to have a dud or failure. This is just for personal hobby use so it's not like putting a product in the field and having to service it. YMMV

author: floobydust
author_rank: Super Contributor
timestamp: October 03, 2018, 08:28:05 pm
content: Titan Micro TM1638 10 x 8 seg/digit plus 3x8 keyscan. You can get a board with 8-digit LED displays and pushbuttons for $2.50HoltekHT16K3316 seg x 8 com plus 13x3 keyscan.There is a limit to how many digits you can multiplex with one IC before flicker becomes noticeable to the eye.

author: viperidae
author_rank: Frequent Contributor
timestamp: October 04, 2018, 04:50:55 am
content: $25 for a max7219? It's $16NZD each at element14. $5.62USD at Digi-Key for 1000.$5.68 each at Maxim's website

author: mariush
author_rank: Super Contributor
timestamp: October 04, 2018, 06:12:09 am
content: Still 3-4$ more than it should be. Shouldn't cost more than 2$ in 100+ quantity.

author: David Hess
author_rank: Super Contributor
timestamp: October 05, 2018, 02:51:29 am
content: I looked into this problem a couple years ago when I noticed the high and increasing price of Maxim's LED display drivers.I suggest using cheap microcontrollers as display drivers. Multiplexing can be used to reduce the number of external drive transistors and this should allow a single chip with 12 outputs to drive four 7-segment displays. For reliability reasons, I do not suggest driving LEDs directly with the microcontroller outputs unless current is under 4 milliamps and the lower the better.

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 05, 2018, 03:11:26 am
content: Quote from: David Hess on October 05, 2018, 02:51:29 amWith what kind of specific part would you drive them indirectly?

author: David Hess
author_rank: Super Contributor
timestamp: October 05, 2018, 04:46:43 am
content: Quote from: Mr. Scram on October 05, 2018, 03:11:26 amThe microcontroller obviously needs enough output pins but I would also look for a part with a UART, USART, SPI, or whatever for serial communications rather than trying to bit-bang a receiver. Using a UART for the serial link may be advantageous because no clock or chip select is required.I considered PICs first because I am familiar with them and they are available in easy to prototype 300mil DIP packages up to 28 pins providing plenty of I/Os but AVR could work also. The price would be competitive with a 74HC595 solution and better if multiplexing is used.

author: mino-fm
author_rank: Regular Contributor
timestamp: October 05, 2018, 09:02:23 am
content: Quote from: David Hess on October 05, 2018, 02:51:29 amReliability is no problem using 4094. The current limiting resistors are inside these chips. Older CMOS devices have weak outputs.Over thirty years I assembled serveral thousands of digits. Avarage current is about 5 mA/segment. Nor any digit neither any segment failed. Using newer high efficiency LEDs the digits are bright enough for daylight applications (transparent colored filter is needed).

author: David Hess
author_rank: Super Contributor
timestamp: October 07, 2018, 12:56:39 pm
content: There are two reasons for my warning; one of which still applies to the high voltage CMOS 4094.1. The output current warning applies to non-driver outputs. Part of this is the limitation on the power pins; eight 25 milliamp outputs yields 200 millamps through a ground or power pin which is a typical absolute maximum rating and not always specified. 25 milliamps might seem excessive but if the display is multiplexed, it represents a much lower average current through the LEDs but not the driver. High voltage CMOS is so weak though especially at low voltages that it can be excluded.2. ESD through the exposed LEDs can go directly into the ICs and insulating shielding, like the plastic housing of an LED or LED display, can make this worse by increasing the breakdown voltage. Specially driver ICs may be designed to handle this but not general purpose logic. Some inexpensive large junction transistors used as drivers help a lot with this unless ESD protection diodes are used. Where this really matters, a conductive screen should be used across the display.Update:3. Using external driving transistors allows routing the relatively high currents away from the signal common.

author: Mr. Scram
author_rank: Super Contributor
timestamp: October 07, 2018, 08:50:34 pm
content: Quote from: David Hess on October 05, 2018, 04:46:43 amThanks for your input, but I was mainly wondering about limitations in regards to current. Would you use individual transistors?

author: mino-fm
author_rank: Regular Contributor
timestamp: October 08, 2018, 10:11:02 am
content: Quote from: David Hess on October 07, 2018, 12:56:39 pmConcerning 4094: You are thinking about problems that do not exist. Reading out a display is done by eyes and not by ESD-fingers ;-)Quote from: Mr. Scram on October 07, 2018, 08:50:34 pmFor multiplexing you always need transitors for driving common anode or cathode pins.Looking at ATmega48 the total current of VCC or GND is 200 mA. Divided by 8 segments (incl. D.P.) each segment can get about 25 mA which is delivered by a single output pin (max. 40 mA). But the common pins has to be able delivering 200 mA. These currents need a transistor anyway.Multiplexing of 8 digits will reduce the eff. segment current to 25/8 = 3.1 mA done by current limiting resistors. That is enough for high efficiency LEDs.Whether you like multiplexing or not depends (for me) of the hight of the digits. Displays <= 10 mm (0.4") are simple to root so multiplexing should be preferred. Displays >= 12.7 mm (0.5") offer a lot of space below them or on the other side of PCB. So it is very easy to use parallel driving (SMD 4094) and cascading many more digits as by multiplexing.If you use larger digits >= 50 mm (2") where each segment consists of two or more LEDs you need transitors too. Here again parallel driving is the best way. Multiplexing would cause high peek currents and a lot of noise. ULN2803 is a compact form of segment drivers up to 24 VDC.

author: David Hess
author_rank: Super Contributor
timestamp: October 08, 2018, 10:47:46 am
content: Quote from: Mr. Scram on October 07, 2018, 08:50:34 pmI would absolutely use external transistors or drivers if the display is multiplexed. If not, I might still do it unless the currents are low or for higher reliability.

author: optoisolated
author_rank: Unknown
timestamp: October 10, 2018, 09:28:58 am
content: I really like the idea of using MCUs as an LED Driver.. MCUs with crap loads of DACs are cheap as chips.. Definitely gonna give that a go I think. Gives me a lot of flexibility with IO expansion if I need it as well.

author: floobydust
author_rank: Super Contributor
timestamp: October 10, 2018, 10:42:56 pm
content: Are you wanting bright displays? With 7 segments+DP, 20mA each = 160mA max. per digit.You're going to need something to buffer digit-driver current you can pull from an MCU I/O pin, and see if the MCU can handle outputting 160mA total from the IC package for the segments. Example ATmega328/P rated sum for all I/O 100mA. If you are thinking about direct-drive. High voltage LED's like blue/white/green AlInGaP with Vf ~3.2V would need a 5V MCU.Adafruituses 'HC595 and TPIC6B595 instead of MAX7219, orHT16K33 LED driverrated 200mA/digit and 20-50mA/segment, under $1.50 on eBay.

author: optoisolated
author_rank: Unknown
timestamp: October 11, 2018, 04:10:21 am
content: That TPIC6B595 looks like it will do the business.. Might order some in and mess around with them and see if they will work. Its a bit pricey but there's already libraries available for it which will reduce my dev time a lot. Cheers!

author: Giuss
author_rank: Contributor
timestamp: October 12, 2018, 08:47:28 am
content: TM1637 can be another option

author: MudAndSnow
author_rank: Contributor
timestamp: October 15, 2018, 07:21:08 am
content: I recommend considering an MCU. I looked around at various options for 7 seg drivers and ended up going with ATMega328.It is common, cheap, easy and versitile. I used that one MCU for everything in that project: 4 digit 7seg, 4x4 keypad, etc. You'll probably want one with more outputs but it seemed like a no brainer to me once I picked a common MCU after spending way too much time digging thru the plethora of display drivers to find the right match.Sparkfun has an example of ATMega328 as 4 digit 7 seg driver here:https://www.sparkfun.com/products/11441