Adding several components to a simple first-order, low-pass filter, helps to create a different yet handy filter. The circuit shown in Figure 1 combines a low-pass filter (R2, C1, A1) with a bidirectional diode clipping network (R1, D1, D2). The result is a filter that will limit the maximum slope (not frequency) it passes.
Typical uses for this circuit are shown in Figures 2a-2d. In general, it’s used to create ramps from step voltages, generate triangle/trapezoid waveforms from square waves, remove unwanted fast components (noise/transients) from any signal, or limit the maximum rate of change of any signal.
Here’s how it works. Whenever the input voltage VIN differs from the output voltage VOUT by one forward diode drop or more, one of the diodes will turn on (D1 when VIN > VOUT and D2 when VIN < VOUT). When this happens, the voltage across R2 is held fairly constant (because the voltage at the “+” input and the output of A1 are equal) at one forward diode drop.
With a fixed voltage across R2 and, therefore, a constant current through it, the capacitor C1 charges linearly instead of exponentially. The maximum slope (V/T) that the circuit will pass is equal to the VF of the diodes used divided by R2C1 (maximum slope (V/T) = VF / R2C1 ). This assumes R2 >> R1. No matter how quickly the input voltage changes, the output will never change any faster than the limit set by R2C1. Any signal or part of a signal with a slope less than this limit simply passes through the circuit unaffected.
VIN should be driven by a low impedance source. Resistor R1 limits the current through D1 or D2 when they conduct. Typically R1 is 1k-10k. Its value should be kept as small as practical and depends on the drive capabilities of A1 and the op-amp or other device driving VIN. R2’s resistance should be much greater than that of R1 to swamp out its contribution to the circuit’s R2C1 time constant. R2 and C1 form a low-pass filter and A1 buffers it and provides a low impedance path for Dl or D2 when in conduction. For the best performance, D1 and D2 should be low VF (Schottky) types, although other diode types (1N914, 1N4148, etc.) will work satisfactorily.
When a square wave or step voltage is slope-limited by this circuit, a slight rounding will be seen at the top and bottom of the output waveform. This is due to the loss of overhead voltage (needed for diode conduction) that occurs when the capacitor has charged within one diode drop of the input’s peak voltage. This rounding is minimized by using low VF diodes, keeping R1 as small as possible, and by using the largest amplitude input waveform your supply voltage will allow.
I originally came up with this circuit while designing a servo control loop. I needed a simple way to limit the rate of change of the servo’s output signal. It also can be used to soft start lights, create smooth motor speed transitions, filter a signal by its slope instead of its frequency, tame ill-behaved servo circuits, slow square wave transitions (without excessive rounding), and so on. Unlike integrator-based circuits this circuit works with single-ended or bidirectional supplies.