Cloned ICs for a display driver? - Page 1
Forum section: electronics / projects

author: skytoastar
author_rank: Contributor
timestamp: September 23, 2016, 07:29:08 pm
content: I'm looking to make a custom 5x7 LED matrix board to use as a display. Custom because I want a large size (between 10 and 15 cm in height, 7 to 10 cm wide) and am hoping to keep it relatively low cost because I'd like to use as many as fifty 5x7 displays in a project. The MAX7219 is a common LED driver and is one I've considered. But the price discrepancy between good sources, like DigiKey, and less reputable ones is an order of magnitude in difference! (About $5.50 vs. $0.40.) I can only image that these cheaper ones are clones.I'm wary of using a clone chip in something that I'm going to make 50 (or potentially 500) of. But paying $5 each makes the project much harder to justify. I probably wouldn't assemble these myself but pay for PCBA in China. All that considered, would you:A) Suck up the price and pay for the real thing.B) Have my PCBA house source me some clones and factor in a higher failure rate.C) Use an alternate solution (shift registers, charliplexing, something else).Thoughts?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 23, 2016, 07:40:36 pm
content: You'd be nuts to use something that expensive for more than a few displays.Plenty of other much cheaper solutions depending on your drive current requirements.Ideally you'd want to drive them in groups to share drivers.

author: skytoastar
author_rank: Contributor
timestamp: September 23, 2016, 07:42:50 pm
content: Yeah. I really couldn't make the project viable at that price. I'm looking at plain white LEDs (3528 or 5050) with drive currents on the order of 20 to 30ma each.

author: skytoastar
author_rank: Contributor
timestamp: September 23, 2016, 07:46:40 pm
content: Also, it would be nice to drive multiple segments with a single driver, but I don't want to mainly for two reasons. First because if a display fails, it makes repair simpler. Second because the spacing between segments (both vertical and horizontal) will vary enough that I don't want them "tied" to each other (so to speak). They're going to be wired together so I suppose I could just use more wire and have a driver on every second or fourth board or something...

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 23, 2016, 07:52:52 pm
content: Modern white LEDs at that current will be very bright.For indoor use you could probably get away with using 74HC595's with no current-limiting resistors as column drivers, and P-channel MOSFETs to drive the rows.If you need more power, something like NPIC6C595's with resistors, or one of the umpteen 16 channel constant-current drivers like TLC59281If you just need a cheap white matrix display, you can't beat sign modules like these - these typically use a 4:1 mux with HC595 column drivershttps://www.aliexpress.com/item/White-LED-outdoor-Display-Module-Panel-Window-Sign-Shop-Sign-P10-32X16-Matrix-Programmable/32555371234.html?spm=2114.01010208.3.26.HcFbU5&ws_ab_test=searchweb201556_0,searchweb201602_3_10057_10056_10065_10068_10055_10054_10069_301_10059_10058_10032_418_10073_10017_10071_10070_10060_10061_10052_10062_10053_10050_10051,searchweb201603_1&btsid=785b5efe-05a9-4e17-a126-e6725fe99303

author: Fungus
author_rank: Super Contributor
timestamp: September 23, 2016, 08:07:33 pm
content: Quote from: mikeselectricstuff on September 23, 2016, 07:52:52 pmEven with a MAX7219 you need to add some sort of microcontroller to control everything.Something like an ATmega328 easily has enough pins to multiplex a 5x7 array directly and still have a few left over. The pins can sink much more current than a 74HC595 can.All you need is the AVR chip, some cheap BJTs to drive the columns and some current-limiting resistors for the rows.

