Gas station without pumps

2014 January 31

Wire loop vs. twisted pair try 1

Filed under: Circuits course — gasstationwithoutpumps @ 21:54
Tags: , , , ,

I was thinking about things we might do in the first lab day for the Applied Circuits course next quarter, now that I have 2 lab sessions a week.  The first, obvious thing is to unpack the lab kits and identify the different components, labeling the capacitor zip locks with values of the contained capacitors, and learning to use the wire strippers, the power supplies, and the voltmeters.

I’m thinking that I should have the students make a 3′ red-black twisted pair and pack it with their parts, so that they don’t try getting new power wires every week.

One experiment I was considering having them do is to look at the AC signal from a large loop of wire and from twisted pair, to see the difference in noise pickup.  I tried doing this at home today, with rather disappointing results.  The large loop did not pick up more 60Hz noise than the twisted pair when viewed on either my Kikusui oscilloscope or by Bitscope USB oscilloscope.  In fact I couldn’t see any noise with either one.

I tried adding my 1500-gain EKG amplifier as a front end, and then I could see about 60μV noise, but that did not change whether I used a long loop, a twisted pair, or a very short loop between the instrumentation amp inputs.

I first tried looking at how much noise there was from the Bitscope with the DP01 active probe using AC coupling:

Looking at shorted inputs  for the AC-coupled DP01 active probe in its high gain mode.  This is 2mV/division, 100µs/division, "macro" mode.  The noise is a couple of mV.

Looking at shorted inputs for the AC-coupled DP01 active probe in its high gain mode. This is 2mV/division, 100µs/division, “macro” mode. The noise is a couple of mV, about the same as the noise level without the DP01, but the resolution is much better with the DP01.  The high-speed trace here is to show the component of the noise that is around 30.8kHz, which is about as big as the 60Hz component.  The 30.8kHz noise is most likely from the USB power supply into the Bitscope.  The Bitscope does not appear to have as good power-supply noise rejection as one might want.

I then hooked up the EKG amplifier board (which should have a gain around 1508) using a separate power supply, and looked at the noise on the Vref signal (which is just buffered from a voltage divider on the power supply).

At 2mV per division and 10ms per division, we can see a little 60Hz noise added to the high-frequency noise of the Bitscope, but the noise is still only 2–3mV, which would be an input-referenced noise of about 2µV given the amplifier gain around 1500.

At 2mV per division and 10ms per division, we can see a little 60Hz noise added to the high-frequency noise of the Bitscope, but the noise is still only 2–3mV, which would be an input-referenced noise of about 2µV given the amplifier gain around 1500.

The noise on Vref is not much more than noise inherent to the Bitscope and is very similar to the noise I see looking just at the output of the power supply without the EKG attached.
Next I looked at the output of the EKG, with both inputs shorted to Vref.

This is now 40mv/division and 10ms/division looking at the output of the EKG amplifer with both inputs shorted to Vref.  The output noise is around 90mV, so the input-referenced noise is around 60µV.

This is now 40mv/division and 10ms/division looking at the output of the EKG amplifer with both inputs shorted to Vref. The output noise is around 90mV, so the input-referenced noise is around 60µV.

Now we see a signal that is not just Bitscope or power supply noise, and have a noise floor for looking at signals at the input of the EKG amplifier.

Unfortunately, replacing the short with a large loop of wire does not appreciably change the signal, but if I connect the two EKG inputs to Vref via separate 2.2MΩ resistors, I get a large output:

