Driving a 3D coil with the AD9833

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
Hello,
so what I've got is an AD9833 (https://www.analog.com/media/en/technical-documentation/data-sheets/AD9833.pdf) waveform generator. I use it to generate a 20KHz square wave, 5Vpp. Now I want to drive a so called 3D coil cube (https://www.grupopremo.com/3dcc28-3d-coil-cube-emitter-for-vr-applications-395x395x386mm-/1982-3dcc28-a-0150j.html).

My problem is that whenever I start the AD9833 everything works fine and I get a nice and clean looking square wave at 20KHz. But when I now connect one of the coils to lets say pin 1 and pin 2, the square wave kind of collapses. My guess would be to match the impedances, but since I never did this I don't know how to do that.

Any suggestion to whats going on is appreciated.

P.S. I use an AD9833 module from amazon: https://www.amazon.de/TECNOIOT-AD9833-Programmable-Microprocessors-Interface/dp/B07VKQLHTM/ref=sr_1_1?dchild=1&keywords=Ad9833&qid=1597668925&sr=8-1

thanks,
8dm7bz
 

AlbertHall

Joined Jun 4, 2014
10,390
Looking at the data for the coils inside this cube, they will be about 190Ω at 20kHz almost certainly too low to be driven directly by the AD9833 so you will need a buffer amplifier - a transistor or logic level MOSFET.
Do you know how much voltage or current you want for each coil?
 

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
So I thought about what you said, and googled a bit.
Do you say that by using a buffer amplifier I just transform the output impedance to be low. That way I can drive the coils ? And since the square wave is 5Vpp I don't need to amplify it either ?
 

AlbertHall