author: Ian.M
author_rank: Super Contributor
timestamp: September 23, 2016, 08:19:23 pm
content: For 20mA average If and 1:7 duty cycle row multiplexing, each column driver will have to sink 140mA. That's well beyond the limits of a 74HC595 without an external driver so go straight to NPIC6C595 or TPIC6A595 chips. You want it tall so you may want to stack two 5x7 matrices into the same 6C595 for 14 pixel high characters and use 1:14 multiplexing.(at the expense of max brightness).Due to the mismatch between the number of columns in each LED matrix (they are probably 6x7 to allow for 1 pixel between characters) and the 8 6C595 outputs you end up with a minimum of 4 matrices across the width of each board as unused 6C595 outputs are a royal PITA from the software point of view (as they cause a 'dead' gap in your display buffer) and should be avoided. The alternative is to waste 2 or 3 outputs on *EVERY* 6C595 so its one byte per character row with the unused high bits ignored, like HD44780 LCD UDGs but that pushes the hardware cost up and makes your SPI transfers longer and thus slower.Due to the high pulse currents if multiplexing stops, everything that's lit in one row of LEDs will fry! During testing, either drop the LED supply voltage so their continuous If rating is never exceeded, or add a 'display saver' missing pulse detector circuit to the multiplexing logic that pulls all the 6C595 /MR (master reset) inputs low to turn off their outputs if the multiplexing stops for more than 20% of the total period.

author: mariush
author_rank: Super Contributor
timestamp: September 23, 2016, 08:56:54 pm
content: You could go with 16 channel led drivers like TLC59281 :http://uk.farnell.com/texas-instruments/tlc59281dbqr/led-driver-constant-current-ssop/dp/2323439They do up to 35 mA per channel and they're constant current sink, so you can power the leds separately from a higher voltage, which would allow you for example to use a bunch of leds per pixel in the digit if you want to.If you go with 5x7 pixel digits, you could use 15 channels to enable 3 digits at a time (3 x 5 pixels) and do this 7 times for each digit, or you could go vertically and drive 2 digits (14 channels , 2 x 7 pixels) .. use a cheap microcontroller for each 2-3 digit and chain them together with RS485 or RS232 or even SPI.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 23, 2016, 09:15:36 pm
content: QuoteLike I said 20mA avarage current into a modern white LED will be more than sunlight-readable - too bright for pretrty much any display type application.For indoor use you'd be looking at something more like 5mA, maybe even less.I've done a 32x32 display with 16:1 mux with HC595s powered direct from a LiPo at ~4V and it's sunlight readable, though this was very small with 0402 LEDs.QuoteNot convinced there is much difference in sink current in practice, but the HC595 is certainly much more scaleable. You can drive maybe 3 displays direct with the AVR, but dozens with a bunch of 595s driven from one MCU

author: skytoastar
author_rank: Contributor
timestamp: September 23, 2016, 11:13:14 pm
content: Yes, this would be an indoor display. So 5ma 0402s would probably be a better choice. Maybe even 3mm or 5mm though-hole LEDs to avoid using diffusers. 50x7x5=1750 would probably be pretty blinding, even if just an 8th were lit.Those 32x16 arrays from Aliexpress would be awesome if they were a quarter the size and a quater the price after shipping. Because I'd need 50 displays, I'm not planning on using battery power. It would be plugged in. And using a single micro to drive all of the displays would be ideal. I don't want to have a micro on each 5x7 for, like you said, scalability. I'll definitely be looking into a 595 solution.But going back to the cloned MAX7219s. Supposing I could get some for $0.40. Besides a higher failure rate, what other risks would I face in using them?

author: Fungus
author_rank: Super Contributor
timestamp: September 24, 2016, 06:14:10 am
content: Quote from: skytoastar on September 23, 2016, 11:13:14 pma) Do they actually have a high failure rate? Who says so?b) None.

author: matseng
author_rank: Frequent Contributor
timestamp: September 24, 2016, 06:29:00 am
content: Quote from: mikeselectricstuff on September 23, 2016, 07:52:52 pmMike, why not swap it around and use N-channels instead? Doesn't the HC's have fairly symmetrical source/sink capabilities?

