How to protect analog output (current protection) ?

Hi all,

Thanks to my Arduinos I can generate some real analog values. It can be made through the onboard DAC of the DUE, or with an external DAC like MCP4912.

I am looking for a component to put after the DAC, that does the following job :

  • under a certain amount of current (for ex 10mA), the output voltage is exactly the DAC output
  • when there is an overload, more than 10mA, the output voltage can deviate from the DAC output to limit current to 10mA
  • as soon as load is back to normal, output voltage is back equal to the DAC output
    To sum up, from the DAC point of view, there is no overload. this one always outputs its voltage in safe circumstances.

So, what is the best and easy way to do this ? are there integrated circuit for this ? Should I use an operationnal amplifier ?

THanks for your answers.

There's no easy circuit that conditionally limits current like this, perhaps the closest is to buffer the output
of the DAC with an opamp follower - choose an opamp that is both rail-to-rail and whose output circuit
can sustain an output-short indefinitely. Things to look for are dual bipolar/MOSFET outputs that can
drive strongly to the rails across the whole voltage range.

Such a chip might also be described as an "analog buffer".

A quick search threw up the AD8031 / AD8032 as possible candidates (and avail in DIP package)

There's no easy circuit that conditionally limits current like this,

Is there a complex one?

I assume the idea is to protect the DAC from shorts?

If you don't need absolute accuracy (such as an audio application) the traditional approach is to simply put a resistor (say 1K Ohm) in series with the output. In audio applications, you are typically driving an input impedance of 10K - 100K, so the voltage drop across the current limiting resistor is not significant. And since the voltage drop is linear, there is no added distortion... the signal is just slightly quieter. The voltage drop across the resistor only becomes significant if you connect the "wrong" load, or if you accidently short the output.

If you need absolute accuracy, you can use a current-limiting resistor on the output of an op-amp buffer, with the resistor inside the feedback loop. The feedback will maintain low effective output impedance (holding your output voltage) as long as the voltage drop across resistor & op-amp output-stage is not so great that there is not enough voltage left for the load.

dammien:
I can generate some real analog values

Yes and no. The arduino board have only two state, high (5V) and low(0V). It only plays with the time you're high and low.
See here for more information : Sortie analogique (modulation de largeur d'impulsion ou «PWM») @ Arduino @ t-o-f

Darwoon:

dammien:
I can generate some real analog values

Yes and no. The arduino board have only two state, high (5V) and low(0V). It only plays with the time you're high and low.
See here for more information : Sortie analogique (modulation de largeur d'impulsion ou «PWM») @ Arduino @ t-o-f

No you are wrong. The Due does have a true analogue output.

Eh sorry, I own an Arduino Uno :slight_smile: I've have never tried other board. Thanks for correcting.

Thanks for all your answers,

MarkT:
A quick search threw up the AD8031 / AD8032 as possible candidates (and avail in DIP package)

Ok thanks I will consider such a device. I'm not a datasheet expert reader, but I don't often find the information of : does it supports short circuit or not ? When I see the information like "max sink current : 20mA", it doesn't tell me if the device protects itself when short-circuited (by lowering output for example), of it it burns immediatly.

DVDdoug:
I assume the idea is to protect the DAC from shorts?
If you don't need absolute accuracy (such as an audio application)...

Yes it is for DAC protection, but not for Audio. In my application I need absolute accuracy, that's why I can't use just a resistor

DVDdoug:
If you need absolute accuracy, you can use a current-limiting resistor on the output of an op-amp buffer, with the resistor inside the feedback loop. The feedback will maintain low effective output impedance (holding your output voltage) as long as the voltage drop across resistor & op-amp output-stage is not so great that there is not enough voltage left for the load.

OK this is interesting... but I don't know much about op-amp. Do you have a small schema? Thanks.

Darwoon:
Yes and no. The arduino board have only two state, high (5V) and low(0V). It only plays with the time you're high and low.

No, I mean real analog signals. As I said, it can be from the Arduino Due, or thanks to an external DAC, using for example SPI interface.

Thanks again.

it doesn't tell me if the device protects itself when short-circuited (by lowering output for example), of it it burns immediatly.

That is because it doesn't protect itself, very few devices do. The exception is almost always thermal shut down on voltage regulators.
There is an area where you can exceed the maximum current rating and it will not immediately stop working but put it under stress so that the life time of the device is shortened. Then it transits into the more usual burn out situation.

You can use a series resistor providing the resistor's value is very small in comparison with the impedance you are driving it into. Therefore putting it into an op amp configured as a voltage follower is your best bet.

Grumpy_Mike:
You can use a series resistor providing the resistor's value is very small in comparison with the impedance you are driving it into. Therefore putting it into an op amp configured as a voltage follower is your best bet.

Ok but then the question is the same for the op amp : it must be able to accept short circuit on its output. Do you suggest AD8031 / AD8032, as MarkT said ?

but then the question is the same for the op amp : it must be able to accept short circuit on its output

The only way any component can stand a short circuit on it's output is if the output impedance is so rubbishly high that it limits the output current to a safe value. Most devices are not made with that sort of compromise so you have to include your own current limiting output resistor.

dammien:
Hi all,

Thanks to my Arduinos I can generate some real analog values. It can be made through the onboard DAC of the DUE, or with an external DAC like MCP4912.

I am looking for a component to put after the DAC, that does the following job :

  • under a certain amount of current (for ex 10mA), the output voltage is exactly the DAC output
  • when there is an overload, more than 10mA, the output voltage can deviate from the DAC output to limit current to 10mA
  • as soon as load is back to normal, output voltage is back equal to the DAC output
    To sum up, from the DAC point of view, there is no overload. this one always outputs its voltage in safe circumstances.

So, what is the best and easy way to do this ? are there integrated circuit for this ? Should I use an operationnal amplifier ?

THanks for your answers.

Google "foldback current limiting". That sounds like what you are looking for.