A more efficient driver (digital to analog controlled buck)

@FrontPorchCarver:

That LTC3785 is certainly a very efficient dc-dc converter. Lot of parts involved. Having dealt with the LTC data sheets and a live example, I am always suspicious or skeptical of the the top line efficiency charts they come up with.

If the FB or Iset pin can be set with a DAC, then the newer low pin count Pic microcontrollers typically have a built in 5 bit DAC module. They can be supplied by an internal fixed voltage reference, so that it would not vary as the battery voltage decreases. Not sure about the ATtiny’s.

Fair enough — it’s certainly true that datasheet figures don’t always pan out in practice. And I should have browsed the whole datasheet more thoroughly before commenting on it. But since they’re only claiming >80% efficiency with EN2 enabled, I suspect it’s less efficient than some of their other offerings. But again as you said, theory != practice, etc.

Good to know. I don’t think the smaller ATtiny’s have that though I could be wrong. Although a 5 bit DAC might not always be precise enough - on at least one converter I’ve tested in LTSpice, a 1mA->3A output range corresponded to only ~150mV of difference on the FB pin.

Oops, only 32mv resolution with 5 bit DAC, not good. Would have to go 14pin device like the PIC16f1783 with a 8bit DAC for possible 4mv resolution, it also has 2 OPA’s if in need. Not altogether sure if some sort problem could arise when switching between bit settings?

0K fellows, seems you're getting pretty technical here.

Here's my take on this: since we can use multiple output pins from a microcontroller (ATtinies, etc), we could use them to make a DAC to enable a sort of low resolution multi-staggered current sensing combined resistor. Example:

Let's say we use 3 output channels to enable/disable (switch) FETs, each one in series with a different value current sensing resistor, on the low side after the load. We could also set a relatively very high value current sensing resistor which, with all our channels shut down, would allow us to have a moon mode.

We set the moon sensing resistor to the desired value. With all three current control channels disabled, this would be the current to the led. Now, we select the desired maximum drive current, and divide it by the maximum binary number which the amount of channels available can represent, 7 in this case (23 - 1). For 5600mA of driving current, that would be 800 (mA). So, (let's say) channel/FET 0 would have a current sense resistor tuned for 800mA, channel/FET 1 would have one for 1600mA (half value), and channel/FET 2 would have one for 3200mA. Which such an array, by consecutively enabling/disabling the different drive channels we could set the driving current in any range from 800 to 5600mA (+ the moon mode driving current, which would be insignificant here) in 800mA steps, just by sending a representation of a 3 bit binary number through the channels: moon, 800mA, 1600mA, 2400mA, …, 5600mA. Each additional channel would double our “resolution”.

And, of course, completely PWM free (yet it could still be used, though).

Hope this helps.

Cheers ^:)

It's creative. I like it. Downside in comparison to continuous PWM to V converter is it sounds like it needs new software. Upside is it will work with pretty much any buck (or probably boost) there is, and you don't have to work out the continuous PWM to V conversion or other DAC, anyway, it's a pseudo DAC option. A 3-bit DAC I suppose.

By the way, actually I guess all of this stuff applies pretty much equally to boost conversion.

Well, those ATtinies have, 6 output channels? We could use more resolution then. Feeding the ATtiny with 5'5+V from 2-4S li-ions with a linear regulator wouldn't be a problem since it doesn't needs any significant amount of current to operate, right?

Cheers ^:)

P.S.: Flintrock, yes it would also apply to boost and boost/buck converters in the same way.

But barkuti I'm not seeing the circuit the way you describe it. I think you have N resistors all in series. Then each FET is in parallel with one resistor and acts as a bypass for that one resistor. Anyway, I think the point made sense. Details are details.

I think TA is just pulling a voltage off one battery to power the controller in his 2S/4S Q8 design. Probably simpler, but doesn't work with remote packs.

Flintrock, each channel would be connected to its corresponding FET gate, FETs and shunts are in series with the load. All FETs/shunts would be in parallel, with a different relative current "wheight". Once all channels are activated (low/high depending on FET type), total shunt resistance is the combined value of all of them (lowest value, maximum drive current); each channel has a different weight (example: 0'2 mΩ, 0'1mΩ, 0'05mΩ). :GRAD:

Cheers ^:)

I'm going to be brain lazy at the moment and trust you (actually I think both ways work but you get a different curve), since anyway, it certainly can work. I'm not sure you can get 6 bit resolution with 1% resistors, maybe close. The errors will stack up for some particular resistor grab and output combination too. Ok, still brain lazy, not wanting to think hard enough about how that works. Also I think these experts like a channel or two left to read things things temperature. Nobody needs 1000 modes. I think the issue is just getting flexibility to set the modes they want.

The point is to convert 8.4V to anything between 2.5 and 4.2 (but current regulated not voltage regulated), or to convert say 16.8V down to around 3, 6, or 9 depending on your led string, or to boost from 4.2 up to 6 for 2s led's, or... etc etc. any situation where battery and LED's are mistmatched. This is all has advantages over 4.2 1 s or similar setups because the system doesn't fall out of regulation as the batteries start to deplete. Direct drive is traditionally never in regulation, even with PWM, and linear regulation with 1s on 1s can't stay in regulation long for high power. A boost or buck setup can, for longer.

I missed this, but I answered it above. RMM replied in the MTN-MAX thread and verified this is wrong. They are true current control for 100% mode (yes with 10% ripple). It's PWM down from there.

I think FPC has carried this idea way farther than I could, so better to read his posts above. I'm just refining some things I said with good input here, most of which he already covered to a point I just can't add to:

