Messing around with (enhanced/buffered) Howland current sources - Page 1
Forum section: electronics / beginners

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 13, 2025, 11:16:24 am
content: For a project, I need a current source that can create relatively short (25µs or 50µs) current pulses of 14mA or 28mA. It has to drive them into a 50Ohm load connected to ground.I played around with LTSpice and came up with that this:Looked great, but I had my doubts that in would looks that good in reality.And indeed, this is what it looked like with an LM324 on a breadboard:Just to be sure, I replaced the Schottky diode with a direct connection (ignore the longer pulse and the cursors):Then I replaced the LM324 with an LT1013:So, I gave the enhanced buffered Howland current source a try:Again, the simulation looked great and the actual signal with a 50Ohm load looked at least more consistent:Now, I figure that the bandwidth of the LM324 is not sufficient to get better edges. I would have liked to stay with cheap DIP ICs for this project, so my first question would be:What would be a relatively cheap LM324/LM358 replacement with better bandwidth, preferably as DIP?However, there is a more pressing problem with the enhanced buffer circuit: it's not really working for too low load resistors. I.e. with the original circuit, I could measure the current to ground with a multimeter (instead of the load resistor) and the current limitation worked perfectly fine. With the enhanced buffered circuit, the very same scenario caused my power supply to go into current limitation (which I set to 40mA). So, while the current limitation worked for a 50Ohm or even a 10Ohm load, it stopped working for smaller load resistances.I'd assume this as well could be a limitation of the LM324 or maybe it's caused by the resistance values I selected, but obviously, it kinda ruins the whole idea of a current source, if the current limitation doesn't work when the output is shorted to ground.So my second question would be:Is there a way to make the enhanced buffered circuit more stable, i.e. how to get it to work for loads close to 0Ohm?

author: Vovk_Z
author_rank: Super Contributor
timestamp: April 14, 2025, 07:27:29 pm
content: Yu may look at other popular jellybeen (audio) opamps. It's hard to find something more slow than LM358, so anything else have good chanses to be faster.

author: Benta
author_rank: Super Contributor
timestamp: April 14, 2025, 07:40:42 pm
content: How precise does the current need to be?

author: UnijunctionTransistor
author_rank: Frequent Contributor
timestamp: April 14, 2025, 08:15:41 pm
content: Cheap, faster than the molasses LM358, DIP, ubiquitous?Try a TL072. Be aware that its CMR doesn’t include the negative rail. Typical offsets may be higher.The OPA2990 is a better and pricer alternative, but I don’t know if it is still offered as DIP.Another question; what are your supply rails? There are a few good alternatives if you’re willing to constrain the supply to +/-5 volts.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 15, 2025, 03:43:43 pm
content: Quote from: Benta on April 14, 2025, 07:40:42 pmNot very. I.e. they could vary 1 or 2 mA without causing issues.Quote from: UnijunctionTransistor on April 14, 2025, 08:15:41 pmI hoped for singly supply, ideally 5V.From looking at the TL072's datasheet I'm confused if it supports single supply or not. According to a TI datasheet, it does, according to an ST datasheet, it doesn't.But anyway, thanks for suggesting these, I will have a closer look.I also considered the MCP602/604 but I'm not sure if they can deliver 28mA continuously.Anyway, letting the bandwidth issues aside, what worries me most is that the enhanced buffered current source stops working with the LM324 if the load resistor becomes too low. And I still don't get which parameter of the LM324 makes the circuit fail. And as long as I don't know that, picking a better OP is somewhat difficult.

author: UnijunctionTransistor
author_rank: Frequent Contributor
timestamp: April 15, 2025, 05:48:06 pm
content: Now that I understand your power supply constraints, a TL072 is no longer the best choice.A TLC2272 would be better.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 15, 2025, 07:01:19 pm
content: BTW: the main reason I want a DIP IC is that I feel I need to test this on a breadboard first to be sure it'll work.However, this also means that the DIP version needs to be available for a sensible price for 1 or 2 ICS.While the TLC2272/TLC2274 is available as DIP and the prices are OKish at Mouser, ordering from there only makes sense for me for larger orders (due to >=20€ P&P).And unfortunately, most of the interesting parts are absurdly priced when buying from eBay and the like. Like 11€ for one TLC2274.Therefore, I think I'll try the MCP602/604 first even though they might not be able to deliver the output current.Depending on the results, I might try to order the OPA2991/OPA4991 or TLV9152/TLV9154 as SOIC and solder them on a DIP adapter for prototyping.But I begin to fear that this whole (enhanced buffered) Howland current source thing doesn't work that well in reality.

author: eblc1388
author_rank: Frequent Contributor
timestamp: April 16, 2025, 10:23:19 am
content: Quote from: 0xdeadbeef on April 13, 2025, 11:16:24 amI have simulated your circuit in LTspice and a near zero ohm load works correctly. Therefore, you could have been testing the current source wrongly.Ideally the loading on the current source(i.e. your multimeter) should be connected to the current source output BEFORE you commands the current source to output the rated current.If you open circuits a working current source, and then apply a load(in your case a near short circuit), the current source will outputs an uncontrolled high current initially and then gradually reduces it to the desire level. How fast can the current source reacts to this depends on the circuit design and property of the Op amp. This brief high current period could trigger the over-current protection of the power supply.So the proper way to do the testing should be:1. connects the multimeter as load2. set power supply current limit and power up the current source with no input3. provides input and read output current

author: ivo
author_rank: Regular Contributor
timestamp: April 16, 2025, 11:18:38 am
content: OPA2140would do a good job for this. Tiny input bias current, Voffset is close to chopper levels, the slew rate is 40x faster than your LM324, very low noise.I have bought the spring-tension SOIC to DIP adapters. Press down the latch to open, Pop your chip in, nudge it to line it up, then let it go, and you have now a DIP-8 part instead of a SOIC-8 for temporary work.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 16, 2025, 06:01:00 pm
content: Quote from: eblc1388 on April 16, 2025, 10:23:19 amIf you read my postings, you'd know that I also simulated in LTSpice, and that the simulation is super simplified and doesn't match the real thing at all.The models seem to ignore the OP's voltage supply, bandwidth and other important things completely.Quote from: ivo on April 16, 2025, 11:18:38 amBut it's much more expensive than the OPA2991/OPA4991 and TLV9152/TLV9154.Side note: I tested the MPC604 today. This is the result for k=47 and R0=5Ohm with 25µs 5V pulses and 6V supply (theoretical current should be 5V/47/5Ohm = 0.0213A):Signal looks better, but expected voltage level of 1.065V (50Ohm*0.0213A) is not reached.At short circuit, the current was limited to ~16.4mA. This matches the voltage level 0.82V seen in the scope screenshot.-> as suspected, the MCP604 is not able to deliver the required current levels and due to it's maximum supply voltage of 6V, this can't be improved by cranking up the voltage.-> next would be the TLV9152/TLV9154. It's faster than the MCP602/604 (20V/µs instead of 10V/µs), has more than twice the output current capability (75mA instead of 30mA) and works up to 16V. Also, it's quite cheap.Let's just hope that this will work as expected.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 26, 2025, 05:58:30 pm
content: Tested with TLV9154 today- The good news is that the current source is stable (i.e. limits to expected current when output shorted to ground). Also 27mA can be easily reached with a supply voltage of 5V. Increasing the supply voltage further had no effect whatsoever.The not so good news is that the edges haven't really improved with R0=10OhmI tried to reduce R0 to 5Ohm be doubling the factor between the other resistors from 18 to 36 but this made things worseSo I decided to try the other direction and increased R0 to 20Ohm (factor is 0 now, so the current is lowered to 25mA):That looks OKish. I.e. at V, the 25µs signal is shortened to around 21µs which is not greate, but better that previous trials.I figure that at least in a certain range, a smaller factor between the resistors makes the edges sharper.I might try even higher output resistors, but on the breadboard, this is getting annoying since I only have a limited collection of through-hole resistors.Still I wonder if increasing R0 even further, to e.g. 50Ohm would make the edges steeper or not.Another Test with R0=47Ohm (k=4.7 -> 2mA)Different current and thus voltage level. A bit better, certainly not worse.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: April 26, 2025, 06:56:55 pm
content: Indeed my main concern was the instability at short to ground of the enhanced current source when using the LM324. With the TLV9154, the short circuit to ground is working as expected and also it can deliver 27mA at 5V without problems. So this part was a success. The shortened pulses might not be a real problem, i.e. worst case I could make the control pulses a bit longer tho compensate for the lack of steepness.Admittedly, it's not ideal and if I had not been fooled by the steep edges shown by LTSpice, I might have chosen another approach from the beginning, but now I already ordered the PCBs and will give this approach a try.Actually, I need to create only one signal with different current levels, so I initially thought of switching between currents sources. But I kinda feared that the switches could add considerable voltage drop and also (at least for the prototype), I have a maximum of four control outputs and figured it would be easier to "merge" the signals with different current levels instead of switching between current sources at the right time.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: May 11, 2025, 07:10:19 pm
content: Another small update: I received the PCBs some time ago and built a prototype that was working sufficiently:I noticed though that I actually need the third current source since the SW reading the signal checks if the "zero" levels are actually around 0.7mA (~0.35V @ 50 Ohm). I did a workaround to misuse the 2nd 14mA current source (which I added when I was not sure yet whether I would need two or three control signals) and created a permanent ~6mA current by permanently applying 2.1V to its input.Then I build a prototype with a TS5A23157 dual analog switch. The idea was to use the first analog switch to switch between the 14mA and 28mA current sources and the 2nd one to select between the output of the 1st switch and 7mA. Unfortunately, the signal got much worse:When switching current sources, the signal raises very fast, but shows extreme overshoots, then it drops back and rises about as fast as my original prototype. The falling edges look much worse.I tried to filter the glitches with capacitors and ferrite beads, but this didn't really work the way I hoped it would. I guess I'd need a fitting inductance there, but I kinda fear that would will the idea of steep edges and wouldn't help with the falling edges either.So, I guess I keep the original idea of switching current sources. Just one more redesign to set the third current source to a proper 7mA level using a shunt regulator TL431 to create the a 5V out of a (given) 10V supply.

author: Zero999
author_rank: Super Contributor
timestamp: May 12, 2025, 09:48:22 am
content: Quote from: 0xdeadbeef on April 16, 2025, 06:01:00 pmWhich model did you use? Many models are inadequate. For example, the National Semiconductor model LM358/324 doesn't simulate crossover distortion. I recommend TI's LM358 model. Here's a post I made which shows the difference.https://www.eevblog.com/forum/eda/ltspice24-importing-the-a_bordodynovs-lib-and-examples/msg5773287/#msg5773287Quote from: 0xdeadbeef on May 11, 2025, 07:10:19 pmGood, I'm glad you got it working, but I'm curious as to why you chose Howland? It's good because it can both sink and source, but as you only need source, it probably would have been bettter to just use a P-FET and op-amp.

author: 0xdeadbeef
author_rank: Super Contributor
timestamp: May 13, 2025, 07:37:05 am
content: Quote from: Zero999 on May 12, 2025, 09:48:22 amIf it would have been only the (external) LM358 model, I wouldn't be concerned. But I also tried with the LT1013, i.e. a built-in LT specific device and the results were exactly the same in the simulation, while in the real world, the results with the LT1013 were even worse. Last time I tried, TI models only worked with their TINA tool which seems to habe been abandoned >10 years ago in its free form.Quote from: Zero999 on May 12, 2025, 09:48:22 amThere is no real reason other than good documentation and the relatively easy setting of the current value. Also, since opamps come in dual and quad packages, using two opamps for one current source isn't much of a drawback compared to one opamp and one P-FET. Also, at least for normal P-FETs with a body diode, I still would have needed the diodes when combining three current sources.

author: Zero999
author_rank: Super Contributor
timestamp: May 13, 2025, 09:42:53 am
content: Quote from: 0xdeadbeef on May 13, 2025, 07:37:05 amI've had mixed resuts from TI models. Sometimes they've very good, such as the LM358, as mentioned above, but they often contain stupid errors which prevent them from working, or give inaccurate results. I've not tried comparing the LT1013 with the real thing.QuoteA big disadvantage of a Howland is it requires very well-matched resistors for good current regulation. If the ratio of R1:R2 isn't matched to that of R14:R15 in your design, then the output impedance will be low, giving poor regulation, a current source should ideally have an infinite output impedance.I was thinking J-FET, but the body diode doesn't stop you from combining current sources with diodes, since it's reverse biased because the drain voltage is always higher than the source.EDIT:Refer to the simulation.The current is set to 2.5mA, for simplicitiy's sake. When R2 = R4, there's hardly any change in the output current, when the load resistor is changed from 5m to 5k, yet when an error of 1k, just 1%, is introduced to R2, then the output current changes by 0.1187mA, an error of 4.75%.The red trace is the one with the 1% error.