Precision Current Driver Suggestions - Page 1
Forum section: electronics / projects

author: elimenohpee
author_rank: Contributor
timestamp: April 05, 2019, 12:01:07 pm
content: I'm looking for some suggestions for a current driver I can put together or if a product exists, just buy off the shelf.I have a valve that I'm testing that I want to put together a test stand to help automate the testing. The electrical control of the valve is via 2 coils that operate from -20 - 20 mA: 0 mA the valve is off, 20 mA the valve is commanded full in one direction, -20 mA the valve is commanded full in the other direction. You bias each coil oppositely in order to drive the valve (e.g., if you put 20 mA on one coil, you drive -20 mA through the other). There are some tests that will require me to have a very fine resolution from -0.5 - 0.5 mA to more or less "calibrate" the valve, so I ideally need control of 0.01 mA increments.Right now I'm driving each coil separately using (2) breadboarded LT3092 chips and (2) DPDT relays to switch the polarity of the current. The LT3092 is great and it works, but it's not really designed to work below 0.5 mA. Schematic of my setup is attached.What I'd like to do is put both coils in series and just drive a single current, that way the exact current is biasing both coils at the same time. However, that would require a pretty high compliance voltage/resistance, so it reduces my options (so I think). Each coil is about 800 ohms (inductance unknown, but system operates at DC). I was wondering if anyone had any suggestions for topologies (precision H-bridge maybe?) with maybe a application note or datasheet to help guide the design. If there is a constant current power supply that I could buy off the shelf, if it is reasonable I'd consider that as well.Thanks!!

author: OM222O
author_rank: Frequent Contributor
timestamp: April 05, 2019, 01:02:27 pm
content: I have made a very similar circuit before, just for +- 100mA but that's easy enough to change. the resistance is not an issue, but inductance is. if you don't care about the response time, I can share my design. (the only way to improve response is to increase the driving voltage of the op amp which is usually limited to +-18V)my design used a DAC (LTC2607-I which starts at midpoint which would be 0mA in your case) followed by a difference amplifier which drove a bipolar pass element (2 fets back to back, you could use darlington pairs as well).overall design looked like this but I don't have time to customize it for your application right now.http://tinyurl.com/ybafeeahif this is what you were looking for, please share some more detail so I can customize it to your needs. cheers.Edit: I think you can simplify that circuit a lot by using one of these DACs: AD5545/AD5555That design needed the extra circuit for that custom application, but it's not needed here.

author: elimenohpee
author_rank: Contributor
timestamp: April 05, 2019, 02:19:22 pm
content: Yes, that looks great! I can use that as a starting point.Here is some rough information as I have it. I am relying on datasheets and have not actually measured these values.Coil Data (from datasheet):840 +/- 10 ohms per coil10 H max when coils are paralleled (do not have an exact value at the moment unfortunately)+/- 20 mA operating current+/- 10 VDC operating voltageHere is my rough operational requirements:Mode: Control current in 0.01 mA increments from -0.5 mA to 0.5 mAMode: Control current in 0.1 mA from -20 mA to 20 mAControl should be generic enough to allow me to interface with another source (e.g., microcontroller, DAC, signal generator, etc.)Coils will be connected in series (total series resistance of 1680 ohms)

author: OM222O
author_rank: Frequent Contributor
timestamp: April 05, 2019, 06:57:42 pm
content: 10H is massive! even at 18V supply voltage your control system will be sluggish at best ... maybe you would want to look at high voltage op amps. I think analog devices had one with 55V capability, so you can run it at +-24V. I'm still not sure how fast that would be. the most important information you missed is the reaction time. I know you wanted to operate the valves at DC which is fine, 2k isn't that large for 20mA but still approaching high voltages, however the full swing (-20 to 20) will be very slow at 10H.Honestly I'm not sure if you can even drive both coils from a single stage, as you mentioned it is approaching practical limits, especially with the DC voltages, so I think it's best to run each coil separately, you just need to create separate driving circuits for them. you can also use the 2 channels of the DAC to run the coils completely separately but I'm not sure what your application is and if you want the coils in the same position or you want to control each one individually.

