Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

60%
+1 −0
Q&A How can I fix this 4-20 mA current loop to source current that matches current sink on its input?

You are making this way too complicated. Go back to the basic problem definition, which is you want to get a digital reading of the current sunk by a current sink, with the valid range being 4-20 ...

posted 1y ago by Olin Lathrop‭

Answer
#1: Initial revision by user avatar Olin Lathrop‭ · 2023-04-08T18:37:09Z (about 1 year ago)
You are making this way too complicated.  Go back to the basic problem definition, which is you want to get a digital reading of the current sunk by a current sink, with the valid range being 4-20 mA.

It seems you chose the A/D you did because it is advertised to be able to directly read 4-20 mA current signals.  Maybe that's still a good A/D to use in this case, but not necessarily because it can read 4-20 mA directly.  Most A/Ds, including this one apparently (just looked briefly at the datasheet) actually convert voltage signals.  At worst, you'd need a <i>current to voltage converter</i>.  Fortunately these are available with a wide range of values and tolerances, known as <i>resistors</i>.

Whether you use the built-in 50 &Omega; resistor in this A/D or supply your own, you're ultimately going to read the voltage across some current sense resistor.  Figure 1 on page 4 of the A/D datasheet implies that the voltage across the built in 50 &Omega; resistor is read differentially.  That's good, which means it can float within whatever the common mode range of the A/D is.

Since this is a 24 bit A/D, and I expect you don't need anywhere near that resolution, take a look at just letting the built-in 50 &Omega; resistor generate the voltage to read.  That results in (20 mA)(50 &Omega;) = 1 V full scale.  Even if the full scale A/D input range is 5 V, that only looses 2.3 bits of range, leaving over 21 bits.  Your resolution is still over 1 part in 3,000,000, which very likely not even close to a limiting factor.

It may be as simple as using a 50 &Omega; channel of the A/D, tying the IN+ input to 5 V and the IN- input to the current sink output of the pressure regulator.  The reason I say "may" is because I haven't read thru the A/D datasheet carefully enough to know whether that violates any constraints, like common mode range.

You also have to check what the compliance range of the pressure regulator current sink output is.  Your existing circuit assumes that goes as low as 1 V.  Maybe it does, but I certainly wouldn't take that for granted.  Note that with a 50 &Omega; current sense resistor pulled up to 5 V, you are only asking for a compliance range down to 4 V.  There's a much better chance the pressure regulator can actually do that.