author: janekm
author_rank: Unknown
timestamp: September 24, 2016, 06:37:14 am
content: Could be cloned, or could be recycled (or recycled cloned).There's a lot of recycling of matrix displays going on, they tend to have a high failure rate (especially the cheap ones) going by how many broken ones I see so there's a lot of material around for recycling.

author: Fungus
author_rank: Super Contributor
timestamp: September 24, 2016, 06:54:59 am
content: Quote from: blueskull on September 24, 2016, 06:01:40 amYep. MAXIM isn't charging a lot for these chips because they're difficult to manufacture or need expensive processes. They're charging extra because they're MAXIM.The price of an official MAX7219 is way out of line with what they'd cost in a free market.

author: wraper
author_rank: Unknown
timestamp: September 24, 2016, 07:40:10 am
content: Quote from: Fungus on September 24, 2016, 06:14:10 ama) Yes they have high failure rate, search google. Likely because of the 4x smaller die area.b) they are not 100% compatible, may not work properly in situations where real IC works fine.http://forum.arduino.cc/index.php?topic=233109.0

author: wraper
author_rank: Unknown
timestamp: September 24, 2016, 07:55:12 am
content: Quote from: blueskull on September 24, 2016, 06:01:40 amIt has 5267 transistors which is more than, for example, 6502 CPU has.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 24, 2016, 08:49:59 am
content: Quote from: matseng on September 24, 2016, 06:29:00 amNot sure offhand about HC drive symmetry, though I'd think the Nch output is a bit stronger than the pch in the output driver.+ve row is by far teh most common arrangement, and all the CC drivers I've seen are low-side. Also pretty much all commoned RGB LEDs are common anode.You may want to adjust the positive drive voltage, which is generally easier with pch row drivers.I have used -ve row once on a crazily small array, using NPIC6C595s to drive the rows and HC595s for the columns.