200mV/division, 10msec/division.  Inputs of EKG amplifier separately connected to Vref via 2.2MΩ resistors.  This signal is about 1.04V peak-to-peak (so the input is about 690µV.

200mV/division, 10msec/division. Inputs of EKG amplifier separately connected to Vref via 2.2MΩ resistors. This signal is about 1.04V peak-to-peak (so the input is about 690µV).

The output can be changed substantially by putting my hand near the resistors—the 60Hz noise appears to be capacitively coupled into the amplifier. I can reduce the peak-to-peak voltage to about 500mV  (that is around 300µV at the input) and make it have a larger 120Hz that is almost 10dB larger than the 60Hz component, , just by moving my finger around near the resistors. I can also raise the signal until the EKG amplifier is swinging rail-to-rail (at least 3mV at the input).

So I don’t have a demonstration circuit for electromagnetic pickup here, but I do have one for capacitive coupling.  To detect currents induced in a loop, I probably need a transimpedance amplifier to detect small currents, rather than an instrumentation amplifier to detect small voltages .  I’ll leave that for a separate post.

2013 July 10

Some failed designs

For the past couple of days I’ve been exploring variations on the Blinky EKG project, looking at alternative approaches.

For example, I looked at the possibility of eliminating the most expensive part (the instrumentation amp), and decided that building my own instrumentation amp out of op amps and discrete resistors was unlikely to be reliable.  I discovered (after doing calculations for 2-op-amp and 3-op-amp designs) that 1% tolerance on the resistors would produce poor common-mode rejection. In Common-mode noise in EKG, I reported measurements of the common-mode noise with a fairly short twisted-pair connection to the EKG electrodes (close to a best-case scenario).  I concluded that the common-mode noise was way too large for using unmatched resistors to be a reasonable design, and using an integrated instrumentation amp is still a good choice.

Yesterday,  I tried turning the question around? Could I eliminate the op-amp chip?  Currently, I’m using the op amp for two things: to provide a unity-gain buffer to make the reference voltage source between the power rails, and to do second-stage amplification after a high-pass filter removes the DC offset. To eliminate the op-amp chip, I need to replace both these functions.

Replacing the unity-gain buffer seems fairly easy—I could use a low-drop-out linear regulator to generate the reference voltage instead of a voltage divider and unity-gain buffer, which would be somewhat smaller and cheaper (11¢ rather than 25¢ in 100s).  I didn’t have an LDO linear regulator at home, so I tried using a TL431ILP voltage reference instead.  Unfortunately, it provides very little current, and was unable to maintain the desired voltage when hooked up to the reference voltage input of the instrumentation amp.  I believe that a part like the LM317L would work fine, though, and I may want to test that at some point.

Removing the second-stage amplifier is more problematic.  I can set the gain of the instrumentation amp up to 2000 or 2500 easily, but any DC component in the input differential signal results in saturating the amplifier (with a 6v output range, and a 1mV AC signal, we’d need the DC bias to be less than 1mV also to avoid hitting the power rails).  I tried putting high-pass filters in front of the instrumentation amp, but with the long time constants needed to avoid filtering out the EKG signal, the filters never settled to within 1mV of each other, and the instrumentation amplifier always saturated.

So I need to keep the first-stage gain small enough to avoid saturation, which means I need a second-stage amplifier.  I could use a single op amp for the second stage and a low-drop-out regulator for the reference voltage, which would produce a cleaner output signal (since my voltage-divider-plus-unity-gain-buffer reference introduces noise from the power lines).  The MCP6001 single op amp is only 18¢ in 100s (rather than 25¢ for the MCP6002 dual op-amp), but the MCP6001 is only available as a surface-mount component, which I think is inappropriate for a first soldering project.  The MCP6001 + LM317L would cost about 4¢ more than the MCP6002.

I considered redesigning the Blinky EKG to use the LM317L voltage regulator and the MCP6002, even though half the MCP6002 would be unused, but the LM317L needs a 1.5mA load to maintain regulation, and that seems like a lot for a battery operated device—more than the op amp or the instrumentation amp use (though less than the LED when it is lit).  Even using a TL431ILPR voltage reference (10¢ in 100s) and the unity-gain buffer would only need 1mA, and would save one resistor.  There are lower-current voltage references, like the LM385, but they cost a lot more (42¢ in 100s).

The non-rechargeable CR2032 batteries I’ve been using for the Blinky EKG have about a 225 mAh capacity, and cost about 19¢ in 100s (but the design needs 2, so 39¢).  I could probably get about a 100-hour life with the present Blinky EKG design—I need to measure the current and the duty cycle of the LED to get a better estimate.

The Blinky EKG weighs about 20g (not counting the wires to the electrodes), which is a bit heavy for a pendant or brooch. Most of the weight is in the batteries, but a lighter battery would give up a lot of running time.   The smaller batteries also cost a lot more, probably because Digikey only buys them in quantities around 10,000 rather than in the millions. (From other suppliers CR2032 batteries cost about 60¢ in 100s, not under 20¢).

It has been good to fool around with the Blinky EKG design, as it has gotten me to think a bit about design issues other than the first can-I-get-it-to-work one.  I rarely get my students past that point in their thinking, and I’m not sure how I would do so, as there is always so much time pressure to cover new stuff, that they get very little time to tinker with designs.

 

2013 July 8

Common-mode noise in EKG

Filed under: Circuits course — gasstationwithoutpumps @ 18:00
Tags: , , , , , , , ,

In 2-op-amp instrumentation amp, I said

I’ll have to make some measurements later this week to see how large the common-mode noise on the EKG signals really is. Of course, it is likely to be highly variable, depending on the electrodes and the wiring to them, but ball-park estimates would be useful.

If the AC common-mode voltage is ±200mV and we have worst-case resistor values, then we would have a ±8mV common-mode output from the instrumentation amp. With the lowest differential amplification (6.6 at Rgain=∞), a 1mV EKG signal would be smaller than the common-mode noise. Such a large common-mode voltage would easily justify the expense of the instrumentation amp chip.  (Note: large DC common-mode voltages don’t matter, as the DC-blocking capacitor I used after the instrumentation amp can eliminate them.)

If the AC common-mode voltage is only ±1 mV, then the Blinky EKG could probably work even with very poor common-mode rejection in the instrumentation amp, and building it out of op amps and discrete resistors is feasible.

So today I tried measuring the common-mode signal.  As it turns out, I had built an EKG amplifier on the protoboard that had a split Rgain resistor (two 12kΩ resistors in series).  The node between the 2 resistors should be at (Vp+Vm)/2, the common-mode voltage.  That node was fed to a unity-gain buffer, so I tried measuring the AC common-mode voltage.

I did this with two different tools: my Fluke 8060A multimeter (which measures RMS voltage) and my BitScope Pocket Analyzer, which can measure peak-to-peak voltage.  With the multimeter, I saw about 20–35 mV RMS, and with the BitScope I saw 90–130 mV peak-to-peak (depending on where my arms were relative to the wires to the electrodes).

Trace of common mode noise recorded by the BitScope Pocket Analyzer, at 20mV/division.  Sorry about the black background—the manufacturers are promising a white background as an option in some future release of the software.  Maybe they'll add some labels for the x and y tick marks at the same time!

Trace of common mode noise recorded by the BitScope Pocket Analyzer, at 20mV/division. The fundamental frequency of the noise is 60Hz.
Sorry about the black background—the manufacturers are promising a white background as an option in some future release of the software. Maybe they’ll add some labels for the x and y tick marks at the same time!

If I take the leads off the electrodes and clip them all together, then the common-mode noise drops below the level that the BitScope can measure (its noise floor is about 10mV). The multimeter also has trouble, reporting values from 0.05mV to 1.5mV. If I put a 3.3MΩ resistor between the two signal leads, and connect one of them to the Vref lead, then the multimeter reports about 13–20 mV RMS and the BitScope around 80–90 mV peak-to-peak.

The common-mode problems are definitely coming from the wiring to the electrodes.  With 130mV peak-to-peak common-mode voltage and a common-mode gain of 0.02 or 0.04, we’d have 2.6–5.2 mV of common-mode noise at the output of an instrumentation amp made with discrete resistors and op amps.  If the gain of the amplifier were around 6.6, we’d have a peak-to-peak signal of about 6.6 mV for the EKG signal, and the details of that signal would be buried in common-mode noise.

If we got lucky with the resistor values and they matched better than the specs claim (which is actually fairly likely), then the Blinky EKG would sort-of work with discrete op amps—as long as the 60Hz noise is no worse that what I saw.  Many people are likely to be in electromagnetically noisier locations than my room, so the common-mode noise is likely to be much higher sometimes, and even with lucky matching of the resistors the common-mode signal is likely to swamp the real signal.

Thus I have confirmed that an integrated instrumentation amp is needed for the Blinky EKG, and there is no point trying to design one using discrete resistors and op amps.

2013 July 7

2-op-amp instrumentation amp

Filed under: Circuits course — gasstationwithoutpumps @ 20:50
Tags: , , , , , , , ,

Last summer, I tried building an instrumentation amp using the MCP6002 op amps and external discrete resistors, and ended up with an amplifier that had terrible common-mode rejection, which is why I decided to use the INA126P instrumentation amp chip for the Blinky EKG boards and for the instrumentation amp protoboards.

I think I’d like to revisit that idea though, to see if I can make a cheaper Blinky EKG.  If I put together a Blinky EKG kit with the current design, the parts would cost about $9.30 (buying quantities of 100).  The mist expensive single part is the instrumentation amp at $2.44.  If I could get the 2-op amp instrumentation amp to work using discrete components, I might be able to save most of that.  Replacing them MCP6002 dual op amp with an MCP6004 quad op amp and 4 more resistors would cost about 22¢ rather than $2.44, bring the parts cost down to around $7.07.

I could also reduce the price by using surface-mount devices (SMDs) instead of through-hole components. An instrumentation amp like the INA826 ($1.34 in 100s) would be a good choice if I went with SMDs. But if I used SMDs, the Blinky EKG would probably have to be a finished product rather than a kit, which would add substantial manufacturing costs, especially for things like a case, which could be omitted in a kit. The idea of a blinky board is to be an easy soldering project for beginners, so I’m not sure that a pre-assembled blinky EKG has much appeal for me (which is not to say there is no market for it, just that I’m not particularly interested in designing for that market).

I looked at my old post and realized that I had miscomputed the gain for the differential signal, and never computed the gain for the common-mode signal.  If the resistors are perfectly matched, the common-mode gain is 0, but without the laser trimming that makes the instrumentation amp chips so expensive, we’re not going to get perfect matching.  The classic approach of adding trimpots takes up too much space and ends up costing almost as much as using an instrumentation amp chip.

So the rest of this post is dedicated to better understanding the 2-op-amp instrumentation amp.  I drew a schematic of a possible design, in order to have names for the parts and signals.

Schematic drawn with SchemeIt and captured as a screenshot.

Schematic drawn with SchemeIt and captured as a screenshot. The native exports into PNG and PDF formats were useless, because SchemeIt messed up the Unicode character Ω. I also had to do this as a 24-bit PNG, because WordPress.com seems to mess up 8-bit PNGs (they look fine when editing, but not in the Preview.)

To analyze the circuit assuming ideal op amps (so the voltage difference between the two inputs of the op amp is 0), we need to look at the current through each resistor:

I_{1} = (V_{out} - V_{p}) /R_{1}
I_{2} = (V_{p} - V_{mid}) /R_{2}
I_{3} = (V_{mid} - V_{m}) /R_{3}
I_{4} = (V_{m} - V_{ref}) /R_{4}
I_{gain} = (V_{p} - V_{m}) /R_{gain}

We also have that
I_{1} = I_{2}+ I_{gain} and I_{4} = I_{3} + I_{gain}, by Kirchhoff’s current law.

We can add to get I_{1} + I_{4} = I_{2} + I_{3} + 2 I_{gain}, which can be expressed as
(V_{out} - V_{p}) /R_{1} + (V_{m} - V_{ref}) /R_{4} =
(V_{p} - V_{mid}) /R_{2} + (V_{mid} - V_{m}) /R_{3} + 2 (V_{p} - V_{m}) /R_{gain}

If R_{1}=R_{4} and R_{2}=R_{3}, then we can multiply both sides by R_{1} to get
V_{out}-V_{ref} - (V_{p}-V_{m}) = R_{1} (V_{p}-V_{m}) (1/R_{2} +2 /R_{gain}),
or
\frac{V_{out}-V_{ref}}{V_{p}-V_{m}} = 1+ R_{1}/R_{2} + 2 R_{1}/R_{gain}.

For the values in the schematic above the differential gain is 6.6 + 112kΩ/Rgain.

To look at common-mode gain, it is best to solve the pair of equations for the currents I1 and I4. Being lazy, I used maple to do the algebra:

solve( { (vout-vp)/r1= (vp-vmid)/r2 + (vp-vm)/rgain, (vm-vref)/r4=(vmid-vm)/r3+(vp-vm)/rgain, \
         vor=vout-vref}, {vout,vor,vmid});
simplify(taylor(subs(vp=vcomm+vdiff/2+vref, vm=vcomm-vdiff/2+vref, rhs(%[3])),vdiff));

which produced

vcomm (-r2 r4 + r1 r3)
- ---------------------- +
r2 r4

2 r1 rgain r4 + r2 rgain r4 + 2 r1 r2 r4 + 2 r1 r4 r3 + r1 r3 rgain
------------------------------------------------------------------- vdiff
2 r2 rgain r4

that is,

V_{out}-V_{ref} = V_{common} \left(1- \frac{R_{1} R_{3}}{R_{2}R_{4}}\right) + V_{diff} \frac{R_{1}}{R_{2}}\left(1 +\frac{R_{2}}{2 R_{1}} + \frac{R_{2}}{R_{gain}} + \frac{R_{3}}{R_{gain}} + \frac{R_{3}}{2 R_{4}}\right),
where V_{diff} = V_{p}-V_{m}, and V_{common} = \frac{V_{p}+V_{m}}{2} - V_{ref}

We can check for some copying errors by simplifying with R_{1}=R_{4} and R_{2}=R_{3}, where we get a common-mode gain of 0, and differential gain of \frac{R_{1}}{R_{2}} + 1 + \frac{2 R_{1}}{R_{gain}}. Note that the common-mode gain is independent of the value of Rgain, and depends only on the matching of the other resistors.

If R1 and R3 are 1% low, and R2 and R4 are 1% high, then the common-mode gain is 0.039. If R1 and R3 are 1% high, and R2 and R4 are 1% low, then the common-mode gain is –0.041. If you prefer thinking in decibels, the common-mode rejection with 1% tolerance resistors could be as poor as 27.8dB (compared to 80dB to 90dB for an INA126P chip).

I’ll have to make some measurements later this week to see how large the common-mode noise on the EKG signals really is. Of course, it is likely to be highly variable, depending on the electrodes and the wiring to them, but ball-park estimates would be useful.

If the AC common-mode voltage is ±200mV and we have worst-case resistor values, then we would have a ±8mV common-mode output from the instrumentation amp. With the lowest differential amplification (6.6 at Rgain=∞), a 1mV EKG signal would be smaller than the common-mode noise. Such a large common-mode voltage would easily justify the expense of the instrumentation amp chip.  (Note: large DC common-mode voltages don’t matter, as the DC-blocking capacitor I used after the instrumentation amp can eliminate them.)

If the AC common-mode voltage is only ±1 mV, then the Blinky EKG could probably work even with very poor common-mode rejection in the instrumentation amp, and building it out of op amps and discrete resistors is feasible.

2013 July 4

Blinky EKG fixed

Filed under: Circuits course — gasstationwithoutpumps @ 18:26
Tags: , , , , , ,

In my earlier post today about the Blinky EKG, I wrote

About the only thing I can think of is that there is too large a DC offset between the EKG electrodes, as the Blinky EKG uses a large gain on the first stage and a relatively small gain on the second stage.  The DC-blocking high-pass filter is after the first stage. The EKG built on the protoboard used a smaller first-stage gain and larger second stage gain, so wouldn’t saturate the first stage as easily.  (I’d learned more about EKG electrodes by the time I’d designed that circuit.) I could fix the gains by changing a few resistors on the EKG blinky board, which may be worth the pain of unsoldering and resoldering resistors.  That may be worth trying today.

I finally got a chance to test that this afternoon.  I replaced the 470Ω Rgain resistor on the instrumentation amp with a 12kΩ resistor, reducing the first-stage gain from 175.2 to 11.667.  With this change, I could see my heart beat with no problem, if I turned the second-stage gain all the way up to 111, as high as the trimpot would let me go.  This gain was not enough to light the LED, though, so I replaced the 1kΩ resistor below the trimpot with a 100Ω resistor, which allows the second-stage gain to be adjusted from 10.9 to 1101.  The combined gain is thus adjustable from 127.2 to 12845.

UPDATE: 2013 July 5.  I realized this afternoon that I would have been better off leaving the 1kΩ resistor alone, and changing the 100kΩ resistor above the trimpot from 100kΩ to 510kΩ, giving me a second-stage gain varying from 47.36 to 521, and a total gain of 552.6 to 6078.

At high gain, the LED is always on, and at low gain the LED is always off, but when the gain is around 2300, the LED blinks nicely and the waveform recorded with the Arduino data logger is good.

I believe that the problems I’ve been having with the Blinky EKG board have been the result of DC bias in the EKG electrodes saturating the first stage, so reducing the gain of the first stage and increasing the gain of the second stage was the right fix. I’ve been thinking of redesigning the blinky EKG board to be more decorative (so that it could be worn as a pin or a pendant)—if I do that, I’ll certainly change the gain.

Next Page »

The Rubric Theme Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 248 other followers

%d bloggers like this: