Electronics > Projects, Designs, and Technical Stuff
Range swichable constant current source
<< < (3/4) > >>
Zero999:
Your most recent circuit is a current sink, not source. If that's acceptable, then it's easier to implement, than a Howland pump.

How accurate does this have to be? How about using slightly lower value resistors, to account for the extra on resistance of the MOSFETs? Any errors can be calibrated out later.

A relay is the best part for this application. How much space do you have? It only needs to switch an Amp and there are plenty of small relays available which can do that.
OM222O:
the DUT will sit between the emitter of the pass element (a beefy NPN darlington pair in my current circuit) and the top of the shunt resistor, that will ensure the same current that is passing through the shunt, is passing through the DUT as well because they are in series, so current source / sink doesn't matter, it'll be practically the same (putting shunt and DUT in series).

all my components are 0.1% and I was aiming for 0.5% accuracy worst case scenario which is why I'm using 2 channels of my ADC to measure the shunt voltage and 2 of them to measure the voltage across DUT differentially. Ideally the error would be <1mA in 1A range (so again 0.1%). for switching the shunts even (especially low value of 1\$\Omega\$ for the 1A range) 10m\$\Omega\$ can be quite bad but it'll be acceptable (0.1% would be 1m\$\Omega\$ and fets with that value cost more than 2 bucks a pop). I had the idea of using a manual switch which then lead me to the same conclusion: relays ... they're depressingly worse than fets with a few hundred m\$\Omega\$s of contact resistance (or at least the 5 to 10 data sheets that I read, please send me a link to a lower value resistance if you could find one). my next best bet is using dual fets in parallel to effectively halve the RDSon. I only searched for logic level fets so I can drive them from the MCU but I try to see if I can find better RDSon fets with reasonable price , I can add a charge pump to take care of higher gate drive voltages.
OM222O:
This seems to be just the thing I was looking for, although the package is quite large ... but at least it works with 5V which saves space on charge pump circuit on the other hand so a good compromise. I can use two of these, (one for each shunt) with both of their channels in parallel to get even lower RDSon (<2m\$\Omega\$)
https://www.mouser.co.uk/datasheet/2/196/irl6297sdpbf-1227821.pdf

please let me know if you can find a better part or have a better solution for this problem. I still keep looking but this seems very promising
P.S: https://www.mouser.co.uk/datasheet/2/427/sira90dp-1114350.pdf is single channel but seems to be smaller with lower RDS, while not costing a huge amount (it's also pin compatible with the rest of SIRA series but I can't seem to find pin compatible devices for the IRL6297) this will be my choice for now.
Zero999:
Take the contact resistances for switches and relays given on data sheets, with a large pinch of salt. In reality, they'll be much better than the data sheet specifies. For example, take a switch rated to 10A, which will no doubt have a contact resistance of 100mOhm or something stupid listed on the data sheet. That would indicate a power dissipation of 10W, at full current, but in reality it will be nowhere near that, otherwise the contacts would melt!

Switch contact resistances are often measured under the worst case scenario such as a low current and immediately after the contacts have closed. Try conducting a few tests with some switches and relays you have, with a current of 1A and you'll see what I mean. You'll have to get a very good MOSFET to replace a switch. No doubt it's possible these days, but it might not be as easy as you think.

How accurate is your digital potentiometer? Probably worse than 0.1%. Scrap it and replace it with a proper DAC.

The only way you're going to get the desired level of precision and accuracy is by calibrating it and storing the scaling factors in the micro-controller's memory.

Use a reference with a slightly higher voltage than 1V, say 1.024V and a precision 1R sense resistor, which is kept in the circuit at all times. Suppose you have a 9.1R resistor in series with the 1R, to give a range of just over 100mA. Put the MOSFET in parallel with the 9.1R resistor. The MOSFET only needs to have a worst case on resistance of 24mOhm. Switch the MOSFET on for the 1A range and set the DAC output to 1V. Measure the current through the 1R resistor, with a calibrated multimeter. Note the value, which will be used to scale the current setting. For example suppose you read 0.99A, you get your software to multiply all current settings on the 1A range by 1/0.99 = 1.01 and it will give you the correct result. The MOSFET's on resistance will change depending on the temperature, but not enough to upset the calibration.
OM222O:
Thank you for your suggestions, but I have conducted tests and the digital pot seems to be just fine. it's a 257 tap pot and it will also be adjusted depending on the reading of the adc across the shunt resistor to give very accurate current values (essentially I'm using it as a really fine adjust with a much better resolution than I need while getting the accuracy from the differential reading of the ADC (ADS1115 or ADS1219, that's still not finalized but even the 16 bit 1115 seems to be holding up really well)).

Also I mentioned the pass element is a beefy NPN darlington pair and it will be switched for a maximum of a few ms, worst case 10ms! so no heat build up will occur in any of the parts as the thermal mass essentially negates it and it has time to cool down between pulses. The second mosfet I mentioned is rated for "0.00115 at VGS= 4.5 V" which is just above 1m\$\Omega\$ with a really reasonable price! that is perfect for my application as a switch but I also agree with your comment on contact resistance of relays, I will order both the fets and and a few small relays. I'll run 1A through the contact and measure the drop using a home made precision low voltage meter (essentially an ADS1219 with a precision voltage reference (ADR4520) which I have tested with a proper 6.5 digit calibrated multi meter about 5 months ago and it checked out to 1uV, so plenty good enough in this application). I'll make sure to post the results here when I've finished my testing.
My main goal is to not affect the value of the shunt resistor via whatever means of switching that is used (either mosfet , a manual switch or a relay) by more than 0.1%. I have made sure to check the power rating of all components and make them really beefy for the 1A circuit, but the rest are a lot easier to deal with (less power, higher error budgets for contact resistance, etc)
Thanks

P.S: This is essentially my current circuit: http://tinyurl.com/yaf7gln5
This will allow me to have 4 ranges for extended range of test resistors, it is really accurate and I quite like it. as I said tho, I need to do some calculations and see if it's viable to use a x10 gain with a MAX4238 with larger shunt resistors (essentially make them 10 times bigger) and buy cheaper switches/mosfets (and theoretically save battery power as well) or if that proved to be inaccurate, stick with the current design. I really appreciate your help and time and probably send you a unit when the design and prototyping is complete  ;D I honestly wasn't expecting op amp ringing and oscillations in my first design after running the simulations, but hey, practical components are different ... I'll also make sure to post an update with test results of each method and contact resistance of relays etc.
Navigation
Message Index
Next page
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod