A circuit i made using opamps and transistors causes lots of oscillations (parasitic maybe ?), a solution to that which i find very reasonable is to limit the bandwidth of my main driving opamp so any oscillations are attenuated/removed. .enter image description here

Update : adding a 100uF cap between pin 14 and ground removed about 99% of the oscillations , but instead i got this voltage spike that occurs when i drive the motor with a square wave ( the spike appears with every falling edge)

  • 1
    \$\begingroup\$ and your question is ... ? \$\endgroup\$
    – Neil_UK
    Commented Jul 23, 2016 at 13:20
  • \$\begingroup\$ I'd try putting a small (1/10 the series resistance of the motor) between your transistors and the motor. I suspect your wildly reactive load is causing your problem. \$\endgroup\$ Commented Jul 23, 2016 at 14:44
  • \$\begingroup\$ @Neil_UK the oscillations are causing a direct short between the power supply rails through the darlingtons, thats why i want to filter these oscillations out ! \$\endgroup\$
    – BershaM
    Commented Jul 23, 2016 at 14:46
  • \$\begingroup\$ @WhatRoughBeast would removing C42 make it any better ? \$\endgroup\$
    – BershaM
    Commented Jul 23, 2016 at 14:49
  • \$\begingroup\$ Did you solve the problem with the TIP147 as per your other related question? \$\endgroup\$
    – Andy aka
    Commented Jul 23, 2016 at 19:15

2 Answers 2


As far as I understand the question, your problem is with your phase and gain margins of the Op-Amp. To solve this problem, you might have two options, first you can add a compensation capacitor at the output of the Op-Amp (between Node14 and ground). The cap would reduce Unity-Gain Bandwidth of your Op-Amp and hence corrects your phase margin. Second, you can reduce gain of feedback loop (the feedback here is the wire from emitter of Q1 to node 13). In order to reduce feedback loop you can simply use a resistive divider. These topics are addressed here: http://www.mit.edu/afs.new/athena/course/2/2.010/www_f00/psets/hw3_dir/tutor3_dir/tut3_g.html


You cannot change or "limit" the frequency response of the opamp unit - however, you can limit the bandwidth of the loop gain (which is responsible for oscillatory behaviour). This can be done, for example, with a R-C series combination BETWEEN both opamp inputs (nodes 12 and 13). This is a kind of "input frequency compensation". Without knowing the exact loop gain response, one could start with R=100...500 ohms and C=100nF.

  • \$\begingroup\$ will test it out and comeback to you ..! , how can i calculate the exact values for the RC combination ? \$\endgroup\$
    – BershaM
    Commented Jul 23, 2016 at 14:44
  • \$\begingroup\$ There are no "exact values". The effect od the RC combination is as follows: For low frequencies there is no effect (as long as the capacitive impedance is very large). With rising frequencies, the loop gain will be reduced twofold (decreasing feedback factor as well as decreasing openlöoop gain of the opamp). It is important that the feedback factor reaches its final value for frequencies above w1=1/RC before the loop gain is unity at a frequency wt. Rule of thumb: w1 should be app. one decade lower than wt (because of the phase condition). \$\endgroup\$
    – LvW
    Commented Jul 23, 2016 at 15:54
  • \$\begingroup\$ See here: Fig. 29 and Fig. 30 in intersil.com/content/dam/Intersil/documents/an94/an9415.pdf and Fig. 18 in analog.com/library/analogdialogue/archives/38-06/… \$\endgroup\$
    – LvW
    Commented Jul 23, 2016 at 16:05
  • \$\begingroup\$ thanks for your feedback , i'll make sure to let you know when it works ! \$\endgroup\$
    – BershaM
    Commented Jul 23, 2016 at 19:43
  • \$\begingroup\$ adding a cap across R24 helped alot, but i still get oscillations when the input voltage is in the range between (0 volts to -0.5volts) \$\endgroup\$
    – BershaM
    Commented Jul 24, 2016 at 15:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.