I'm building a voice coil driver for a science experiment. The coils are in an environment where both coil shorts and coil open circuits are common problems. I'd like to build in a fault indicator to alert the user with a logic signal if the coil is either short or open.
I've got two ideas for how to do this, but both are complicated and require many more components. Given that I only care about the two extreme cases (open and short, nothing in between), I hope there is a simpler solution. Here's my coil driver design:
The coil driver is a current driver, so it drives higher voltage initially during an output step to overcome the inductance of the wire, before settling down to a constant voltage output. Here is the rough design (ignore the parts in the dashed boxes for now):
The feedback above
OA1 compensates for the frequency response of the coil.
OA2 measures the voltage drop across
Rshunt and feeds back to
OA1 to stabilise its output. The coil is connected from this shunt resistor to ground.
I can think of two ways to do this, but both are complicated:
Measure voltage across and current through coil
A short or open circuit changes the effective resistance of the coil as seen by the rest of the circuit. Measure the voltage drop across the coil (with a buffer at
COIL+) and the current through it (i.e. the output of
OA2), then divide one by the other and check the resistance is in a narrowly defined range near to the real coil resistance with a voltage range circuit.
The problem here is you must divide one voltage by another, which needs complicated op-amp feedback (diodes or transistors) or special ICs. I'd like to keep this simple if possible.
Compare voltage across coil with the set point
See the dashed boxes in the circuit above. Take a buffered copy of the set point signal, correct it for the gain, and compare it to the voltage across the coil using
OA4. If the output voltage is non-zero (within tolerance due to offsets, etc.), something is wrong. In the case of a coil short, the voltage at the coil will be zero whereas the set point will be non-zero. In the case of a coil open, the voltage at the coil will be at the rail of
OA1 because the shunt resistor will not drop any voltage.
Like the division technique above, I can send the error signal to a voltage range circuit to trigger the warning if the voltage is outside the acceptable range.
This circuit may also trip the alarm during large slews, when the coil driver outputs large voltages to overcome the inductance of the coil. In this case, the difference seen by
OA4 may be large. I may then need an integrator on the output to ignore fast changes.
Can anyone think of a simpler solution to this problem?