Pages: [1] 2   Go Down
Author Topic: LED driver chip(s) discussion  (Read 1967 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Edison Member
*
Karma: 7
Posts: 1221
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey gang-

not looking for any specific code.. or specific 'spec'...etc..

Im looking for feedback/discussion from people who are experienced with these chips..etc

One of the first things a beginner Arduino user, like myself, finds out is that you out grow most of the default Arduino capabilities.. and look to expand using other IC chips..

usually one of the first chips people seek are ones that help in driving more LEDS than the Arduino can handle (either because of I/O pins or total current needs..etc)

from searching/reading posts at many different outlets (here, adafruit, sparkfun, instructables..etc) I have gathered a list of what I believe are the most used in our scene..

my question(s) are, more about the DIFFERENCES, and why one would, or should, choose a specific chip over another... and maybe some real world uses..etc to help make things clearer..


TLC5940:
Output Channels: 16
PWM/Steps: 4096 (12-bit)
Drive per channel: 80mA
Vin Min: 3v
Vin Max: 5.5v
Interface Protocol: Serial Data Interface
Library(s): http://www.arduino.cc/playground/learning/TLC5940




TLC5945:
Output Channels: 16
PWM/Steps: 4096 (12-bit)
Drive per channel: 120mA
Vin Min: 3v
Vin Max: 5.5v
Interface Protocol: Serial Data Interface
Library(s): http://www.arduino.cc/playground/learning/TLC5940   // not sure if it works the same for this chip as the 5940

MAX7219/7221:
Output Channels: 64 leds/8 x 7-segment displays
PWM/Steps: (11-15 steps)?
Drive per channel: 40mA (max) per segment
Vin Min: 4v
Vin Max: 5.v
Interface Protocol: Serial (SPI)

 -Datasheet:
http://pdfserv.maxim-ic.com/en/ds/MAX7219-MAX7221.pdf

 -Wiring:
http://arduino.cc/playground/Main/MAX72XXHardware

 -Articles/Playground:
http://arduino.cc/playground/Main/MAX72XXHardware
http://arduino.cc/playground/Main/MultiplexMAX72xx
http://www.arduino.cc/playground/Main/LEDMatrix

 -Library(s):
8x8 Matrix controlled by a max7219
Matrix-library
LedControl-library
MAX7219-Library

 -NOTES:
mA set by rSet resistor
common cathode


WS2803:
Output Channels: 18
PWM/Steps: (8-bit) 256-greyscale
Drive per channel: 30mA
Vin Min: 3.3v
Vin Max: 5.5v
Interface Protocol:



I think most relevant is how many leds the chip can drive..

ie: 16 vs 18 vs 64..etc


thanks!

« Last Edit: October 30, 2012, 03:08:36 pm by xl97 » Logged


Norfolk UK
Offline Offline
Edison Member
*
Karma: 52
Posts: 2214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MAX7219 is only suitable for driving single colour LED's (not RGB) and the 16 level PWM effects all 64 at the same time, you cannot dim individual LED's. They also daisy chain together.

WS2803 can PWM each channel separately and because it has 18 channels it is ideal for RGB LED's (6x RGB LED's per chip) It also daisy chains.

I have not used the other chips yet.
Logged

Handle every stressful situation like a dog. If you can't eat it or hump it. Piss on it and walk away.

0
Offline Offline
Edison Member
*
Karma: 7
Posts: 1221
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

good point about the MAX's only being good for single color..

