[WIP] BLF 17CC (yes CC!) feedback loop regulated, FET/BJT based linear driver, current set via sense resistor.

Hey guys, I've finally got around to doing an AVR controlled version of my linear constant current driver. Again this is a linear driver, not buck / boost. Vin must match Vout (however unlike a 7135 based driver there is no hard limit), the max input voltage is limited only by the FET's rating, want to use 13s cells (and 13s LED's) no problem, just pick a new fet capable of 60v (54v + a slight margin) [that's just an example but you get what I'm saying]. Tho not at all related, this driver in theory, functions somewhat similar to an analog version of Alex's 7136 driver with the BJT taking on the tasks in an analog manner that the 7136 handled using logic control.

How it works- The current the LED receives flows through the N-FET and the sense resistor bank. When too much current flows through the sense resistor the NPN bipolar transistor will start to turn on which starts turning off the FET thus reducing current, this reduction then allows the FET to come back on, regulating its self to a steady output. This all happens at several hundred hz.

The current is set using the following formula

LED I = 0.5 / RSET while RSET power = 0.25 / RSET (DONT OVERLOOK A SAFETY MARGIN)

THIS DRIVER IS UNTESTED! I have boards on order and I have all components on hand. I also use this circuit (albeit with different components and running PIC's) on several of my drivers. All my multi-channel drivers use this as does Matt's Tiniest10 (which I've used pretty extensively), I've also build many different proro-board circuits with this layout. I wanted to wait till I had a built and running driver in my hand however I was in the mood today so here it is.

initial release:

BLF 17CC v02

Notes:

* The current set-point is somewhat sensitive to temperature. This is because the BJT is the trigger and THERE IS NO SUCH THING AS A TEMP STABLE BJT, I've selected a BJT which should be pretty thermally stable but keep that in mind! Ideally you would heatsink the driver and then do all your testing at operating temp. The part I specified above is one of the least thermally sensitive NPN BJT's I could find. Even so, expect a 20% reduction in current set point as you go from room temp to +100C.. You may be thinking of this as a bad thing but I offer this tidbit- think of it as built in thermal step regulation / overheat protection!

* At this stage I've done many different drivers with this circuit however using different components- the circuit definitely works and works well but also, I've only ran those driver's at a max PWM frequency of 1.4khz, you may need to turn the PWM rate in STAR down. That's all TBD and I'm hoping not needed but we'll just have to see.

* Power dissipated in the set resistor bank is higher than that of typical sense resistor applications, I use Vishay Dale 3/4W 1206's on all my current applications. As a example on my color drivers I want a total of .25ohms resistance at 1W power, I achieve that by using a stack of two .47ohm 3/4W to give me ~.23 @ 1.5W. To build a driver with lower resistance (for higher current) you want to keep an eye on the power dissipation while shopping for whats available in higher power 1206's, we may find I need to go to 2512's or maybe use 2 stacks of 2 1206's (for 4 total) to achieve a safe power rating.

* The FET is the number one important factor as far as what the driver is capable of current output wise however the BJT has a lot to do with the efficiency and how it performs during extended runs. (I do know you can stack BJT's to increase performance.) I dont completely understand BJT's and hope, with the communities help, to be able to pinpoint what exactly are the important aspects of a BJT's ratings that effect us using them in this application so I can either be happy with the current component or have a better grasp on it to choose one that will be better / more suited in this application. The one currently listed I picked based off some of the ones I've used on my existing drivers as well as looking up one that should be pretty thermally stable as mentioned above.

* The gate resistor on this driver isnt like the gate resistor on one of the dd FET drivers, it's absolutely required! The driver may run without (or it may not) it but it's not good on either the uC of the BJT and in general it's just bad practice to not use one.

This is only the initial board [using AVR], just so I had something to get ordered for testing. I plan to revise it greatly starting now. Some of the changes I'm hoping to make including making a 17mm version that's single sided, I can hopefully make this work by going to an LFPAK33 FET.

Parts list-

R1 and R2 are the voltage divider, pulls directly off the batt (i.e. the proper location)

R3 is the gate resistor, use a 470ohm resistor

D1 is a low v-drop schottky diode for polarity protection (I will most likely forgo this in favor in physical reverse polarity protection one of a few different ways), SOD-323

C1 10uF input / smoothing CAP (after diode)

OTC - standard off time cap

FET is a SO8 / LFPAK56

BJT is fairchild MMBT5089, SOT-23

I use 0603 C's and R's, the pads are Eagle's typical oversized pads meaning 0805 parts will fit just fine as well. The [current] SOD-323 pad is my personal modified version (with more copper for a better connection) but again, I will most likely be going to purely physical RP protection cause it's easier and cleaner. The current [v02] board has a .8mm top ring and a 1mm bottom ring, both top and bottom have full GND planes.

Oh man…sweet

So a single cell CC, you can kick up the power and still have good regulation?

Very exciting. I’ll let you test it before I jump in, but this looks great based on your description. I’ve always been partial to regulated drivers opposed to DD drivers.

Thanks for posting this up CK. More linear regulator options are always appreciated :slight_smile:
Cheers

Just looking back over the files and I see a really dumb mistake I should of caught, I had the PWM output on pin5, I’ve changed it to pin6. For my test boards I’ll just jumper it (I know I could also make one change in the code but I’ll forget about that if I do and screw myself up).

DO NOT ORDER V02!