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:

Coil driver

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):


simulate this circuit – Schematic created using CircuitLab

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.

My ideas

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?

  • 1
    \$\begingroup\$ Examine what is called 4-wire or Kelvin-sensing. Such methods are used to detect burned-open thermocouples. \$\endgroup\$ – analogsystemsrf Mar 4 '19 at 16:40
  • \$\begingroup\$ As I understand it, Kelvin sensing is just to make accurate voltage measurements to minimise the effect of dissipation in the sense wires. That doesn't seem to be a problem for measuring shorts or opens here. Or have I misunderstood what you are suggesting to do with a Kelvin probe? \$\endgroup\$ – Sean Mar 4 '19 at 16:50
  • \$\begingroup\$ The Kelvin 4-wires lets you reach out and MEASURE the sensor voltage at the sensor. Thus a short can be detected. As can an open. \$\endgroup\$ – analogsystemsrf Mar 4 '19 at 17:26
  • \$\begingroup\$ In this case though, the current will still flow through the Rsense resistor in the case of a short circuit. In an open circuit, no current should flow. The Rsense resistor is needed because the coil is inductive, and thus you cannot drive a constant current through it by measuring its voltage. I'm still not clear as to what you recommend measuring with the 4 wires. \$\endgroup\$ – Sean Mar 4 '19 at 17:43
  • \$\begingroup\$ Also note that a set point of zero is still acceptable under normal operation, so a voltage drop of 0 across the coil is fine in this case. \$\endgroup\$ – Sean Mar 4 '19 at 17:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.