* (and the TLC's lacking enough support for 6 x RGB)
Logged


Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4549
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MAX7219 is only suitable for driving single colour LED's (not RGB)

Why? What's the difference between an RGB LED and three separate LEDs?


Logged

No, I don't answer questions sent in private messages...

0
Offline Offline
Edison Member
*
Karma: 7
Posts: 1221
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I need to go back to look at the datasheets for the other chips, I know the MAX uses 1 resistor to set the current for ALL (64) of the (multiplexed?) leds...(wouldnt reds need a separate/lower value?)   do the others set current a similar way? or does each LED need a resistor for these other chips?


another point could be that if there is only 16 steps in PWM for the MAX chips.. probably not the best for color mixing?? since all 'fade' the same amount, not individually?





Logged


Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 508
Posts: 31431
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
What's the difference between an RGB LED and three separate LEDs?
Normally the fact that there is a common anode or common cathode. This messes up some types of driving chips.
I know you can get surface mount LEDs with separate connections to both ends of each diode bit they are not common.
Logged

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4549
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I need to go back to look at the datasheets for the other chips, I know the MAX uses 1 resistor to set the current for ALL (64) of the (multiplexed?) leds...(wouldnt reds need a separate/lower value?) 

The resistor sets the current, not the voltage.

do the others set current a similar way?

Yes.

another point could be that if there is only 16 steps in PWM for the MAX chips.. probably not the best for color mixing?? since all 'fade' the same amount, not individually?

It's not good for fading individual LEDs, no, but it could certainly drive RGB LEDs.

Logged

No, I don't answer questions sent in private messages...

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4549
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
What's the difference between an RGB LED and three separate LEDs?
Normally the fact that there is a common anode or common cathode. This messes up some types of driving chips.
I know you can get surface mount LEDs with separate connections to both ends of each diode bit they are not common.

I don't see any reason why you couldn't connect three MAX7219 source pins to a common anode LED (or three sink pins to a common cathode).

nb. I haven't tried it...
Logged

No, I don't answer questions sent in private messages...

0
Offline Offline
Edison Member
*
Karma: 7
Posts: 1221
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

doh.. you are right.. has a lower vF  (not current) lol.. sorry.

@GrumpyMike-

yeah the RGB 5050 leds are like that (all separate pads for each color, 6 in total.. so they can be common 'anything' in the end application I suppose.

all good point...thanks guys.

(note to self: )
for 'color mixing' the MAX's are not a good choice,....just as a general piece of knowledge to take away from this as well. smiley
Logged


Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4549
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Some more LED controllers I've used which are cheap and easy to get on eBay:

TLC5916 - 8 channel constant current sink. 16-pin DIP, serial port, no PWM.

TLC5925 - 16 channel constant current sink. 24-pin DIP, serial port, no PWM.

AN6884 - 5 LED bar graph controller in 9-pin SIP package - an easy way to get 5 constant current sinks
             with no CPU/serial port input needed. Just tie the input to Vcc and all the channels will turn on.

LM3914 - 10 LED bar graph controller, 18-pin DIP package ... use like AN6884 but for 10 LEDs.

Logged

No, I don't answer questions sent in private messages...

More Cowbell
Offline Offline
Edison Member
*
Karma: 11
Posts: 1025
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
What's the difference between an RGB LED and three separate LEDs?
Normally the fact that there is a common anode or common cathode. This messes up some types of driving chips.
I know you can get surface mount LEDs with separate connections to both ends of each diode bit they are not common.

I don't see any reason why you couldn't connect three MAX7219 source pins to a common anode LED (or three sink pins to a common cathode).

nb. I haven't tried it...


The way the MAX 7219 works is it selects one of the eight cathodes to sink the current and provides current to zero to eight of the anodes for the segments that need to be lit on the currently selected "device" (or row or column if you are using a matrix).  It cycles through this refresh cycle at 800Hz.  So it is not possible to use two or more of these on one matrix *at the same time* because they will not be synchronized correctly.  For example, MAX 1 could be sourcing current for columns 1,2,3 (red) and sinking it on row 1 while MAX 2 could be sourcing current for columns 1,4,5 (blue) while sinking it on row 2.  The net effect is you have 6 columns on 2 rows lit instead of the 6 you intended and maybe some other unintended electrical issues.  The way you get around this is to disable one MAX while the other is working and give them 50% duty cyles (which they reduce to 1/8 duty cycles for each chip's connected devices/columns/rows).  Too much trouble for me.  The MAX7219 is not set up right for multicolor displays, MAXIM has other solutions for that.

P.S.  I love these chips.  Very easy to use.  But only for up to 8 anodes per cathode or you are not going to be happy.
« Last Edit: October 29, 2012, 05:45:58 pm by JoeN » Logged

Vexatious Sampler

USA, FL
Offline Offline
God Member
*****
Karma: 14
Posts: 686
A life? Where can I download one of those?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

TLC5916 - 8 channel constant current sink. 16-pin DIP, serial port, no PWM.

You can use ShiftPWM library for the 5916 to get PWM on all channels..

MAX6954:  Hard to interface with Arduino
Drives Up to 16 Digits 7-Segment, 8 Digits 14-Segment, 8 Digits 16-Segment, 128 Discrete LEDs, or a Combination of Digit Types
4-wire interface
Built-In ASCII 104-Character Font for 14-Segment and 16-Segment Digits and Hexadecimal Font for 7-Segment Digits
16-Step Digit-by-Digit Digital Brightness Control
and a ton more... 

MAX6966:
10 Channel LED
Individual 8-Bit PWM Intensity Control for Each LED
SPI interface
Logged

//LiNK

More Cowbell
Offline Offline
Edison Member
*
Karma: 11
Posts: 1025
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MAX6954:  Hard to interface with Arduino

I'm wondering if this is really the case.  The complaints seem to be that the programming sequence is incompatible with the way Atmel processors do SPI in hardware:

Quote from: Maxim Integrated, Inc.
The MAX6954 is written to using the following sequence:
1) Take CLK low.
2) Take CS low. This enables the internal 16-bit shift register.
3) Clock 16 bits of data into DIN, D15 first to D0 last, observing the setup and hold times. Bit D15 is low, indicating a write command.
4) Take CS high (while CLK is still high after clocking in the last data bit).
5) Take CLK low.

That the SPI library takes CLK low before you can take CS high.   This is inconvenient, but hardly a show-stopper.  Read the datasheet, send the bits yourself.
Logged

Vexatious Sampler

Norfolk UK
Offline Offline
Edison Member
*
Karma: 52
Posts: 2214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MAX7219 is only suitable for driving single colour LED's (not RGB)

Why? What's the difference between an RGB LED and three separate LEDs?
You could use RGB leds but lack of individual channel PWM means you can only turn a channel on or off. This limits the useful range of RGB colours to 7 (8 if you include all off) unless you device some fast switching to sudo PMW by turning a channel on/off quickly.
Logged

Handle every stressful situation like a dog. If you can't eat it or hump it. Piss on it and walk away.

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 118
Posts: 4549
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote from: fungus
I don't see any reason why you couldn't connect three MAX7219 source pins to a common anode LED (or three sink pins to a common cathode).

nb. I haven't tried it...


The way the MAX 7219 works is it selects one of the eight cathodes to sink the current and provides current to zero to eight of the anodes for the segments that need to be lit on the currently selected "device" (or row or column if you are using a matrix).  It cycles through this refresh cycle at 800Hz.  So it is not possible to use two or more of these on one matrix *at the same time* because they will not be synchronized correctly.

I meant three source pins from the same MAX 7219. With one MAX 7219 you should be able to do a 2x8 matrix of RGB LEDs.
« Last Edit: October 30, 2012, 04:51:18 am by fungus » Logged

No, I don't answer questions sent in private messages...

Pages: [1] 2   Go Up
Jump to: