Background
I'm trying to make a circuit to determine rotor angle of a motor using a resolver https://en.wikipedia.org/wiki/Resolver_(electrical). This involves generating a ~5-10kHz sine wave to drive the input to a rotary transformer.
Problem
I've created the following circuit on a breadboard:
The DAC1 input signal is a sine wave, 0 to +3.3v, generated by a microcontroller. The EXC and IEXC outputs go to the excitation coil on the resolver. The op amp is powered by 12v, single supply, which is generated by an old fashioned wall wart (non-switching, transformer based power supply), which is rated 800mA max.
If I run this circuit without the excitation coil connected, here is what I see:
The cyan waveform is from pin 1 of the op amp, and the yellow one is from the EXC pin (which has DC bias removed). So far, this seems to be working. However, when I connect the coil, the waveform looks like this:
Somehow adding the load to the circuit has made the signal look really garbled.
What I've tried
none of these made much of a difference in the shape of the output waveform
- Double checked the connections several times.
- Swore at it. Then apologized and pleaded with it to work.
- When I originally created this circuit, I didn't have C1 and R3 (Which form a Zobel network). I added these to try to address this issue.
- I initially tried powering the op amp from the original 3.3v supply from the microcontroller, I switched to a separate 12v supply because I thought the former might not have enough power to drive the coil.
- Attached the scope to the 12v supply (unloaded) to make sure it wasn't noisy.
- Made the op amp unity gain, by connecting the output directly to the inverting input without R1 & R2, both with the 12v and 3.3v supply.
- Running without the op amp (just DAC to EXC through C2). The output is very distorted, a shark fin shape, but doesn't look quite as noisy.
My question:
I think it would be hard to root cause this issue with the information given, but I'm hoping someone can give some advice:
- Does this look like a phenomenon someone is familiar with involving these kinds of circuits?
- What kinds of steps for debugging this sort of issue would you recommend?