author: mariush
author_rank: Super Contributor
timestamp: September 24, 2016, 10:01:43 am
content: I don't get why you'd pay 0.4$ for a fake / clone MAX7219 when you could pay less than 1$ for a TLC59281 which like I said, has 16 channels so you could power up to 3 5x7 characters at the same time, so it would cost you less than 0.33$ for a digit , and the led driver ic would allow you to basically create any character in those 5x7 pixels, not just digits.For example, you could make a smart design where you have a pcb with just the leds and two connectors on each side of the digit, one OUT (let's say on the left side) and one IN (let's say to the right) to chain digits together, and one connector at the bottom where you would plug a separate pcb with the led driver and the microcontroller (which don't have to be present inside each digit).You plug the micro+led driver in one of the digits and when the micro starts, it automatically detects through the pins in the connectors on the left and right side if there is a "dumb" digit (one without micro+driver) to the left or to the right, in which case it knows to adjust the led driver's functionality to turn on or off the leds on the dumb digits as well. This is simple to do, basically if a digit has no controller board inside, jumper a pin in the side connectors to ground so that the micro in the digit with controller can know it's dumb digit, and jumper the pins to send power and the SPI/RS485/Whatever signals onwards to next digits. This way, one controller board (micro+led driver) could auto configure itself to drive anything between 1 and 3 digits, and each micro can just shift data to the left like any shift register until it gets command to update the digits all at the sme time.So less than 1$ for microcontroller and less than 1$ for a led driver, 2$ for 3 5x7 digits.

author: johm
author_rank: Contributor
timestamp: September 24, 2016, 12:01:37 pm
content: I'm currently using AS1130 from Austria Microsystems. Plenty of capability (11x12) matrix LED driver, on-chip RAM, I2C, and the ability to run with minimal requirements from the microcontroller.http://ams.com/eng/content/download/185846/834724/105034

author: Fungus
author_rank: Super Contributor
timestamp: September 24, 2016, 12:46:48 pm
content: Quote from: blueskull on September 24, 2016, 07:00:01 amThere's still huge demand for these chips though. Every LED matrix module coming out of China seems to have one on the back.OTOH MAXIM probably did the math and decided that the Chinese LED matrices won't use genuine chips no matter how cheap they sell them.

author: Fungus
author_rank: Super Contributor
timestamp: September 24, 2016, 12:58:42 pm
content: Quote from: wraper on September 24, 2016, 07:40:10 amIf you say so.The problem with eBay is that you might be buying reject clones. There's no reason a QC-passed clone won't do the job.OTOH there's plenty of other companies making LED matrix drivers. See the last few posts above this one. That might be the best way to do it. You can use transistors and a high-current shift register but it's more work and not necessarily a lot cheaper than a fully integrated IC by the time you factor everything into the bill.PS: Is the die area really a factor? Newer process technologies, and all that...

author: wraper
author_rank: Unknown
timestamp: September 24, 2016, 01:09:13 pm
content: Quote from: Fungus on September 24, 2016, 12:58:42 pmThere is a difference between clone and counterfeit. Counterfeiters don't care about reliability, if the design is shit, why would "QC" make it reliable? If the die is much smaller, most likely driving current capability is much smaller too which means they will fail at currents where they should work fine. What about QC of counterfeit 78xx and other voltage regulators where the die is so small, they rather should be called 78Lxx?

author: Fungus
author_rank: Super Contributor
timestamp: September 24, 2016, 01:22:22 pm
content: Quote from: wraper on September 24, 2016, 01:09:13 pmOK, so therealproblem is: You don't know what you're buying.(and on eBay they often they don't know what they're selling...)Quote from: wraper on September 24, 2016, 01:09:13 pmWhy would thedesignbe "shit" or affect reliability? These days you type 100 lines of code into a VHDL compiler and it spits out a MAX7219 clone for you.

author: technix
author_rank: Super Contributor
timestamp: September 24, 2016, 06:38:25 pm
content: Despite each module being only 5x7 have you thought about how to push all those pixels through the bus?* Do you have enough data bandwidth to push out pixels at the framerate you are targeting?* How would you keep the frame updates in sync across all connected modules?* Can your data source render the images fast enough if you are using live rendering, or if you are not live rendering can your data source store all those prerendered images?* Can those scenes or images, too, be accessed at high enough a bandwidth?* Have you solved the long haul signal integrity issue as the bus have to traverse across all the modules?* Is the propagation delay of the chips going to bite you?* If you put a processor in each module to render the image in parallel, how do you keep the source data in sync and up to date? (this question is crossing into computer science territory)Video data bandwidth = framerate * frame height * frame width * bits per pixel. For example a 320x240 screen at 1bps (black/white only, no grayscale) at 30fps spells more than 2Mbps pixel bandwidth. 1080p at 24bpp and 60fps (a common computer screen) comes close to 3Gbps. Can your signal source handle that data bandwidth?

author: klunkerbus
author_rank: Unknown
timestamp: September 24, 2016, 07:30:34 pm
content: Here's another option. Sticking with the MAX7219 approach, Austria Microsystems (AMS) also has their AS1106 and AS1107 equivalents of the MAX7219 and MAX7221 respectively. They're not as cheap as the MAX7219 clones/counterfeits, but I found them to be about half the price of the Maxim parts at Mouser last time I bought a couple.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 24, 2016, 09:08:57 pm
content: I don't recall the OP mentioning greyscale

author: amyk
author_rank: Super Contributor
timestamp: September 24, 2016, 10:54:17 pm
content: Quote from: klunkerbus on September 24, 2016, 07:30:34 pmIncidentally, AMS also has one of the cheapest IC prototyping services, if you ever want a custom IC...http://cmp.imag.fr/IMG/pdf/cmp_prices_schedule_sept-16.pdf

author: technix
author_rank: Super Contributor
timestamp: September 25, 2016, 02:44:25 am
content: Quote from: blueskull on September 24, 2016, 08:17:05 pmHow do you keep all screen update in sync then? Will the propagation delay bite?

author: technix
author_rank: Super Contributor
timestamp: September 25, 2016, 02:48:11 am
content: Quote from: mikeselectricstuff on September 24, 2016, 09:08:57 pmEven without grayscale (1bpp) pixel data still build up very fast when the display resolution and framerate increase.

author: Fungus
author_rank: Super Contributor
timestamp: September 25, 2016, 05:25:05 am
content: Quote from: mikeselectricstuff on September 24, 2016, 09:08:57 pm...or a frame rate.He might be showing cricket scores for all we know.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: September 25, 2016, 08:21:50 am
content: Quote from: Fungus on September 25, 2016, 05:25:05 amYou still need a decent refresh rate for a multiplexed display - that's the limiting factor bandwidth-wise.With greyscaling that's going to increase by significant factor depending on number of greyscales

author: technix
author_rank: Super Contributor
timestamp: September 25, 2016, 02:46:08 pm
content: Quote from: mikeselectricstuff on September 25, 2016, 08:21:50 amHe can use distributed VRAM, this means each chunk of frames have its own VRAM and scanning chip (like MAX7219,) but then it comes the data synchronization issue. Keeping data in sync is tedious and easy to make mistakes.

author: MobileWill
author_rank: Regular Contributor
timestamp: September 25, 2016, 05:47:46 pm
content: I went through all this when I designed my led matrix links. Most of the max7219 are fake. There is a post from tronix about things to look for. IMO the MAX7219 is worth it and makes your life easier. That said the fakes do seem to work, there are lots of products that use them and projects without issue. For my product I ended up switching to the AMS1107 which is a tad cheaper and has a wider voltage range. It's a drop in replacement and the same code works. If you want an example of mine it is athttps://friedcircuits.usalong with design files.

author: skytoastar
author_rank: Contributor
timestamp: September 26, 2016, 12:54:01 pm
content: Well the scope of the project certainly grew a lot over the weekend! HDMI. FPGAs. Custom ICs. Frame buffers.Not really what I had in mind but that's okay.Quote from: Fungus on September 25, 2016, 05:25:05 amThat's not too far off base from what I had in mind for these displays. Each one would display a alpha-numeric character. Theremightbe some animations with the characters but they would be relatively slow and simple. No grayscale but there would need to be PWM dimming.I got quotes back from a couple of PCBA houses and they both said $1.40 each in quantities of 100 for a MAX7219CWG. They certainly would make things simpler than shift registers in that I wouldn't need to push bits constantly whether my display data was updated or not (unless I use so many registers that I don't need multiplexing). But shift registers aren't out of the question. I'll certainly look into the AS1106/7 option, also.

