Analog measurements are just what you do as an electronics engineer, and current sensing is quite an important part of it. From knowing how much your battery is being squeezed, to knowing how well certain circuits are performing, to the simple matter of protection, current sensing is probably one of the most critical parts of analog circuit design.
The circuit shown above is a classic example of the high side current sensor. By high side, we mean that the current is measured on the higher voltage rather than the lower voltage. While it is always better to measure current on the lower end, mainly because it is easier, it is just not practical sometimes, and the source is sometimes easier.
It is also an example of over the top measurement. Over the top means that your op-amp can actually measure voltages above what it is powered to. So for example, in the circuit above, you find that the op-amp is powered by a 3V rail, but the circuit can measure up to 44V, which is a characteristic of the op-amp. A lot of op-amps exist that can do that.
Linear Technology have published a very good applications note, which talks about all of this. Click the following link to read more, and learn a lot more!
So, I was using a similar circuit in one of my applications, and boy do they work very well. There were certain variations, and I was using a dual package, but the first thing I found was that I was getting a small offset at the bottom end of the graph.
A bit of research helped me discover the LT6015/6016/6017 package from Linear Technology. The package is quite new, in fact it was only released in 2012. This makes it brand new as far as components go, but it works very well. Being new does mean that it is a bit hard to get by, and is only available from Digikey at the moment. Not yet on Farnell or RS, which are the other top suppliers I often use. Mouser do have it, but they often end up being a bit more expensive.
So, based on what I had done before, I used a dual package LT6016. I wanted to use two high side current measurement circuits, and using a dual package seemed to be the most straight forward way of doing this.
I had not done this in the past, and had only used one package, or used a dual package with the other package not used.
So, I drew up the circuit, wired it up, and started testing it. Three circuits were made, but save one, the other two just didn’t get work. There were crazy offsets, and there was a maximum reading on the other channel even when the current was not flowing. Sometimes the current measurement did a zigzag pattern on the graph. Theories were checked, datasheets were read, but nothing was found.
What was worse was that we could see about a couple of volt less on the output then what was going in. So if you were measuring 44V, I would be getting about 40V on the output. Putting that on something that is a 3V3 ADC is definitely not a good idea!
Another niggle was that I had already run this as a simulation using LT SPICE, where it did work perfectly.
The circuit would work perfect though, if you disconnected one half of the circuit, and put it a in proper closed loop.
Working on this theory, it looked like that this kind of a configuration just doesn’t work in a dual package. When current was flowing on one measurement circuit, stray voltages appeared on the other circuit, giving false values. Fact of the matter is that since both the packages are packed inside a single package, and use the same power rail, they do affect each other.
The circuit has made me lose my sleep over it for quite a long time, and seems like this is the only reason that I can think of.
Anybody else have any ideas?