This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OPA548EVM: Voice-coil control in position

Part Number: OPA548EVM
Other Parts Discussed in Thread: OPA548,

Hello,

I want to drive a voice-coil (VC50/M from Thorlabs) using the OPA548 EVM board.
I already connected the board in dual mode and the voice coil oscillates.

My goal is now to drive the voice-coil such that it oscillates around multiple fixed positions that were previously determined. For example, supposing that my z-axis is the vertical axis with zero the Bottom of the voice coil, I want to oscillate around z = 5 cm for a while ; then stop the test and oscillates around z = 10cm etc.

For my application, I don't need to have a precise position so I won't use any position sensor. I will do an open-loop control only.


Requirements of the oscillations :
- sine wave
- Voltage to be determined but oscillation movements is in 5-10 mm range

I am not very familiar with driving voice-coils but I searched on internet and it seems that using a H-bridge with varying PWM should be a solution to create a sine wave.
Did someone already implemented something similar or have some recommandations about how to proceed ?

I have a STM32F401RE board at disposal but I have no idea how to use it to drive the voice-coil. 

I am also open to any other proposal using Arduino (or Raspberry if it is easier)

Thanks in advance

  • Hi Isi, 

    Could you upload the voice-coil (VC50/M) datasheet? I want to make sure that OPA548 is able to drive it or find a way to drive it. The VC50/M model is not downloadable from the thorlabs. 

    Best,

    Raymond

  • Hello Raymond,

    Thanks for the reply.(

    Here is the only information I have for VC50/M :  (have to click on the VC250/M link and download the Auto CAD PDF) 

    Best, 

    VC250_M-AutoCADPDF.pdf

  • it seems that using a H-bridge with varying PWM should be a solution to create a sine wave.
    Did someone already implemented something similar or have some recommandations about how to proceed ?

    Since you are using OPA548 power amplifier, it would not require a H-bridge to drive the voice coil. The power amplifier is capable to source and sink current, if you OPA548 is configured with dual supply rails. 

    https://www.youtube.com/watch?v=jvsOjl1J0K0

    From MCU, you have to generate high frequency SPWM signal from one of GPIO port, which the modulated SPWM frequency needs to be >100kHz, prefer >200kHz. The SPWM is then filtered through LPFs and create a sinusoidal waveform, say up to 10kHz. I will show the basic driving schematic via the Tina simulation below. 

    For my application, I don't need to have a precise position so I won't use any position sensor. I will do an open-loop control only.

    This is ok, this means that the position will not be fed back to the power amplifier, which OPA548 has a local feedback (likely a buffer  or low gain stage op amp configuration). In other words, it is feedforward for the position control.

    Here is an example how you may drive the linear motor, see the simulated Tina schematic. There are many other driving options, but you should be able to modify OPA548EVM to check out the functionality. 

    5381.OPA548 E2E Coil 07182023.TSC

    Please let me know if you have other questions. 

    Best,

    Raymond