Backlight driver

What I did today is probably not so cool for the electrical engineers here, but for me as a software guy I am pretty proud of my idea.

I have the controller running at 3.3V and 8MHz and needed to drive 3 white LEDs in series for my LCD backlight. Now where to get a cheap driver for this? Here comes my approach:

I use Timer 2 to generate PWM output. This drives a PDTD113Z (basically an NPN transistor with 2 integrated resistors). This driver in turn switches a 330uH inductor in a configuration like so http://upload.wikimedia.org/wikipedia/commons/3/39/Boost_conventions.svg.

Works like a charm. I am very happy. I did not yet find the time to control the wave form with the scope. But at least it works and was simple to setup :)

Initially I intended to use a FET but then learned that the FET appears as a capacitor for the AVR output and might damage it. Althoug I now have a satisfactory solution: is this concern justified?

That is what would have been a really good choice? FET, FET + Gate resistor, or NPN driver (as I choose)?

Udo

What I did today is probably not so cool for the electrical engineers here...

Well, I'm and electrical engineer and your idea sounds pretty cool to me. I do not know how to read a .svg file (do you have something more accessible?) but I get the general idea.

I have found the PWM output a handy source of switching signal for voltage boost circuits, with the added bonus that you can start and stop boosting at will. Maybe you want to try flashing the backlight to get attention for an alarm condition.

Initially I intended to use a FET but then learned that the FET appears as a capacitor for the AVR output and might damage it.

If you are talking about FET gate capacitance, that is usually a very small value. Also, AVR outputs are relatively robust. There is a good chance the transistor has a base capacitance value as large as the FET's gate capacitance (drill down in your data sheets!) but it draws so much current the capacitance is considered negligible. With the FET, capacitance is all there is. The transistor is almost certainly a heavier load for the AVR output.

Initially I intended to use a FET but then learned that the FET appears as a capacitor for the AVR output and might damage it. Althoug I now have a satisfactory solution: is this concern justified?

No concern, the Arduino output pins have both active low and high output drivers and can easily drive most standard MOSFETS

That is what would have been a really good choice? FET, FET + Gate resistor, or NPN driver (as I choose)?

My favorite is N-channel LOGIC level mosfets. Be sure to obtain logic level mosfets instead of standard mosfets, as the standard one require +10vdc gate voltage to full turn on the device while logic level mosfets will fully turn on with just 4-5 vdc.

Lefty

I generally agree with retrolefty. Logic level N-channel MOSFETS are usually an excellent choice.

However, I just realized part of the original post was:

I have the controller running at 3.3V and 8MHz...

With only a 3.3V output, you don't meet the threshold for driving logic level MOSFETs. Looks like your NPN bipolar may be the best choice after all.

Given your programming skills, you could also expand on the idea with an output feedback wire to an ADC input channel. Measure voltage across a voltage divider (parallel to the load) for constant voltage regulation or a series resistor between ground and load for constant current regulation. Then sample ADC in your main loop and adjust PWM frequency up/down to maintain regulation at your chosen threshold.

You could also adapt this for either a step-down, step-up or step up/down regulator. This will give you a mcu controlled switch mode regulator at the expense of a PWM output and an analog input. Use a logic level N-channel FET and a fast recovery diode for optimal efficiency.

Well, I'm and electrical engineer and your idea sounds pretty cool to me. I do not know how to read a .svg file (do you have something more accessible?) but I get the general idea.

Here you can see the image in png format: http://en.wikipedia.org/wiki/File:Boost_conventions.svg

@BenF: you are right, I alread noticed that I could do this. But the whole point was to get a simple solution. Addind more parts would make the whole setup unnecessary complex (especially: increase the number of solder joints). In addition for me it solves the wrong problem. I am driving a backlight. So I do not want to regulate current but "perceived brightness". Something that can not at all be achieved by a constant current regulator. So I will keep it simple. I did not even put a diode in because the LEDs are "the diode" :)

With regard to efficiency: I did not yet measure to much but running full tilt the setup consumes an additional 90mA@3.3V or ~300mW. The CPU + LCD alone consume right now ~6mA@3.3V my old setup consumed 110mA@5V and I could not regulate the backlight. At 30mA@3.3V I still get very reasonable brightness and only 100mW power consumption so right now the setup is good enough. And most important: the backlight does not flicker since I am always way beyond 10kHz :) If I decrease brightness further current consumption goes down as well.

Udo

Looks as if the idea was already known and implemeted much better here: http://spritesmods.com/?art=ucboost&f=had. Still I am very satisfied with my reinvention :)

Udo

Today I found a better picture of what I am doing here http://en.wikipedia.org/wiki/File:Boost_circuit.png.

The transistor is the AVR controlled switch and the "load" and the diode are 3 LEDs in series.

Udo