This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TPS40170 Programmable variable voltage supply. How?

Other Parts Discussed in Thread: BUF01900, TPS40170, LM317, TPS5401, TPS54040A, TPS5410, TPS40210, LM25118

I am looking for a simple way to digitally control a variable 5 to 38 volt supply for a biomedical application, with up to 0.5 amp load current.  A helpful TI customer support person suggested the buf01900, but that only goes to 18 volts.  I'm guessing that someone familiar with the TPS40170 understands my desired voltage ranges. 

I am tired of twisting a knob on an otherwise automated application of an Arduino board.  I want to have the Arduino control the output voltage directly.  Conceptually, I would like to attach a programmable potentiometer to an LM317 adjustable regulator.  However, the programmable pots I have found don't like to go above 5 volts on their terminals, and I want up to 38 volts out of the circuit driving the LM317.  The LM317 can be driven comfortably by a 1 mA source.  How does one make a power supply of up to 40 volts digitally programmable?

Thanks for any help you can give, and Season's Greetings!

  • The LM317 can't quite do that.  the maximum output voltage is 37 V.  Also there may be thermal issues at the lower voltages as if you have a 40 V input, at 0.5 A load current there will be 17.5 W dissipated in the LM317.  You can control the output voltage of a switching regulator by adjusting the lower resistor value of the set point divider.  The voltage at the output of your digital pot will only be the reference voltage.  However for current mode control, the resistor divider is in the small signal transfer function, so you will have to design a compromise compensation network to assure stability over that range.  TPS40170 is probably overkill.  it is a controller with external FETs that is usually used in higher current applications.  What is your input voltage?  I might be able to make a better recommendation.  Do you have any other requirements?  Medical equipment sometimes have other isolation requirements, etc.

  • Thanks for the reply, John.

    The power dissipation is not likely to be a problem.  At 40 volts, the load impedance is 80-100 ohms, and as the voltage goes down, the impedance goes up.  I gave the TPS40170 to comply with the forum rules, which asked for a part number at the beginning of the subject line.  I have familiarity with analog from Ham work, and with digital from Arduino, but I've never tried to marry them before.  The simpler the circuit can be, the more likely that I can handle it. 

    Can you suggest part numbers for a reasonable switching regulator and compatible digital pot, hopefully with an example circuit in one of their data sheets so that I can have an idea what else is needed?  I don't know enough about switching regulators to know which ones will let me provide a reference voltage under 5 volts to control an output approaching 40 volts.


  • Sorry, I forgot to answer your question about the input voltage, and this forum apparently doesn't allow me to edit my posts.  I am presently using a 32 volt RMS transformer and a bridge rectifier, but I am willing to change that for whatever works best with the system.  I am aware of boost and buck systems, but I don't know enough about them either to figure out how to mate a digital control to one of them.

  • To get 38 V output with a buck converter, you will need to have a regulated dc input of around 41-42 volts.  Otherwise you may need  a buck boost.  The best approach is probably a voltage mode converter as you can change the output voltage over a wide range without affecting the compensation.  If you can post your complete requirements (vin range, vout range and load currents which seen to change with VOUT) I can try to point you in the right direction.  I don't normally support this particular range of converters, but the weather is iffy here and i don't have anything better to do with my vacation time than answering forum posts ;-)

  • What do you mean, "iffy weather"?  The web tells me you guys had a White Christmas!  Albuquerque is cold but dry! :-(

    Vin: I currently have two breadboarded systems.  One uses 4 x 9 volt batteries.  The other uses a transformer, a bridge rectifier, capacitors and an LM317 controlled by a manual pot.  The load impedance is resistive and variable, depending on the "goo" that is between a pair of electrodes, but I can keep it above 100 ohms at least for now.  The impedance goes up as the voltage drops, but I've only been down to about 28 volts.  I'm ready and willing to change this to whatever the ICs want.

    Vout: I've tested the "goo" from about 28 to 36 volts.  I'd like wider, but I will take what I can get.  I'd really like to be able to go up a few volts, and down to 12 volts or so.  The main thing is that I want to be able to control the voltage with digital programming, so that I can put together a closed-loop system to process the goo.

    Iout: If it really helps on simplifying the circuit design, I can take my maximum current down to about 250 mA, but my processing times then get longer.

    Thanks again for your help, and you have my sympathies if your weather isn't what you want, but understand others are missing what you got! ;-)

  • Am I getting closer?  Program a DAC like a TLC5615CP  which provides an analog voltage output, then use it to drive either a transistor with a Vce over 40 volts, or a transconductance amplifier like a NE5517ANG which translates its input voltage to an output current.  Then use this intermediate device to control the LM317.

    Each choice is a compromise: The transistor is probably not linear enough to directly relate the digital input to the current, so I may have to do a table lookup on the software side to accurately select the output voltage.  The TC amplifier says the maximum buffer output voltage is 10 volts, which is not enough, so I may still need to buffer it somehow.

  • Hi Duke,

    For a switcher an option is the TPS54040A or TPS5401. The digital pot can be used in place of the resistor from VSENSE to ground. But as John mentioned because this is current mode control the loop response will change with the output voltage. It should be checked at the minimum and maximum output voltages. Also with 36V input it will not be able to regulate to 36V output. The output will need to be a bit less due to voltage drops in the high-side FET, inductor DCR and rectifying diode.

    Alternatively the TPS5410 is a 36V voltage mode control device with internal compensation. Varying the output voltage with a digital pot from VSENSE to ground can be done without influencing the control loop. Again the maximum output voltage will be limited by the maximum duty cycle of 87%. The maximum output voltage is approximately 87% x VIN = 87% x 36V = 31.32V.

    Also as John mentioned in order to go up a few volts you will need a different topology. Options here are SEPIC (TPS40210 works well for this) or a buck-boost (LM25118 for example).

    You might also try the Linear Regulators forum for help with the LM317. I personally haven't done any work with this device to be able to comment on your solution. Be careful of he power dissipation. The amount of power in the device will be (Vin-Vout)*Iout. This can be a lot of power at lower output voltages.

    Best Regards,

  • Actually, TPS5410 does change the loop response with output voltage even though it is VM control.  It is that way because of the way the internal voltage compensation.

  • John and Anthony,

    Thanks very much for the help.  Indeed, the TPS5410 plus a digital pot looks like a solution to my problem.  I have put together a different concept that uses other elements and gets to higher voltage and current, but I think you have elegantly and simply solved my problem as presented. 

    Thanks very much for the help.  I consider this problem solved.

    Happy New Year!