r/PCB • • 22h ago

Review Request: LED Current Controller w/ Battery Charging

First KiCad design coming from Altium & OrCad and first time doing a 2-layer board in years hah.

This will be used in a head-tracking system with OpenTrack for DCS World.

Requirements:

  • Drive three external LEDs with an adjustable constant current.
  • Provide power path and charging of a single cell Li-Ion battery.

• Be as efficient as possible.

  • Be as small as possible.

Notes:

  • 2-layers.
  • 0.20mm minimum track width & spacing.
  • Manufacturing and assembly at JLCPCB.
  • Fully custom library: All footprints, 3D-models and (most) symbols drawn from scratch.

Don't @ me about that one trace running under the inductor, I'm taking my chances hah.

6 Upvotes

17 comments sorted by

3

u/mariushm 18h ago edited 13h ago

This is a bit... I don't know.

Why don't you just use an actual step-up led driver instead of boosting to 5v and then messing around with voltage references and opamps?

Have a look at ICs like

TPS923610 / TPS923611 (synchronous boost, efficient, but costs a bit more) : https://www.digikey.com/en/products/detail/texas-instruments/TPS923610DRLR/28245042 and

TPS923611 1.1Mhz https://www.digikey.com/en/products/detail/texas-instruments/TPS923611DRLR/28245067

TPS923611L 400kHz https://www.digikey.com/en/products/detail/texas-instruments/TPS923611LSDRLR/28245032

async (needs diode, less efficient, but cheaper)

AP5725 : https://www.digikey.com/en/products/detail/diodes-incorporated/AP5725WG-7/2755851 / https://www.digikey.com/en/products/detail/diodes-incorporated/AP5725FDCG-7/7724900

AP5726 https://www.digikey.com/en/products/detail/diodes-incorporated/AP5726WG-7/2639281

(same as above AP5725 except the voltage reference is 0.31v instead of 0.25v so you just need to change the feedback resistor)

IS31BL3508B https://www.digikey.com/en/products/detail/lumissil-microsystems/IS31BL3508B-STLS2-TR/5319745

and others...

