On my desktop, I keep a list of miscellaneous parts I’d like to buy at some point (e.g. power resistors, laser diodes, etc). Parts not destined for any specific project, just things that I’d like to toy with. Well for a long time, I’ve wanted to get my hands on some high-power LEDs. I suppose I’m just a sucker for pretty lights. But for some reason, I’ve never gotten around to ordering any – probably because I’ve never had a good means of driving said LEDs (and I’m too
busy lazy to make my own driver circuit).
Well last week Farnell (Newark in the States) came to my rescue with an offer to send me any product from their site (within a certain price limit) for free. All they asked of me was an evaluation (this post) and a link to the product on their site. And which product did I pick? The TPS62260LED-338, a three-color LED driver evaluation module:
This board hosts three 500mA LEDs (W5SM) from OSRAM. Each LED is driven by a TPS62260 step-down DC-DC converter. A low-cost MSP430F2131 microcontroller controls all three drivers via pulse-width modulation.
Out of the box, my first impression: these LEDs are painfully bright (especially that red one – my vision is still spotted as I type this). They’re not kidding about protective eyewear. But I wouldn’t want it any other way. For most of my testing however, I simply covered the LEDs with about four sheets of paper. That brought their intensity down to a comfortable level.
I must commend TI on making this board very easy to use and probe. They’ve provided several nice wire-loop test points for connecting scope probes. And they’ve even broken out the power and ground connections for people like me who don’t have the proper barrel connector power supply. I was also pleased to see how they’d integrated heat sinks for each of the three LEDs into the PCB itself using a plethora of plated drill holes. In operation, the board only just becomes warm to the touch.
But let’s talk about the real highlight of this board: the LED driver circuits. Because LEDs operate within such a tight voltage range (their operating voltage is actually assumed to be about constant), they’re normally powered by some type of current controller (since the brightness of an LED is proportional to the current flowing through it). Any yet, this board features three DC-DC voltage converters – devices which take a high input voltage and convert it to a lower output voltage. So how is this supposed to work?
Well, each converter IC provides closed-loop control over its switching output. In other words, the TPS62260 measures a feedback voltage and uses this to adjust its output duty cycle. So regardless of how much current (well, up to 600mA) is being drawn from the output, the converter is able to maintain a fixed output voltage. But here’s the tricky part: you can attach the converter’s feedback measurement input pin to anything (within reason, of course). In this case, TI has wired each feedback pin to a 2Ω current-sensing resistor (part R9, below) connected in series with each LED. Each converter will adjust its output in order to maintain 0.6V at its feedback pin (as 0.6V is the internal voltage reference of the converter). Using ohm’s law, and realizing that the current will be the same in both the sense resistor and the LED, since they are in series, we can determine the LED’s current to be I = V/R = 0.6/2 = 0.3A or 300mA.
But wait, the current-sensing resistor is fixed, the converter’s internal voltage reference is fixed… so how do we control the current delivered to the LED? Simply put: we don’t. Then how can we control its brightness? Pulse-width modulation. Imagine flipping a light switch on and off so rapidly that you can no longer detect a flicker. Then, adjust the ratio of the on and off times. The longer the on time, the brighter the light will appear. This is precisely what the MSP430 microcontroller is doing to control the brightness of the LEDs. In fact, you can see this happening if you wave the board around rapidly while one of the LEDs is being dimmed (in this case, the blue LED):
That image was captured with a 0.1s shutter speed. And actually, with that knowledge, we can calculate the frequency of the PWM signal. I count about twelve blinks of the blue LED there – so twelve blinks in 0.1s yields a frequency of 12/0.1 = 120Hz (a result I confirmed with my IOBoard oscilloscope). If you’d like to read more about pulse-width modulation, check out my previous post on the subject.
So out of the box, the microcontroller on this evaluation board is programmed to slowly turn on and off each LED in sequence, such that one LED is always fully on while another is being ramped on or off. This produces a very pleasing color gradient.
Now, according to the manual that came with the board, you’re also supposed to be able to turn the knob on the board in order to manually adjust the color balance. Unfortunately, this feature did not work for me. When I turn the knob on my board, the automatic sequence stops and the LEDs hold their current brightness states. However, they do not change brightness when the knob is turned further. I’ve probed the knob (which is actually a digital encoder) and believe it to be working properly. My guess is that somebody just botched up the software. It happens.
This brings me to my final point of discussion: reprogramming. The TPS62260LED-338 provides a JTAG header for the traditional four-wire JTAG programmer. Unfortunately, I do not possess such a programmer. I was hoping instead to use the MSP430 programmer which is integrated into my LaunchPad development board. Sadly, I never checked into the details: the LaunchPad programs via the two-wire SpyBiWire (SBW) interface, not the standard JTAG interface. And of course, the MSP430F2131 does not support SBW. So for now, there will be no reprogramming. Of course, thanks to all of the convenient test points, it’s fairly easy for me to just put the micro into reset and drive the LEDs using my own PWM waveforms. If anyone out there has any tricks for reprogramming though, please let me know!
So in conclusion, I’d say the TPS62260LED-338 is a product worth checking out. For just over $20, it’s a pretty good deal. If they’d given it the USB programming interface of the LaunchPad, I’d probably be happier, but then they would’ve needed to lower the current draw of the LEDs, which would’ve been no fun, or required a separate power supply, which wouldn’t have been such a big deal.