TL072 LED Driver stability issues - Page 1
Forum section: electronics / projects

author: jordannedev
author_rank: Contributor
timestamp: June 24, 2021, 10:08:40 am
content: Hi team,I’m currently designing op amp based 16bit LED driver for controlling arrays of 14 high CRI LEDs.I build the schematic shown below on pcb, but I have some issues with stability. I try a lot of different values for the capacitor and resistor in the feedback circuit. The last that I try was C1 = 47n, R7 = 100R, R8 = 10k. With those values the ouput current is more or less stable. The circuit is very slow and don’t react fast on changes of set current. Always need a time to settle on the set point. With small cap in he control loop the circuit is very unstable and start to oscillating. The simulation results are very unclear. The control source is 16bit DAC. From the input side for sure there are no problems.If you have suggestions how to improve it please share.Thanks in advance.Best regards.Yordan Nedev

author: magic
author_rank: Super Contributor
timestamp: June 24, 2021, 10:21:47 am
content: The second opamp may introduce some feedback delay at high frequencies, particularly when working at high gain, and it isn't really necessary. Just connect R8 straight to R6 and divide the input signal appropriately. If you think division reduces precision, think again - that's exactly what you are doing with R5/R4Swapping TL072 for a single supply opamp like LM358 or TS272 would allow elimination of -5V.BTW, if it's JFET, you don't need to worry about matching source impedances too much. Bias current is next to nothing.

author: jordannedev
author_rank: Contributor
timestamp: June 24, 2021, 12:43:23 pm
content: From this point of view you are correct. I put this diff amp because I was thinking that if I put resistor with higher value the power dissipation in the sense resistor will increase and with that the error in the output current will increase. I made one simple simulation with LM358 and the results looks much better. I think 10R/0.6W/50ppm TH resistor will be good in this case.

author: Kleinstein
author_rank: Super Contributor
timestamp: June 24, 2021, 01:04:31 pm
content: To get less problem with the retun ground, one may want a divider for the control signal, using the same ground point as the current sense resistor. With an extra resistor for the feedback path one could get even closer to a differential input.60 mA with 10 ohms would be 36 mW worst case. This should be still OK. There are also some errors from the base current and the offset of the OP. It may be acceptable, but it would not be 16 bit performance all the way.

author: ajb
author_rank: Super Contributor
timestamp: June 24, 2021, 04:43:45 pm
content: Try adding an AC feedback path from the top of the sense resistor to the inverting input of OP1. The existing existing AC path through C1 from OP1's output to its inverting input will effectively reduce the slew rate of OP1's output, which isn't what you really care most about here. You care about the stability of the current controlled by Q1, which is reflected in the voltage at the top of the sense resistor, so you need to account for that in compensating the control loop. Moving the dominant compensation path to the sense resistor (reducing or eliminating the shorter path from OP1 output to input) allows OP1 to slew Q1's base current faster which will allow faster response to supply/load variations or setpoint changes while still stabilizing the overall current loop. You may still want the shorter AC path, especially if you have a really feisty op amp and/or a lot of capacitance on its output, but the path from the sense resistor is probably the one you should focus on first.When it comes time to build this circuit for real, it would be a good idea to include series R+C *both* from the output of OP1 *and* from the top of the sense resistor back to OP1's inverting input. Leave the DC path from the top of the sense resistor to the inverting input as well, but keep a resistor in that path. That will give you a lot of flexibility in how you compensate the loop, and if you don't need all of those parts in the end, well, empty footprints are free and zero ohm resistors are cheap.You might also want to simulate against a more accurate load, a plain resistor is a poor reflection of how an LED behaves electrically. A low side linear constant current topology like this is less sensitive to that than other types of drivers, and it may not make a huge difference unless you ensure your other components--and any critical parasitics--are modeled accurately, but it won't hurt to have a better load model.

author: jordannedev
author_rank: Contributor
timestamp: June 24, 2021, 06:06:34 pm
content: Thanks for the reply.I try one more time with TL072. The results I think are not bad. I will have a lot of issues if I use single power supply opamp because I can't start from "zero". My DAC is MAX5134 and according to the datasheet: "INL is the deviation of the measured transfer function from a best fit straight line drawn between two codes. For the MAX5134/MAX5136, this best fit line is a line drawn between codes 3072 and 64,512 of the transfer function, once offset and gain errors have been nullified." This mean that my input voltage range is from about 0.114V to 2.40V. I already test one circuit with opamp to make this 0.114-2.4V to 0 - 600mV. With cheap single power supply opamps the input offset will make me a lot of troubles thats why I will use dual power supply.

author: magic
author_rank: Super Contributor
timestamp: June 24, 2021, 10:06:08 pm
content: How much speed and accuracy do you really need and are you sure you understand Kleinstein's remark about base current?TL072 is not exactly famous for DC accuracy.

author: jordannedev
author_rank: Contributor
timestamp: June 24, 2021, 10:39:02 pm
content: I understand the remark about the base current and I know that TL072 is not very good opamp but I need to drive 1344 LEDs with 16bit accuracy cost efficiently.The budget is tight and I can't buy expensive led driver IC's. If you have something in your mind for some better opamp with similar price please share.

author: Someone
author_rank: Super Contributor
timestamp: June 25, 2021, 02:19:45 am
content: Quote from: magic on June 24, 2021, 10:06:08 pmNot known for its linearity either! 16bits is already around its limit on a 5V span.

