# Transient and reverse current

Does anyone know (1) how much transient current can be output from a pin and (2) how much (and how long) reverse current an output pin can take? For instance, consider the following circuit (driven by a series of 10 ms pulses at 5V):

``````  o----------------
|          |
|          |
o----------------
``````

which would be a classical filtered (smoothed) PWM circuit. When the pin goes to +5V, the capacitor would act like a short and allow very high current (assuming about 20 ohm impedance, maybe 250 mA) for a millisecond or so. Similarly, when the voltage drops to 0V, the charged capacitor will discharge, leading to a reverse current until it bleeds through the load. Will either of these damage the diodes in the pin or even the IC? Thanks. (Worse comes to worse, does this mean that a resistor and diode are needed to protect the pin?)

1) It's 10µF. 10 pF would be useless in a power supply, it would only store 0.05 µC of electricity at most, which would only be able to smooth the output for a few microseconds.

2) The load is resistance, 1 k ohms.

3) A diode would be handy if you wanted to prevent reverse current, since you could put a much larger diode outside than the protective diodes in the Arduino. They are classically used with motors (inductive load) as a clamp diode.

4) My general question is about high transient current or reverse currents. A capacitor is just an example of a situation that could cause this. Another example would be a pin that is putting out only occasional (for example) 1ms long 100 mA pulses, separated by many seconds. Such a circuit is really not delivering much power, but for very short periods it exceeds that recommended 40 mA. Would this burn out the pin or not?

5) A capacitor in parallel with the load is pretty much the classic filtered DC power supply. Open any wall wart you have and you'll see a transformer, a rectifier and several large (electrolytic) capacitors (along with a couple small ones) and a voltage regulator. Closer to this example, say you want to deliver current at 2 volts DC. You can do this by alternating 2 ms pulses (at 5V) with 3 ms at 0V. Then have a capacitor in series to smooth it to closer to DC, making it more like analog output. That is, in fact, exactly how adjustable power supplies often work.

• By 10 mmF do you mean 10 pF? Aug 14, 2015 at 2:12
• Without a resistor the filter won't do much filtering anyways. So just add it. Don't see why you'd need a diode. Voltages won't go below 0v or above 5v (unless the load is an inductive load (e.g. motor). Aug 14, 2015 at 17:58

It sounds like you are trying to make a digital to analog converter driving some type of load. Look at this link: http://emesystems.com/BS2PWM.htm It will give you a start. Please note they use an opamp as a buffer.

This 'buffer' has a very high input impedance and a low output impedance. It can drive from a few mills to over an amp depending on the opamp chosen. Additional circuitry can get you into thousands of amps if desired. The schematic is a 2 pole filter originally designed for the Stamp microcontroller.

The filter soothes it out but adds a delay on the final output value (settling time). The greater the filter capactance the lower the ripple and the slower the response. You can add another pole to filter if you want.

As a bit of information from an old semiconductor guy absolute ratings are just that. If you exceed them even for a few nanoseconds you can be sure you damaged the device, you just do not know when it will fail.

I have seen a lot of microcontrollers damaged because of capacitors connected to the pins, power excluded, doesn't matter if the pin is input or output. When the power supply collapses it will inject current into the microprocessor substrate possibly damaging it.

Good Luck

I have had fairly lengthy discussions with Mike Cook from the Arduino forum about this sort of thing. I asked, for example, if it was OK to drive LEDs by PWM providing the duty cycle was short enough that "on average" the pins put out a current in specified range.

The datasheet does not say you can exceed the absolute maximum ratings for a certain amount of time (like 1 µs). You are not supposed to exceed them at all.

It doesn't take a particularly large series resistor to limit current to the recommended 20 mA (250 Ω at 5 V).

Now you can probably "get away with" not using it, but you are basically moving into unsupported territory. If the chip fails after a year, don't blame the manufacturer.

It's 10 microFarad = 10mmF. 10 picoFarad would be useless in a power supply

According to Wikipedia:

A "micro-microfarad" (μμF, and confusingly often mmf or MMF), an obsolete unit sometimes found in older texts, is the equivalent of a picofarad.

Your use of mmF as a replacement for µF is confusing. I suggest either copying and pasting "my" µ from this post, or using a simple "u" instead.

... useless in a power supply

Surely you are not seriously suggesting that you are going to make a power supply, powered by an Arduino output pin?

I am presuming not, so perhaps if you describe your application?