Kicad 7.0 simulation not working in Kicad 8.0

Hi, so … I have this simulation of op amp (ADA4891), which worked quite nice, however when upgrading to newer version it could not simulate properly, at first, I had this circuit.


(can’t upload files yet)
Which I used to measure op amp stability (it is derived from one TI video, nevermind).
In KiCad 7.0 it worked quite fine (after some initial problems), however I just couldn’t make it work in KiCad 8.0, tried to update the libngspice-kicad and to adjust the schematic to make it as simple as possible, and it started working with op amp voltage lower than 1V (I am not sure why, it’s just weird, at this voltage the op amp is still inorepable). Does anyone have some experience with this?

Here’s the output of SPICE.

Note: Codel model file loading path is /home/tomas/Documents/MataVR-PCBs/HMD-Analog/
Background thread stopped with timeout = 0
Note: Compatibility modes selected: ps lt a
Circuit: KiCad schematic
Warning, ngspice assumes default parameter(s) for ac simulation
Check your input line '.ac dec 1000 10k 100m'
Reducing trtol to 1 for xspice 'A' devices
Doing analysis at TEMP = 27,000000 and TNOM = 27,000000
Note: Starting dynamic gmin stepping
Warning: Dynamic gmin stepping failed
Note: Starting true gmin stepping
Warning: True gmin stepping failed
Note: Starting source stepping
Warning: source stepping failed
Note: Transient op started
Warning: singular matrix:  check nodes xu1.201 and xu1.10
Error: Transient op failed, timestep too small
Error: The operating point could not be simulated successfully.
Any of the following steps may fail.!
AC operating point failed -
Last Node Voltages
------------------
Node                                   Last Voltage        Previous Iter
----                                   ------------        -------------
probe_int_net-_c2-pad1__c2_1                   -nan                 -nan
probe_int_probe_int_net-_c2-pad2__c2_c2_2                    0                    0
probe_int_net-_c2-pad2__c2                        0                    0
net-_c2-pad2_                                     0                    0
c2probe_int_vref                               -nan                 -nan
c2:power                                       -nan                 -nan
net-_c2-pad1_                                  -nan                 -nan
probe_int_/feedback_c3_1                       -nan                 -nan
probe_int_probe_int_net-_c2-pad1__c3_c3_2                  nan                 -nan
probe_int_net-_c2-pad1__c3                     -nan                 -nan
c3probe_int_vref                               -nan                 -nan
c3:power                                       -nan                 -nan
/feedback                                      -nan                 -nan
probe_int_/feedback_r1_1                       -nan                 -nan
probe_int_probe_int_net-_c2-pad1__r1_r1_2                 -nan                 -nan
probe_int_net-_c2-pad1__r1                     -nan                 -nan
r1probe_int_vref                               -nan                 -nan
r1:power                                       -nan                 -nan
probe_int_/out_l1_1                            -nan                 -nan
probe_int_probe_int_net-_c2-pad1__l1_l1_2                 -nan                 -nan
probe_int_net-_c2-pad1__l1                     -nan                 -nan
l1probe_int_vref                               -nan                 -nan
l1:power                                       -nan                 -nan
/out                                           -nan                 -nan
probe_int_probe_int_net-_u1-v+__xu1_3_xu1_3                    5                    5
xu1.1020                                        nan                 -nan
probe_int_probe_int_gnd_xu1_4_xu1_4                    0                    0
xu1.1030                                       -nan                  nan
xu1.98                                          nan                 -nan
xu1.106                                        -nan                 -nan
xu1.113                                        -nan                 -nan
xu1.99                                          nan                 -nan
xu1.111                                         nan                 -nan
xu1.110                                         nan                 -nan
xu1.112                                        -nan                  nan
xu1.1                                          -nan                 -nan
probe_int_probe_int_gnd_xu1_1_xu1_1                    0                    0
xu1.9                                          -nan                 -nan
probe_int_probe_int_/feedback_xu1_2_xu1_2                 -nan                 -nan
xu1.2                                          -nan                 -nan
xu1.3                                          -nan                  nan
xu1.40                                         -nan                  nan
xu1.41                                          nan                 -nan
xu1.42                                         -nan                  nan
xu1.6                                          -nan                  nan
xu1.5                                          -nan                  nan
xu1.20                                          nan                 -nan
xu1.21                                          nan                 -nan
xu1.7                                          -nan                  nan
xu1.22                                          nan                 -nan
xu1.23                                          nan                 -nan
xu1.51                                          nan                 -nan
xu1.50                                          nan                 -nan
xu1.53                                          nan                 -nan
xu1.52                                          nan                 -nan
xu1.31                                          nan                 -nan
xu1.30                                          nan                 -nan
xu1.33                                          nan                 -nan
xu1.32                                          nan                 -nan
xu1.10                                          nan                 -nan
xu1.11                                         -nan                  nan
xu1.12                                          nan                 -nan
xu1.80                                          nan                 -nan
xu1.81                                          1,5                  1,5
xu1.82                                         -nan                 -nan
xu1.83                                         -nan                 -nan
xu1.200                                         nan                 -nan
xu1.201                                         nan                 -nan
xu1.210                                        -nan                 -nan
xu1.60                                          nan                 -nan
xu1.61                                          nan                 -nan
xu1.62                                          nan                 -nan
xu1.63                                          nan                 -nan
xu1.64                                         -nan                  nan
xu1.65                                          nan                 -nan
xu1.66                                         -nan                  nan
xu1.220                                        -nan                 -nan
xu1.230                                        -nan                 -nan
xu1.240                                        -nan                 -nan
xu1.245                                        -nan                 -nan
xu1.250                                        -nan                 -nan
xu1.255                                        -nan                 -nan
xu1.260                                        -nan                 -nan
xu1.265                                        -nan                 -nan
xu1.270                                        -nan                 -nan
xu1.280                                        -nan                 -nan
xu1.285                                        -nan                 -nan
xu1.290                                        -nan                 -nan
xu1.292                                        -nan                 -nan
xu1.291                                        -nan                 -nan
xu1.295                                        -nan                 -nan
xu1.300                                         nan                 -nan
xu1.301                                         nan                 -nan
xu1.302                                         nan                 -nan
xu1.303                                         nan                 -nan
xu1.310                                        -nan                 -nan
xu1.304                                         nan                 -nan
xu1.305                                         nan                 -nan
xu1.306                                         nan                 -nan
xu1.307                                         nan                 -nan
xu1.73                                          nan                 -nan
xu1.74                                         -nan                  nan
xu1.75                                         -nan                  nan
xu1.314                                         nan                 -nan
xu1.311                                        -nan                 -nan
xu1.312                                        -nan                 -nan
xu1.315                                         nan                 -nan
xu1.313                                        -nan                 -nan
probe_int_probe_int_/out_xu1_5_xu1_5                 -nan                 -nan
probe_int_gnd_xu1_1                               0                    0
xu1probe_int_vref                              -nan                 -nan
xu1:power                                      -nan                 -nan
probe_int_/out_xu1_5                           -nan                 -nan
probe_int_gnd_xu1_4                               0                    0
probe_int_net-_u1-v+__xu1_3                       5                    5
probe_int_/feedback_xu1_2                      -nan                 -nan
net-_u1-v+_                                       5                    5
probe_int_/out_r2_1                            -nan                 -nan
probe_int_probe_int_gnd_r2_r2_2                    0                    0
probe_int_gnd_r2                                  0                    0
r2probe_int_vref                               -nan                 -nan
r2:power                                       -nan                 -nan
probe_int_net-_c2-pad2__v1_1                      0                    0
probe_int_gnd_v1_2                                0                    0
probe_int_net-_u1-v+__v2_1                        5                    5
probe_int_gnd_v2_2                                0                    0
v1probe_int_vref                                  0                    0
v2probe_int_vref                                2,5                  2,5
v2:power                                       -nan                  nan
v1:power                                       -nan                 -nan
probe_int_/feedback_c1_1                       -nan                 -nan
probe_int_probe_int_gnd_c1_c1_2                    0                    0
probe_int_gnd_c1                                  0                    0
c1probe_int_vref                               -nan                 -nan
c1:power                                       -nan                 -nan
probe_int_gnd_c4_1                                0                    0
probe_int_probe_int_/feedback_c4_c4_2                 -nan                 -nan
probe_int_/feedback_c4                         -nan                 -nan
c4probe_int_vref                               -nan                 -nan
c4:power                                       -nan                 -nan
bprobe_int_c4power#branch                         0                    0
c4:probe_int_n1#branch                         -nan                 -nan
c4:probe_int_n2#branch                         -nan                 -nan
bprobe_int_c4vref#branch                          0                    0
bprobe_int_c1power#branch                         0                    0
c1:probe_int_n1#branch                         -nan                 -nan
c1:probe_int_n2#branch                         -nan                 -nan
bprobe_int_c1vref#branch                          0                    0
bprobe_int_v1power#branch                         0                    0
v1:probe_int_n1#branch                         -nan                 -nan
v1:probe_int_n2#branch                         -nan                 -nan
bprobe_int_v2power#branch                         0                    0
v2:probe_int_n1#branch                          nan                 -nan
v2:probe_int_n2#branch                          nan                 -nan
bprobe_int_v2vref#branch                          0                    0
bprobe_int_v1vref#branch                          0                    0
bprobe_int_r2power#branch                         0                    0
r2:probe_int_n1#branch                         -nan                 -nan
r2:probe_int_n2#branch                         -nan                 -nan
bprobe_int_r2vref#branch                          0                    0
bprobe_int_xu1power#branch                        0                    0
xu1:probe_int_100#branch                       -nan                 -nan
xu1:probe_int_101#branch                       -nan                 -nan
xu1:probe_int_102#branch                        nan                 -nan
xu1:probe_int_103#branch                        nan                 -nan
xu1:probe_int_104#branch                       -nan                 -nan
bprobe_int_xu1vref#branch                         0                    0
bprobe_int_l1power#branch                         0                    0
l1:probe_int_n1#branch                         -nan                 -nan
l1:probe_int_n2#branch                         -nan                 -nan
bprobe_int_l1vref#branch                          0                    0
bprobe_int_r1power#branch                         0                    0
r1:probe_int_n1#branch                         -nan                 -nan
r1:probe_int_n2#branch                         -nan                 -nan
bprobe_int_r1vref#branch                          0                    0
bprobe_int_c3power#branch                         0                    0
c3:probe_int_n1#branch                         -nan                 -nan
c3:probe_int_n2#branch                         -nan                 -nan
bprobe_int_c3vref#branch                          0                    0
bprobe_int_c2power#branch                         0                    0
c2:probe_int_n1#branch                         -nan                 -nan
c2:probe_int_n2#branch                         -nan                 -nan
bprobe_int_c2vref#branch                          0                    0
v.xu1.vmeas9#branch                            -nan                 -nan
v.xu1.vmeas8#branch                            -nan                 -nan
v.xu1.vmeas6#branch                            -nan                  nan
v.xu1.vmeas5#branch                            -nan                  nan
v.xu1.vmeas4#branch                            -nan                  nan
v.xu1.vmeas3#branch                            -nan                  nan
h.xu1.h1#branch                                 nan                 -nan
v.xu1.vsense1#branch                            nan                 -nan
h.xu1.hvn1#branch                                 0                    0
v.xu1.vmeas2#branch                            -nan                  nan
h.xu1.hvn#branch                                  0                    0
v.xu1.vmeas1#branch                            -nan                  nan
l.xu1.lout#branch                              -nan                 -nan
l.xu1.l290#branch                              -nan                 -nan
l.xu1.lcmrr#branch                              nan                 -nan
l1#branch                                      -nan                 -nan
e.xu1.e301#branch                               nan                 -nan
e.xu1.e295#branch                                 0                    0
e.xu1.e290#branch                              -nan                 -nan
e.xu1.e280#branch                              -nan                 -nan
e.xu1.e61#branch                               -nan                  nan
e.xu1.e60#branch                                nan                 -nan
e.xu1.epd#branch                               -nan                 -nan
e.xu1.e4#branch                                   0                    0
e.xu1.e3#branch                                -nan                 -nan
e.xu1.e2#branch                                -nan                  nan
e.xu1.e1#branch                                -nan                 -nan
c4#branch                                      -nan                 -nan
c1#branch                                      -nan                 -nan
v2#branch                                       nan                 -nan
v1#branch                                      -nan                 -nan
r2#branch                                      -nan                 -nan
xu1:104#branch                                 -nan                 -nan
xu1:103#branch                                  nan                 -nan
xu1:102#branch                                  nan                 -nan
xu1:101#branch                                 -nan                 -nan
xu1:100#branch                                 -nan                 -nan
v.xu1.voutn1#branch                            -nan                  nan
v.xu1.voutp1#branch                            -nan                  nan
v.xu1.vioutn#branch                             nan                 -nan
v.xu1.vioutp#branch                             nan                 -nan
v.xu1.voutn#branch                             -nan                  nan
v.xu1.voutp#branch                              nan                 -nan
v.xu1.vpd1#branch                              -nan                 -nan
v.xu1.vpd#branch                               -nan                 -nan
v.xu1.vnip1#branch                             -nan                  nan
v.xu1.vnip#branch                              -nan                  nan
v.xu1.vnin1#branch                             -nan                  nan
v.xu1.vnin#branch                              -nan                  nan
v.xu1.vvn1#branch                              -nan                  nan
v.xu1.vvn#branch                               -nan                  nan
v.xu1.vinn#branch                              -nan                  nan
v.xu1.vinp#branch                              -nan                  nan
v.xu1.vos#branch                               -nan                  nan
l1#branch                                      -nan                 -nan
r1#branch                                      -nan                 -nan
c3#branch                                      -nan                 -nan
c2#branch                                      -nan                 -nan
doAnalyses: AC:  Timestep too small; frequency = 0: trouble with xu1:diode-instance d.xu1.dioutp
run simulation(s) aborted

I am also thinking if the original ADA4891.cir file I use for simulation is not on blame, here’s link to it. ADA4891-1 Datasheet and Product Info | Analog Devices

Does anyone know what might be causing it? It would be really helpful, thank you.

In your circuit diagram:

What is the inductance of L1: 1T, 1 Tera Henry, 1e12 H ?
What is the capacitance of C2: 1T, 1 Tera Farad, 1e12 F ?

These values are far beyond any realistic assumption.

Node 1 of the OpAmp is at ground, one of the rails of the power supply. Is the common mode range of the OpAmp up to its rails?

This schematic is basically heavily inspired by this video https://youtu.be/U6tP78BLr_A?si=nMvDju3k7inqxLnv&t=86.

It should be, IRL it works fine, it’s just instable so I want to calculate what capacitor value to add to make it more stable.

Just another issue: 100m is 100 milli. You will need 100Meg

Okay, changed that, however no visible change has happened.

That is indeed what is used in the linked to video.
They are used to combine DC and AC (open loop) analysis in an opamp circuit without changing the schematic in between.

The concept looks interesting. I’ll revisit that video soon, when I have some more time available.

Why don’t you start with exactly the circuit shown in the video (and shown in the image of the previous post)?

Only when that is working, you might add or remove items to get closer to your circuit idea.

This technique where you break the loop and inject a test signal is actually pretty interesting – you are looking at the phase-gain plots to ensure there is enough phase margin when the gain crosses 0dB. Some time ago I wound an injection transformer on a toroid and ran tests on a power supply to look at the bode plots on my keysight scope, similar to this:

Measuring a buck converter’s loop gain and phase using a PicoScope

You don’t want this to happen:
A great example of instability

A paper from ti:
How to Measure the Loop Transfer Function of Power Supplies

And an app note from siglent:
Measuring Power Supply Control Loop Response with Bode Plot

These are all power supply examples (and Bob and other power supply folks probably have more insight), but this injection approach applies to any feedback control system, including opamp circuits.

This topic was automatically closed after 90 days. New replies are no longer allowed.