I've built a heart monitor which outputs a trace to an lcd screen. I used an LT1168 and LT1112 circuit straight off the manufacturers datasheet and it works just great when I view the output on my oscilloscope. The mbed microcontroller is used to digitise this output voltage and display it on the color lcd. I'm using an mbed microcontroller (www.mbed.org is seriously interesting for electronic hobby guys) which has a couple ADC ports but it doesnt like the negative part of my input signal. So the output onto the lcd screen clips off anything below zero. I need to shift the output of the LT1168 up so that its range becomes all positive. The output from my LT1168/LT1112 nerve impulse amplifier is approximately plus/minus 2.5 V while the acceptable input range for the microcontroller ADC is 0 to +3.3V.
Simple way is to bias the ADC input at 2.5V with a high valued resistor to a 2.5V reference, or just make a voltage divider between +5V and ground. Then AC couple your signal. This forms a high pass filter, so you have to make sure you pick the RC time constant long enough to handle your lowest frequency of interest.
Well thats useful, as I thought I migt have to use an op amp. How should I calculate the RC time constant ? Obviously I will not be considering the heartbeat rate ( about 70 bpm) but what element of the waveform should I use? Should it be the fastest rising/changing slope associated with the signal ? Here is a picture of a typical ECG trace
OK, now I have a better picture of what you are doing.
You don't need to add an RC coupling circuit. Your circuit should be DC coupled and you should NOT have a dc offset issue.
First, you have too much gain. Your output is 5Vpp and your input range is only 3.3Vpp.
You should probably cut your gain in half or more.
Your ADC input range is 0 to +3.3V, but your output signal is 5Vpp?
I don't understand how your LT1168 output can go negative, unless you are using a negative supply.
Your LT1168 circuit should be powered from +5V and ground.
And the inputs of your LT1168 must be biased to ~ +2.5V by a resistor divider string off +5V and ground.
Insert a large valued series resistor between each LT1168 input and the +2.5V point of the divider string.
If you posted your actual schematic, I could tell you for sure if this is the issue.
I used this circuit right out of the Linear Technologies LT1168 datasheet. As you can see it is powered from a split rail power source presumably because it's essential to have a patient ground.
Here is the circuit description from the same datasheet
Nerve Impulse Amplifier set a gain of ten. The potential on LT1112’s Pin 1 creates
Nerve Impulse Amplifier
set a gain of ten. The potential on LT1112’s Pin 1 creates
The LT1168’s low current noise makes it ideal for EMG
monitors that have high source impedances. Demonstrating
the LT1168’s ability to amplify low level signals, the
circuit in Figure 8 takes advantage of the amplifier’s high
gain and low noise operation. This circuit amplifies the low
level nerve impulse signals received from a patient at
Pins 2 and 3. RG and the parallel combination of R3 and R4
a ground for the common mode signal. C1 was chosen to maintain the stability of the patient ground. The LT1168’s high CMRR ensures that the desired differential signal is amplified and unwanted common mode signals are attenuated. Since the DC portion of the signal is not important, R6 and C2 make up a 0.3Hz highpass filter. The AC signal at LT1112’s Pin 5 is amplified by a gain of 101 set by R7/R8 +1. The parallel combination of C3 and R7 form a lowpass filter that decreases this gain at frequencies above 1kHz. The ability to operate at supply current makes the LT1168 ideal for battery-powered applications. Total supply current for this application is 1.05mA. Proper safeguards, such as isolation, must be added to this circuit to protect the patient from possible harm.
a ground for the common mode signal. C1 was chosen to
maintain the stability of the patient ground. The LT1168’s
high CMRR ensures that the desired differential signal is
amplified and unwanted common mode signals are attenuated.
Since the DC portion of the signal is not important,
R6 and C2 make up a 0.3Hz highpass filter. The AC
signal at LT1112’s Pin 5 is amplified by a gain of 101 set
by R7/R8 +1. The parallel combination of C3 and R7 form
a lowpass filter that decreases this gain at frequencies
above 1kHz. The ability to operate at±3V on 350μA of
supply current makes the LT1168 ideal for battery-powered
applications. Total supply current for this application
is 1.05mA. Proper safeguards, such as isolation, must be
added to this circuit to protect the patient from possible
OK, here is the "easy" fix. Instead of R6 and R8 returning to ground, they return to +1.5V. Since you are probably using batteries, you should be able to add a connection here. Now your output amplifier will be putting out +1.5V with no signal. You will be able to swing almost 3Vpp output into the ADC.
You are limited by +3V max output from the LT1112, and on the negative side 0V from the ADC. So biasing the LT1112 resistors to +1.5V (the midpoint) is the best place to be!! No extra parts. Just change some wiring or cut traces and add jumper on your board to the battery holder.
My first thought is that something as simple as adding an old fashioned Summing Amplifier may accomplish both the level shifting and output scaling to fit your 3.3V input ADC.
You could set it up with two inputs to sum together. One would be your +2.5V/-2.5V output from your LT1168/LT1112 nerve impulse amplifier, and the other would be a -2.5V reference voltage you could set with a voltage divider off your -3V rail.
If you set the RF/Rin ratio to 0.5 then Vout would range from 0~2.5V instead of 0~5V. That voltage range should then be acceptable for the extra summing amp if you give it +3V/-3V rails as well, and for the 3.3V max input voltage of your ADC.
Oh yes, I forgot. The data would be "flipped" due to the pesky inverting nature of the Summing Amplifier. Depending on how you handle the ADC value ranges, your display graph would probably end up mirrored across the horizontal axis. You should be able to correct this in software code easily enough though... Or alternatively have it graph from right to left instead and mount the LCD upside down just for the fun of it .
At last I found time to implement your suggestion and it works just fine. As you say the output is inverted but what would happen if you applied the inputs to the + input of the op-amp? Would it not then follow the original signals ?