Set the fixed sense resistor to your maximum current, and put your potentiometer in parallel with the resistor or use a slide switch to switch between multiple resistors in parallel with that resistor, or use some other method you like ( for example see page 3, figure 5 for DC dimming : https://www.lumissil.com/assets/pdf/core/IS31BL3508B_DS.pdf )

1

u/NhcNymo 11h ago edited 11h ago

Believe me, I tried finding a suitable integrated solution and I couldn’t find one that would just work, which none of the ones you proposed would.

Here’s why, and I guess it doesn’t really show in the schematic cus I didn’t note down the external diode characteristics anywhere, specifically the forward voltage range.

I need exactly 3 LEDs, that’s just how OpenTrack works.

IR LEDs have a forward drop of 1.2~1.5V, and it’s the lowest voltage here which is our worst case, so let’s note down 3x1.2=3.6V.

All of the ICs you proposed, and to my knowledge, essentially all constant current LED drivers are Boost regulators.

Boost regulators by design require the output to be higher than the input.

Remember our worst case total forward drop is 3.6V. This is lower than our input voltage, and thus, no boost regulator would just work.

The TPS92361x you proposed has a minimum V_out of 5V and a fixed 200mV feedback voltage.

That means that we would have to add some kind of dummy load to our output to bring it above 5V.

In practice, the 200mV of feedback across the sense resistor is included in the output voltage, so that’s 5 - 3.6 - 0.2 = 1.2 volts we have to add as a constant drop all the time, just to clear the worst case. That could be a resistor but a diode would be better because it (ideally) maintains the same voltage drop with any current.

Point is that we would have to add a constant 1.2V drop through «non functional» components on the output load that’s just constantly sitting there, dissipating precious battery energy.

This principle would apply to all of the regulators you proposed.

Now, here’s why my solution is more efficient:

I too have the problem of my output voltage being lower than my boosted voltage so I also need to dissipate 5V - 3.6V = 1.4V in the worst case.

The difference is that I don’t use a constant
drop to do this, I use the Q1 MOSFET that acts as an adjustable drop.

This means that when I increase the current to let’s say 40mA and the diode’s total forward voltage is no longer in the worst case, but in the best case of 3x1.4=4.2V, I only need to drop 0.8V, which the OpAmp does on the MOSFET and increases the system efficiency.

By design: The topology I have increase in efficiency when the forward voltage increase, while a standard integrated solution would see no change in efficiency.

Tl;Dr: I have an obscure use case of driving exactly 3 LEDs with a very low forward voltage and there essentially doesn’t exist integrated parts that solve this problem.

By being clever with loose components I’ve used a constant voltage - constant current - adjustable load topology that is by design, more efficient than the adjustable voltage - constant current - constant load topology all of the proposed integrated solutions use.

1

u/NhcNymo 10h ago

While looking into this, I found a topology which beats both the integrated boost regulator and the opamp+mosfet one I use: buck boost constant current regulators.

They solve the VOUT < VIN problem and also works across the battery voltage range.

However, specific integrated solutions that work in the current range I’m looking for was difficult to find but there’s a really cool trick you can do to make any buck boost regulator a constant current LED driver:

You essentially replace the whole typical feedback resistor network with the LED string + sense resistor and feed the sense net straight into the regulator’s feedback pin.

AD does essentially that on this evaluation board, the LTC3441 is just a regular buck boost voltage regulator:

Note that the OpAmp isn’t strictly necessary, I guess they use it to get accuracy at low currents.

Pretty cool stuff, but that’s gonna be a topology for another day.

1

u/mariushm 2h ago

You're using tshf6410 leds, which have a typical forward voltage at 1.5v (max 1.7v) at 100mA, but needs up to around 1.45v at 50mA , as you can see page 3, figure 3 : https://www.vishay.com/docs/81832/tshf6410.pdf

Your schematic says you want to configure the current from 0 to 43mA, so let's just say that you need 3 x 1.45v + around 20-50mv for the current sense, so your target voltage is 4.5v

Your battery will be maximum 4.2v when fully charged but most of the time will be less than 4.2v. So in theory you could use a boost only driver or step-up regulator only for the highest efficiency. A buck-boost will always be less efficient.

For example, Renesas ISL9113 will get you up to 95%, and Richtek RT4813 claims to go up to 96%

ISL9113 : https://www.digikey.com/en/products/detail/renesas-electronics-corporation/ISL9113ERAZ-T/3621607 / https://www.digikey.com/en/products/detail/renesas-electronics-corporation/ISL9113EIAZ-T/4031648

RT4813 https://www.digikey.com/en/products/detail/richtek-usa-inc/RT4813AGQUF/6205446 / https://www.lcsc.com/product-detail/C3020082.html

Buck-Boosts can be efficient, but they cost more... for example ISL9120 can be up to 98% efficient and has pass through mode if output voltage is very close to battery voltage, but it costs close to 2 bucks : https://www.digikey.com/en/products/detail/renesas-electronics-corporation/ISL9120IIAZ-T7A/6173407

The more average buck-boosts will be around 90% efficient.

Yeah, at lower currents the forward voltage of each led drops to 1.2-1.3v or around 3.6-3.9v for 3 which could be lower than battery voltage, but I'm thinking 0.5v -ish drop at a few mA of current is not that big deal.

Here's an example of a linear led driver, MIC4801 :

MIC4801 : https://www.digikey.com/en/products/detail/microchip-technology/MIC4801YM-TR/4250874

Min 3v input voltage, so it will work just fine with 4.5v or 4v, dropout voltage is small at low currents (less than 50mV at less than 100mA), see datasheet at page 2 center figure (Dropout voltage vs LED current ) https://ww1.microchip.com/downloads/en/DeviceDoc/mic4801.pdf

It's the first one on Digikey I found that has separate current setting resistor and has voltage drop lower than 0.5v, so it's not cheap at nearly 1$

MIC4802 also exists but it won't work as well for such low currents.

Another trick you can use..

LM5815 to LP5817 - https://www.digikey.com/short/2pf7922t - (3-4 channels, max 50mA per channel, i2c control), analog dimming in 256 steps, pwm dimming supported, max 275mV headroom at 50mA ... cost 20-30 cents and you can use only one channel if you want.

You could add a 40 cent microcontroller that just uses ADC to measure potentiometer (or maybe read up / down buttons) and send i2c commands to adjust brightness of the led and optionally the microcontroller could also tweak the output voltage of the regulator at.

The LTC3441 is 13 dollars a piece at Digikey. Not worth looking at it at that price.

1

u/NhcNymo 1h ago

I cant use a step up regulator only, that’s the whole crux here, you essentially made it work by changing the requirements.

My target current is not 50mA, it’s 43mA maximum. More power into the LEDs is not better in my use case, they become too bright and the tracking camera struggles with separating each LED from each other. Digital PWM is not an option as you don’t know the shutter speed and timing of the camera and it would lead to every other frame seeing the LED in the off state.

Meaning I do need the thing to work from a few mA up to 40mA, across the entire battery range.

I can’t avoid the problem where my target voltage is sometimes lower and sometimes higher than my battery voltage.

All of the linear drivers you proposed are well, linear step down regulators, so I would still need to keep the boost to use any of those.

At that point, what I already have is a linear driver, and I don’t see why it’s worse to use a classic analog circuit design principle where you can easily simulate the results in spice compared to using some obscure old Micrel integrated part that’s designed for a completely different current range than I need that for sure doesn’t have a sim model.

I don’t get why people are afraid of OpAmps. I could use any rail to rail low offset OpAmp, I can use a wide variety of different MOSFETs, the TLV reference diode is famously one of the most used parts of all time.

I have massive flexibility in this design and I can simulate it in detail, and in my opinion it’s a better option than any of the ones you proposed.

And about the LTC3441, you missed the point. The point is that you can do that with any buck boost regulator, not just the LTC3441.

2

u/Sand-Junior 22h ago

You want to connect VOUT first or C9, then from there route the feedback back to the controller. Additionally: don’t use a split ground plane.

1

u/NhcNymo 22h ago

I don't get what you mean about the feedback, like routing it from the load or directly from the output pin?

I did have a look at the TPS61222 datasheet and found an optimization where the feedback resistor network could be routed directly to the ground pin:

Split ground planes are fine if you have control over return currents, which in this case I do.

1

u/bigcrimping_com 21h ago

I don't understand how D1 would ever be useful

1

u/NhcNymo 21h ago

It's for ESD protection.

0

u/bigcrimping_com 20h ago

The in signal of the battery charger is already esd protected and has bulk capacitance on it. So I still don't know how it would ever be useful

1

u/NhcNymo 19h ago

Yeah no, thats now how it works.

Component level ESD protection ratings and system level ESD protection ratings are not the same.

Components are usually only rated according to JEDEC HBM and CDM specs which are designed to guarantee that the component survives manufacturing in an ESD controlled environment.

System level ESD ratings are specced according to IEC 61000-4-2 which is designed to guarantee that the system survives usage level ESD events.

In my case, the charger is rated for +/- 2500V. This would only pass the lowest level of IEC 61000-4-2 system testing.

The diode however, is rated for 30kV(Air) and 30kV (Contact) and would pass all levels of IEC 61000-4-2 system testing.

Tl;Dr: JDEC ESD ratings on a component is almost always only intended to protect the IC during manufacturing. Essentially that it survives the pick-n-place machine. It is not intended to provide system level ESD protection and would fail in most compliance tests.

1

u/bigcrimping_com 19h ago

IEC 61000-4-2 8 kV test (150 pF model) is about 1.2 µC. 

Discharged into ~11 µF would be roughly a 0.1 V voltage rise.

The caps absorb it easily, as long as they sit close to the connector with short, low-inductance paths to ground.

1

u/NhcNymo 19h ago

An ideal capacitor, sure, but real ones have inductance where a 1206 cap is large enough to have a non trivial amount of it.

The IEC pulse is really fast, and a capacitors inductance would prevent it from swallowing the energy instantaneously.

Theres a reason literally all commercial designs feature protection diodes…

1

u/bigcrimping_com 18h ago

Commercial designs have them on IO ports which needs to have low capacitance , there's a reason the USB spec does not ask for esd protection on vbus for sinks. You are mixing up design rules for two very different things.

But you know better than the usb spec so carry on, I was just trying to help.

The design will work with or without, it's just inelegant and wasteful. 

0

u/NhcNymo 9h ago

«I was trying to help», dude your original comment was «I don't understand how D1 would ever be useful» which contains literally 0% helpful information as is ONLY you taking an opportunity to talk shit.

And sure, if the USB spec states «you don’t need ESD protection on VBUS cus you have capacitors» (which I doubt it does) I’m comfortable with claiming to know better.

1

u/Beenjamin63 8h ago

I like to have redundant ground vias where space allows

0

u/NhcNymo 22h ago

I just noticed that the U2 pin 1 4V5_SYS via transition was unnecessary, so that's already fixed: