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.