Joined Jun 4, 2014
10,390
It could be as simple as shown below. The square wave input switches the MOSFET on and off and controls a larger current through the coil. But it does depend on how much voltage/current you want to drive the coil (that's the black circle in this picture)
Do you drive all three coils with the same signal?

1597675643179.png
 

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
Yes I do drive all 3 coils with the same signal. But if that would add too much of an overhead, I could change that
 

AnalogKid

Joined Aug 1, 2013
8,589
AH: my guess is that you will need bipolar drive to each coil to prevent massive ringing. Also, I thought these things were driven with sine waves (but I'm not a gamer).

ak
 

atferrari

Joined Jan 6, 2004
4,091
Hello,
so what I've got is an AD9833 (https://www.analog.com/media/en/technical-documentation/data-sheets/AD9833.pdf) waveform generator. I use it to generate a 20KHz square wave, 5Vpp. Now I want to drive a so called 3D coil cube (https://www.grupopremo.com/3dcc28-3d-coil-cube-emitter-for-vr-applications-395x395x386mm-/1982-3dcc28-a-0150j.html).

My problem is that whenever I start the AD9833 everything works fine and I get a nice and clean looking square wave at 20KHz. But when I now connect one of the coils to lets say pin 1 and pin 2, the square wave kind of collapses. My guess would be to match the impedances, but since I never did this I don't know how to do that.

Any suggestion to whats going on is appreciated.

P.S. I use an AD9833 module from amazon: https://www.amazon.de/TECNOIOT-AD9833-Programmable-Microprocessors-Interface/dp/B07VKQLHTM/ref=sr_1_1?dchild=1&keywords=Ad9833&qid=1
597668925&sr=8-1


thanks,
8dm7bz
IIRC, the output of the chip is already fitted with a low value resistor maybe 100 or 200 ohms.
 

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
@AnalogKid What do you mean with bipolar drive ? Does this mean I need to alternate between positive and negative voltages instead of just alternating on the positive voltage ?
 

Ian0

Joined Aug 7, 2020
453
I'm not sure that the authors know what they are talking about. First they use a waveform generator IC to make a squarewave, then put it through a bandpass filter to make it into a sinewave. Why? The waveform generator can make sinewaves!
The op-amp used for the filter drives the coils through a multiplexer. (I think I'd multiplex first then have an amplifier for each coil.
The coils are obviously driven both positive and negative with a sinewave. The AD8616 op-amp has a maximum supply voltage of 5V, so the output to the coils can be 5V peak-to-peak, or 1.77V rms. The inductance is around 375uH, so the impedance at 100kHz is 235 ohms, so the current will be 7.5mA. If you want to use 20kHz, the impedance will be 47 ohms, and the current will be 37mA.
Not sure which coil you are using - I've used the figures for the low-inductance one, I think Albert Hall used the other one in his calculations.
Is this the amount of power that you were anticpating? It's well within the capability of the AD8616.
Getting bipolar drive is simple - just put a capacitor in series. Choose the capacitor so you are nowhere near the resonant frequency, otherwise you'll generate a lot of voltage. Anything above 2.2uF should do the job.

The question is, do you need a sinewave like they used in the paper? Drive the coil with a square-wave and the current will be a triangular wave. 3rd harmonic is 19dB down and 5th harmonic is 28dB down - near enough a sinewave for me, unless you've some strict EMC regulations to meet I doubt the harmonics will matter.
If you want to drive the coil with a squarewave, don't follow Albert Hall's advice, unless you have a lot of spare MOSFETs. Firstly, there is no diode to clamp the back EMF when the MOSFET switches off, and it will blow up the MOSFET. And secondly, if you do clamp it with a diode, the ON Volt-time constant is much longer than the OFF Volt-time constant so the current will increase indefinitely until your battery goes flat or something overheats. You might make it work by clamping it with a diode and a zener in series, but you won't get a nice waveform.
Get yourself a MOSFET driver IC, there's hundreds of choices ( MCP1401 is cheap), and connect the output to the coil through a capacitor (2.2uF as before). That's all you need.

And if you want a 20kHz squarewave, you don't need a fancy AD9833 to generate that - a 555 will do the job!
If you want a accurate 20kHz squarewave, then a 74HC4060 and a crystal.
And if you're working with logic-level square-waves, then the ADG1604 can be replaced by three AND gates, and you can use a 4017 to sequence the outputs. (I'll draw it out if you want)

I can't say I'm that impressed by the receiver either. Seems like they are trying to re-invent the homodyne receiver (invented in 1932) using logic gates. You don't have to implement it in valves, a Gilbert cell will do the job nicely - much more modern - only been around since 1967. You can find a one in the NE612 double-balanced mixer or you can make one out of three matched transistor pairs such as BCM857.
Feed the signal from the coil into one pair of inputs, feed the reference into the other pair and the amplitude signal is on the output - no need for rectifier, high-pass or band-pass filters or exclusive-or gates. Might not need any extra amplification, depending on the amplitude of your received signal
 

AnalogKid

Joined Aug 1, 2013
8,589
On page 3 there is the transmitter explained.
I agree with above, that is a lot of work to go through to get a fixed frequency, fixed amplitude 100 kHz sinewave (that requires an external squarewave clock source to work). A fast opamp can do this in a phase-shift oscillator circuit, or use a 100 kHz crystal oscillator circuit with a 2N2222 transistor. Either way eliminates the active filter stages and an expensive, hard-to-program chip.

For 20 kHz, I'd go with the opamp. Distortion is good enough, amplitude stability is at least as good as what falls out of two bandpass filter stages, and there's that whole zero-programming thing.

ak
 

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
Ok first of all thank you @Ian0 for this response.
"Is this the amount of power that you were anticpating?" - yes I think that is plenty.

I tried understanding everything you said. There were a lot of new words though.
I will summarise just so I can make sure I understand most of this correctly.

I attached 2 pictures for the (2?) transmitter of what I think you tried telling me. Please let me know if I got something wrong.

But if it's not asking too much could you please draw out the receiver ? And if I got the second transmitter horribly wrong it would be nice to see exactly what you meant.

By the way I have lots of fun exploring the different circuits you mentioned. I read up on the Gilbert cell, and will read more about the homodyne receiver.

thanks,
8
 

Attachments

Ian0

Joined Aug 7, 2020
453
Are you designing it to work at 100kHz as in the Whitmire, Patel and Parizi paper, or at 20kHz?
You're spot on with the circuits. Whitmire, Patel and Parizi used a single Op-amp and put the multiplexer after it. It should work, but you could use a cheaper multiplexer (like a CD4016) if you use the multiplexer first followed 3 op-amps.
https://www.nxp.com/docs/en/data-sheet/SA612A.pdf
SA612 is the same as NE612
 

Thread Starter

8dm7bz

Joined Jul 21, 2020
133
After a little more eploration a few questions came up. First of all could I use a polarised 2.2uF capacitor ? Since I don't don't need to do any high-pass filtering anymore the voltage shouldn't get negative, right ?
And then on the same note, how exactly did you get the value of the cap ? I think it's generally used in this configuration for impedance matching. But I can't figure out how you derived the value.

thanks,
8
 
Top