So.. maybe this really isn't true. For a voltage controlled buck that is pwm'd after the buck I think that can be true. For a current controlled buck with built-in PWM enable like these, it's maybe not true if done well (I'm just not sure). Indeed running the output always at the higher pulses could keep the buck in its peak performace range if it has one. So I think kirba-ru has a very good point here actually. Although I'm not arguing with FPC either. If there are really bucks that stay efficient at low output then obviously that can be overcome. FPC gave us one example,but maybe it's only 90% efficient. If a tuned driver can get 98% at one current output, then that's already sacrificing 8% relatively on the buck side of things. But maybe one can do better than FPC's example.

So making this all work well probably does depend on many details of the buck setup.

I do know that in principle, fundamentally, inductive voltage transformation has the potential to do all this well where LED PWM is fundamentally limited by the LED performance curve. Actually getting there may be complicated. PWM and linear regulators are simple. Bucks,well... look at those fun equations in the Ti document.

I like FPC's idea of using BOTH analog buck contrl and PWM. This might be useful to get firefly as he says (20mA is low enough for me though) and it might be useful to take the buck only down as far as it efficiently runs and not farther. Those may be related. There might be a reason the analog control only goes so low.

Hmm..very interesting, and seems to swing back in favor of analog buck control. I thought KR was saying the opposite, but it doesn't matter.

And I think that's exactly what the MTN-MAX drivers are doing to. The "PWM" input is named "enable" as I recall.

OK, I'm not sure exactly what kind of PWM you were doing. The proposal I was making in that quote and the OP, is that any PWM used at all is only as control, a communication channel to direct the driver as to what output current it should target. My statement was in contrast to actually turning the driver on and off. I think the PWM you are referring to, is enabling and disabling the buck regulator. I think your observations are actually in support of this idea. Turning bucks on and off equals bad, right?

Linear discourages PWM’ing the EN (able) pins with their drivers, as it can cause irregular operation. So yes, you don’t want to control the LTC3454 this way. The PWM I mentioned went to the Iset2 pin, which operates the internal current feedback loop.

Flintrock, my guess is that once you are down to some, let's say, “peak drive current/power efficiency”, it would be perfectly 0K to use some PWM on/off on the driver current feedback loop (thx nickelflipper) to get even lower outputs without significant negative impact on overall efficiency. Of course, a high enough frequency PWM as to avoid disturbing or causing discomfort to those more sensitive (this may be meat for another discussion).

Cheers ^:)

Ok. Interesting. I'll have to read the manual.

@Barkuit, right, I think FPC said the same. This seems right. At some point the LED is driven low enough that you've already gained efficiency there and for most people probably once the battery lasts a day, that's good enough anyway.

So.. reading the manual:

Iset2: "LED Current Programming Pin. A resistor to ground programs the current through the LED to ILED = 3850(0.8V/RISET2)."

So this is analog input. It doesn't convert PWM to a level, right? It will just try to track up and down with the pulses, no? You were sending it pulses... or you were generating pulses, filtering them into an DC level, and inputting those into ISet1? Sorry if I'm too slow, don't worry about it. I was just trying to put the idea out there anyway (even if it already was).

If we look at the LTC3454 page 11 fig. 3d, that is PWM with a low pass filter that I used for dimming. You mentioned in the very first post this link as to what that looks like http://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/ so not quite a dc voltage, but close enough. You also see in figure 3 of the LTC3454, the other dimming methods that FPC mentioned, which is using a DAC (which is just a digitally controlled resistor divider network), or a pot (digital pot works too).

Most info posted in this thread is far away from topicstarter question.

  1. All chips that are named as special dc-dc buck convertors/drivers dont have any secrets and solve 2 problems only: they can work without mcu and they are smaller size that same circuits which consist from more known parts.
    So, using their datasheets to understand what is buck driver and why it is not so high efficincy is not a good idea. Choose most simple circuit and test how does it works (without mcu, with analog management)
  2. Input pwm and output ripples are two different parameters. You can manage some chip with pwm and have no ripples at some modes and manage chip with variable resistor and have big output ripples.
  3. Most of you have discovered russian buck drivers from e-bay. They are very suitable to make such tests and explore buck drivers. I can check output ripples, but cant measure their efficincy. We need to find a person who can do this. Current can be managed with variable resistor, so there are no input pwm what all are saying about (buck is not fet, it has other problems).

Please note I only skimmed this thread but I don’t see what the thread is even about if I am honest.

A buck converter works by sending a PWM signal to an FET, that then sends the pulse to the inductor (this is the key piece that I didn’t see mentioned in the OP), from there it goes to the LED.

The inductor is what causes the buck to work (and boost for that matter) without it you are indeed doing nothing but PWM like we normally do (although at much higher frequencies).

The key here is the inductor, an inductor is kinda like a capacitor except it resistors change and stores it’s energy as a magnetic field instead of electricity (also why it plays havoc on the circuit at high currents).

Since the inductor stores the energy from the pulse, when the pulse stops it then releases it to the LED. The controller monitors this and when current falls to a given level (usually a few % below the target) it sends another pulse that charges the inductor to a few % over the target. It repeats this process up to 2 million times a second.

The end result is a constant voltage / current (most converters can do both) with a “ripple” voltage from slight over and undercharging of the inductor.

With this setup you get efficiency’s of up to 90-95% based on the data sheet for what we are doing and it can dim down to moon mode just fine.

So I am not seeing what needs to be improved here? Sure the ripple is not great but it is a heck of a lot better then PWM and it can be minimized with circut design or the use of better buck converters.

All of that said from what I could make out of the OP, it looks like what you really want is a linear regulator, something like the OP-amp used int he LD-2. It gives a constant current that is quite stable but it is horribly inefficient as it has to burn off all the excess voltage as heat.