author: David Hess
author_rank: Super Contributor
timestamp: April 05, 2019, 09:31:52 pm
content: 20 milliamps by 0.1 milliamps is only 200 counts so there is no need for range switching. Just make it 20 milliamps by 0.01 milliamps or better for 2000 counts and just right for a bipolar 12 bit DAC if it is actually 12 bits accurate. Check the DAC specifications carefully; many including all microcontroller 12-bit DACs do not meet this requirement. Look for an integral nonlinearity of +/-1 bit or better or a total unadjusted error of +/-1 count or better. Maybe use a 14 or 16 bit part and ignore the least significant bits.The grounded load makes things considerably simpler. Use a current sense resistor on the ground side and an operational amplifier can directly compare its voltage against a variable bipolar reference to provide a bipolar drive signal to the output amplifier.Technically a single high voltage operational amplifier (1) can do this all in one step except for the lack of being able to meet the current and power requirements. The inductive load will require limiting the bandwidth but high bandwidth would not be available anyway.If I used a high voltage operational amplifier, then I would stick a simple class-ab discrete 4 transistor diamond buffer on the output to handle the current and power requirements.The alternative might be to use a bridged output which halves the voltage requirements however this doubles the circuit complexity and makes current sensing considerably more difficult. A separate instrumentation amplifier would be needed to sense the floating current shunt.(1) 2 x 800 ohms = 1600 ohms at 20 milliamps is +/-32 volts. That is outside the range of "standard" +/-22 volt parts but well within the capability of high voltage operational amplifiers.

author: OM222O
author_rank: Frequent Contributor
timestamp: April 05, 2019, 10:41:04 pm
content: I do agree with david but I would argue that current sensing is not required in this application. all of the parameters are known (Vset and Rshunt, therefore I is also known) given the op amp does not oscillate or ring. If it was, there are ways to remedy that issue however.Have a look at the AD5545/AD5555 DAC which I mentioned before.It's bipolar and you can start it from mid scale which keeps your current at 0, therefore your valve closed or it can start at 0 which means valve is either open one way or another.Again, I would keep the coils separate and either have 2 output stages (i.e: two op amps + two bipolar pass elements as buffers + two ballast resistors) fed from the same output of the DAC to keep the coils in sync, or drive each stage from a separate DAC output. with 16 bits resolution, you will be more than fine in this application.I also agree with removing the need for range switching as your range is pretty narrow, but if that is a must in your application, the most basic way would be to have a potential divider (divide by 10) on the output of the DAC which allows you to select either voltages (x1 or x0.1) using a switch IC.

author: elimenohpee
author_rank: Contributor
timestamp: April 08, 2019, 02:25:23 pm
content: Thanks for all the ideas. This is a good starting point. I'll throw a few circuits together and see what works best. Thanks!

author: jbb
author_rank: Super Contributor
timestamp: April 08, 2019, 07:36:36 pm
content: For what it’s worth, I agree that a single range solution could be better. 20mA output current isn’t very high, so heating effects etc. shouldn’t be too bad.Analog Devices have an article on an Enhanced Howland Current Pump which could be informative as an example of where error/inaccuracy comes from. Note that this circuit is more complex because it doesn’t have a ground-referenced shunt resistor.If you’re using a function generator you can probably just use a BNC input (plus 50 Ohm termination resistor on a switch and an ESD diode). Function generators usually have multiple output ranges (listen for the click as you change the amplitude setting) so there’s no need for you to repeat it. Note that ground loops could be a problem if you need maximum accuracy.If you want to interface to an external microcontroller you could put a 16b DAC on your board and control it with I2C or SPI. These can be isolated, which avoids ground loops and can help with system accuracy.Finally, a quick maths check. I may have misunderstood... You mentioned wanting up to 20mA output and a 1680 Ohm load. That would require 33V (plus some margin) of drive voltage.