author: Kleinstein
author_rank: Super Contributor
timestamp: June 25, 2021, 08:06:51 am
content: The linearity of LEDs is limited and the LEDs also show individual variations in effeiciency. So there are few cases that really need very high accuracy. It can still help to have a low offset, as one may want to have good control at around 1% of the power - more like a log scale.The TL072 has poor DC accuracy (offset). Already an LM358 should be slightly better precision. There are modern CMOS OP with better DC performance, e.g. MCP6002 and many similar alternatives. With many channels it also helps to have low power consumption.A 16 bit DAC is also quite expensive. If the high resolution is only needed for a more log scale, one may consider switching the range at the shunt side. So 2 ranges and maybe 8-10 Bits.There many still be affordabel speical LED drivers for multiple channels, e.g. to drive LED displays.

author: jordannedev
author_rank: Contributor
timestamp: June 25, 2021, 08:33:10 am
content: MCP6002 is on acceptable price. I will order 2-3pcs for test. The input offset is a little bit high 4.5mV. The device that I'm designing now is LED panel for testing cell phones camera's on different light temperature and intensity. The customer needs high accuracy and a lot of steps especially on low level of intensity. That's why I need to start from near zero current. The driver will be 8 channels by 12 led arrays and in each array there will be 14 leds - total 1344 leds.

author: Kleinstein
author_rank: Super Contributor
timestamp: June 25, 2021, 09:54:17 am
content: With the give price of the DAC one could use even better OPs like OP07 or OPA2202. It would not make that much sense to combine a relatively expensive DAC with a poor OP. The relevant voltage is more like 0.5-1 V as the shunt voltage, not 5 V. The large LED array may need calibration anyway, as the individual LEDs will be different. So I am not so sure the whole setup is good. For a small quantity (8 channels and maybe a few units) the BOM costs should no be that critical.To avoid the uncertainty with the base current (the transistor gain ususally goes up a little with temperature) one could consider MOSFETs instead of the BJTs. The larger problem is the LED temperature anyway. The LEDs tend to loose efficiency when they get warm. Also the LEDs are usually slightly nonlinear, having less efficiency at high power and possibly (unit dependent) also less efficiency in the very low power range.

author: Zero999
author_rank: Super Contributor
timestamp: June 25, 2021, 09:55:14 am
content: The MCP6002 has a similar offset to the much cheaper LM358.The MCP6V62 has a much lower offset voltage and power consumption, but much more expensive.As you've got so many LEDs, you should use quad, rather than dual op-amps to cut down on components and cost.

author: jordannedev
author_rank: Contributor
timestamp: June 25, 2021, 10:11:33 am
content: For calibration I will use APDS9250https://www.broadcom.com/products/optical-sensors/ambient-light-photo-sensors/apds-9250. The sensor works very good and have up to 20 bit resolution. I have many ideas how to use this in the hole picture. You are correct for the BJT's. I'm also thinking about that. Everything depends what MOSFET's I will find and on what price.

author: graybeard
author_rank: Frequent Contributor
timestamp: June 25, 2021, 08:39:52 pm
content: The sense op-amp is introducing too much phase shift. It probably needs to be a much higher bandwidth (10X or more) opamp than the driver.You should use a much simpler circuit. The input should go directly into the non-inverting input. The output of the opamp directly into the base of a npn. The emitter of the npn should connect though a current sense resistor to ground and the inverting input of the opamp. The npn collector drives the leds.My opamp of choice would be ats921,ts922. or ats924.

author: jordannedev
author_rank: Contributor
timestamp: July 30, 2021, 07:14:40 am
content: Hi again... I have manage to improve the circuit and now works very stable.But now I have other problem. The current in the individual arrays is not the same. I try different techniques for current balancing with resistors but without positive result. If you have some experience or ideas how to improve the current balancing please share.In the attachment is the current schematic design.

author: Zero999
author_rank: Super Contributor
timestamp: July 30, 2021, 08:08:06 am
content: Quote from: jordannedev on July 30, 2021, 07:14:40 amWhat's the difference in current between channels?60mV is a very low reference voltage. Consider increasing it, along with the sense resistors. The offset voltage of the LM324 can be as high as 3mV. The resistances seen at the inputs aren't balanced. R6 to R9 should be equal to R19 to R22.If the current through all of the LEDs needs to be the same, then why not use a higher voltage power supply and connect them all in series? The op-amp and control circuitary can still be all powered off 5V. You could save a lot of parts by adding a boost converter and powering the arrays off 48V.

author: jordannedev
author_rank: Contributor
timestamp: July 30, 2021, 08:26:49 am
content: I put 1R resistor on order to reduce the power dissipation in the sense resistor. I will try with 10R/0.6W/1% resistor. You are correct for the offset, maybe this is the problem. Because 60mV in really is very low offset and even 2-3mV of OPA input offset will give a huge difference in in the output current.

author: Terry Bites
author_rank: Super Contributor
timestamp: July 30, 2021, 11:44:56 am
content: LM3466 anyone?

author: Zero999
author_rank: Super Contributor
timestamp: July 30, 2021, 01:51:59 pm
content: The circuit can be simplified greatly. As I said before, use a boost converter to get 48V for all 14 LEDs in series, then the current through all of them will be identical and only one op-amp and transistor is needed for each aray.

author: jordannedev
author_rank: Contributor
timestamp: July 30, 2021, 03:17:23 pm
content: I change the value of the sense resistor to 10R and the current difference in the individual arrays is about 1% full range