SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By gmprops
#33915
Hi everyone!

I have been following several threads here very closely and making a lot of notes. I am looking at a project that is similar to those posted here but it uses 32 RGB SMT LEDs. I like the Maxim chips and have already downloaded all of the spec and application docs from their site.

What I need to figure out is which uC would be best for this project. I have been playing with TI's MSP430's, but I am not sure if this is the best one for the job. What do you guys recommend?

The company I am doing this work for wants all of the LEDs mounted on a 1" strip of flex-circuit strip approximately 30" in length. This strip is connected to the main controller board by an edge connector. If I have to use a matrix, do you think the 1" strip could accommodate this? (The connector to the controller board is located at the middle of the strip.)

Thanks!

Gerry
By Philba
#33916
I assume the 32 LEDs each have 3 lines that need to be controlled so we are talking about 96 separate lines. Is that right? How much control over each LEDs brightness do you need? What kind of update speed do you need to have?

As to your question about uC - as long as the IO requirements are met, almost any would be fine. the MSP430 is really good at low power and has decent performance but PIC, AVR Z8, ... would all do just fine.

On the layout question, I would guess it's just a question of how many traces you can fit in a 1" wide strip. Assuming 50 lines, that is 20 mil per - 10 mil traces with 8 mil gap would be tight. Are flex-circuits double sided/multi layer?
By gmprops
#34004
I need as much control as possible for each LED. The RGB LEDs we are using have a common cathode and 3 lines for each LED anode. I require fairly fast update speeds, but more importantly I require full control over the brightness.

One flex board manufacturer ahs already assured me that they can do 7 mil traces with 5 mil gaps. The flex circuits are available in single sided, double sided, and multi-layer. We are trying to stick with double sided to keep the costs down.

Thanks!

Gerry
By gmarsh
#34117
If you want "full color" control over LED brightness, you'll probably be looking at using the TLC5941 LED driver chip from TI, which does 16 channels of grayscale brightness control.

Two of these chips would happily drive all 32 LED cathodes.

Pick three logic-level P-channel FETs, capable of handing the peak current of having all LED cathodes driven at full brightness, to drive red/green/blue anodes. Drive the FETs directly from your microcontroller.

3 FETs and two 5941's gives you a 3x32 multiplex. You could also do 6 FETs and a single TLC5941 for a 6x16 multiplex. Pick one based on the routing complexity of the flex circuit.

As for what microcontroller to pick... you'll want to drive the TLC5941 with SPI, and have a few GPIO left over for driving FETs. But I can't really make any recommendations, because I don't know what else your circuit has to do. Where is it getting the "what is displayed on the LEDs" information from? a serial port? an ADC?
By gmprops
#34948
Thanks for the great suggestions. I will be purchasing some FETs and a few TLC5941's so I can try a few experiments. The only thing I really want to do with these LEDs is create some interesting light chaser patterns. I am hoping to use some of these circuits to light up some of my son's sci-fi spaceship models. Plus, I admit it, I love a good light show.

I was looking at using either a PIC or try my hand at using the TI MSP430. I am open to suggestions.

Gerry
By gmarsh
#34977
You're in the "8-bit microcontroller" realm with what you're doing. Go with what you're familiar with.

The TLC5941 has a GSCLK input you'll need to clock - you'll need a part which has a timer pin that you can generate a few MHz on, or has a core clock output. Ideally, you'll also use a part with a SPI interface to feed the TLC chip, though you can get by with bit-banging.

Personally, my 8-bitter of choice is the Atmel AVR family. I'd start off with an ATMega168, which has plenty of code space and pins/peripherals for what you're doing. 16K of flash, core clock output, a few timers, SPI, etc...
By gmprops
#34981
I have worked with the Atmel ATTiny's using an STK500. However, I gave my STK500 to a friend that was starting up a robotics business. What programmer do you use for the ATMega168?

16K seems a little bit much for my project, but I may need it later on.

Now I just have to learn how to program again. :roll:
By gmarsh
#35036
I own an AVR ISP MKII, and recently picked up an AVR Dragon. Before I picked up the MKII, I used a serial port Ponyprog hack. I also borrow a STK500 from work on occasion.

I write 99% of AVR stuff in C, and compile using the WinAVR tool set.

The Mega168 comes in 48/88/168/328 variants, with 4K-32K of flash. I'd go with the '168 to start and eventually go to a smaller part. You could probably fit everything into a 2K Tiny2313.

Programming's like riding a bike, you'll be fine :D
gmprops wrote:I have worked with the Atmel ATTiny's using an STK500. However, I gave my STK500 to a friend that was starting up a robotics business. What programmer do you use for the ATMega168?

16K seems a little bit much for my project, but I may need it later on.

Now I just have to learn how to program again. :roll:
By hopper1068
#35494
I too am working a concept that requires a strip of tri-state LEDs. Would possibly like to purchase one or more samples if you have any available. May lead to future work.

I'm using gumstix with MAX6956 (I2C) to drive LEDs.