author: viperidae
author_rank: Frequent Contributor
timestamp: September 26, 2016, 10:06:42 pm
content: How is a tlc59281 a better fit for this than a max7219?The tlc can only drive 16 leds without another chip doing multiplexing. The max does 64 leds.

author: mariush
author_rank: Super Contributor
timestamp: September 26, 2016, 10:17:02 pm
content: @viperidaeHe wants alphanumeric digits made out of 5x7 pixels, max7219 seems to be 8 digits x 7 segment (+dot) numeric only (with some intensity control).He wants big digits, which means if he goes with max7129 every "segment" would probably need multiple leds and the total current of all those segments in a digit may exceed the limits of the chip, making some digits brighter than others, depending on how many segments are reached.He wants lots of alphanumeric elements, not just 8 or less. So there's going to be multiple of these units, whether they're 8 digits or 1..n alphanumeric blocks of 5x7 pixels , so besides this max 7219 or some other chip, he's still gonna a microcontroller for each or something like that.

author: ebclr
author_rank: Super Contributor
timestamp: September 27, 2016, 02:09:30 am
content: TM1638Easy to use and very very cheap

author: viperidae
author_rank: Frequent Contributor
timestamp: September 27, 2016, 05:39:48 am
content: Quote from: mariush on September 26, 2016, 10:17:02 pmmax7219's can be configured to drive an 8x8 led matrix.