Diode with +15v, ~0mA?

Help
arielCo
2014-02-09
2014-02-11
  • arielCo
    arielCo
    2014-02-09

    Hello,

    Netlist: http://pastebin.com/ajLyyFBG
    Schematic & plots: http://imgur.com/a/IQGYd

    I'm trying to simulate a Royer-like oscillator (schematic: http://i.imgur.com/i9T7yJ0.png), and when I add IC=0 to the choke that makes it operate in 'current mode' it doesn't start, but that's not what bothers me. It's that the two Schottky diodes seem to have +15v across them at ~12 uA (the last two plots show the difference between method=trap and method=gear). Am I missing something?

    The diodes work fine in a simple half-wave rectifier at the same frequency, peaking at roughly 0.6v, 4A.

    Thanks for your time.
    - Ariel

     
    Last edit: arielCo 2014-02-09
  • marcel hendrix
    marcel hendrix
    2014-02-09

    The 1n5819 has 0.5 mA reverse current at room temperature.
    I tried with a 8V zener and it worked nicely (100 kHz).

    -marcel

     
  • arielCo
    arielCo
    2014-02-10

    I'm not sure I understand; did you test the physical device? The rectifier I mentioned was a simulation to test the model, but the circuit seems to work fine in real life.

    A zener wouldn't work here, since it's only supposed to turn off the opposite xtor by pulling the gate down; the designer picked Schottkys to make sure the xtors turn off completely. I also tried ngspice's default DIODE model with similar results.

    The issue here is that there's a diode with not 0.6 or 1.0 v but 15v of forward bias and practically zero current going through it. And I'm really at a loss about the reason.

     
  • marcel hendrix
    marcel hendrix
    2014-02-10

    The 0.5 mA is from the 1N5819 datasheet.

    I do not observe the 15V forward bias. For that to happen the MOSTs should be on?

    Indeed, using a zener is a very bad idea (it works in the simulator, in real life one would blow up the gates with overvoltage from the resonant capacitor).

    I do not understand why a Schottky is needed here as the threshold of a MOST is several volts. (With bipolars yes, of course).

    Appended is the circuit I tested. I had to set level6 on the DMOS and level1
    on the mINTER to make the circuit really oscillate (it dies out with most
    other settings. Don't set uic!).

    -marcel

    * royer
    v1 vdd 0 15
    l1 vdd n001 5mh
    l2 n001 n003 2u
    l3 n002 n001 2u
    c1 n003 n002 330n ic=30
    X1 n003 n004 0 FDB7030BL
    X2 n002 n005 0 FDB7030BL
    r1 vdd n005 240
    r2 vdd n004 240
    d1 n005 n003 1N5819
    d2 n004 n002 1N5819
    k l2 l3 0.6
    .MODEL 1N5819 D(IS=1.19279e-05 RS=0.0625421 N=1.16517 EG=1.3 XTI=3.22098 BV=40 IBV=0.001 CJO=1.50114e-10 VJ=1.5 M=0.590203 FC=0.5 TT=2.6273e-08 KF=0 AF=1)
    .param temp=30
    .tran 1u 1ms 
    .options method=gear reltol=0.01
    
    .subckt FDB7030BL 20 10 30
    Rg 10 1 3
    M1 2 1 3 3 DMOS L=1u W=1u
    .MODEL DMOS NMOS VTO={1.7(-0.003336TEMP+1.0834)} KP={(-0.04TEMP+65)} THETA=0.086 VMAX=3E5 LEVEL=6
    Cgs 1 3 2500p
    Rd 20 4 2m TC=0.004
    Dds 3 4 DDS
    .MODEL DDS D BV={30(0.0007328*TEMP+0.98168)} M=0.377 CJO=1083p VJ=1.22
    Dbody 3 20 DBODY
    .MODEL DBODY D IS=1.4E-13 N=1 RS=37.9m TT=55n
    .MODEL mINTER NMOS VTO=0 KP=10 LEVEL=1
    Ra 4 2 2m TC=0.004
    Rs 3 5 0.2m
    Ls 5 30 5n
    M2 1 8 6 6 mINTER L=1u
    E2 8 6 4 1 2
    Cgdmax 7 4 1300p
    Rcgd 7 4 10meg
    Dgd 6 4 DGD
    Rdgd 4 6 10meg
    .MODEL DGD D M=0.6 CJO=1300p VJ=0.35
    M3 7 9 1 1 mINTER L=1u
    E3 9 1 4 1 -2
    .ends FDB7030BL_FC
    
    .end
    
     
    Last edit: marcel hendrix 2014-02-10
    Attachments
  • arielCo
    arielCo
    2014-02-10

    | The 0.5 mA is from the 1N5819 datasheet.
    Yup, but it's not too relevant here.

    | I do not observe the 15V forward bias. For that to happen the
    | MOSTs should be on?
    Nevermind. Turns out that the Schottky symbol in gschem has the pin sequence backwards so that's 15v reverse bias (gate1=15v, drain2=0v).

    | I do not understand why a Schottky is needed here as the threshold of a
    | MOST is several volts. (With bipolars yes, of course).
    VTO={1.7*(-0.003336*TEMP+1.0834)} = 1.67v
    The datasheet says 1.9v typ.

    | Appended is the circuit I tested. I had to set level6 on the DMOS and level1
    | on the mINTER to make the circuit really oscillate (it dies out with most
    | other settings.
    I tried it (I had to restore several missing '*'s in the model params). Now both FETs begin on but current in the inductors goes "upwards" (towards vdd), and when it reaches 0A all drain and gate voltages jump to vdd and the currents stick at 0 (see http://imgur.com/a/F0yC4).

    | Don't set uic!).
    Why? I added IC=0 to L3 because it started out at ~2kA and rose linearly from then on. With your circuit L3 starts at 10A "upwards" and crosses zero.

     
    Last edit: arielCo 2014-02-10
  • marcel hendrix
    marcel hendrix
    2014-02-10

    (I had to restore several missing '*'s in the model params).

    This appears to happen when editing a posting after preview:
    the sf software (sometimes) reformats text marked as ascii.

    I'll check out your interesting observations and attach my
    original files later this day.

    -marcel

     
  • marcel hendrix
    marcel hendrix
    2014-02-10

    Unfortunately I recompiled ngspice yesterday with a
    different set of features, and I cannot simply rerun
    your circuit.

    With my current ngspice there are issues - mINTER must be
    set to LEVEL=6, and then uic is indeed necessary to
    make it work. The LEVEL=6 device does not recognize kp.
    Most other levels produce non-convergence after a few to
    a few hundred microseconds.

    The supply current linearly increases (it may eventually
    stabilize). I cannot observe the 10A Ids -- to see this I would
    need to change the .net file because the drain currents
    are not saved.

    -marcel

    Circuit: * royer
    
    Model issue on line 0 : .model x1:minter nmos vto=0 kp=10 level=6 ...
    unrecognized parameter (kp) - ignored
    Model issue on line 0 : .model x2:minter nmos vto=0 kp=10 level=6 ...
    unrecognized parameter (kp) - ignored
    Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
    
     Reference value :  9.65803e-04
    
    No. of Data Rows : 23367
    elapsed time since last call: 1.549 seconds.
    
    Total elapsed time: 1.551 seconds.
    
    Total DRAM available = 12279.117188 MB.
    DRAM currently available = 9182.183594 MB.
    Total ngspice program size = 4.373047 MB.
    Resident set size = 4.147461 MB.
    Shared ngspice pages = 468.000 kB.
    Text (code) pages = 2.000 kB.
    Stack = 632.000 kB.
    Library pages = 3.071289 MB.
    ngspice 262 -> quit
    
     
    Last edit: marcel hendrix 2014-11-01
    Attachments
  • arielCo
    arielCo
    2014-02-10

    Unfortunately I recompiled ngspice yesterday with a
    different set of features, and I cannot simply rerun
    your circuit.

    I also git-pulled and recompiled before simulating. Maybe I should try again with a tarball release.

    With my current ngpsice there are issues - mINTER must be
    set to LEVEL=6, and then uic is indeed necessary to
    make it work. The LEVEL=6 device does not recognize kp.
    Most other levels produce non-convergence after a few to
    a few hundred microseconds.

    Precisely my experience. Depending even on whether I put 0v sources to measure currents, it may throw "timestep too small" before 100us. Fiddling with reltol, itl4 and such helps.

    I still have these big, persistent, questions about the INITIAL CONDITIONS:

    • Why are the inductors starting with a large current? Even flowing "upstream"? (Check out the graphs. At least dI/dt is positive).
    • What's so bad about specifying an IC attribute and TRAN... UIC?

    I cannot observe the 10A Ids -- to see this I would
    need to change the .net file because the drain currents
    are not saved.

    I monitored i(l1), i(l2), i(l3), which are saved automatically.

    - arielCo

     
  • marcel hendrix
    marcel hendrix
    2014-02-11

    Interesting questions.

    Why are the inductors starting with a large current?
    Even flowing "upstream"? (Check out the graphs. At least dI/dt is positive).

    What is the time step used here? Maybe it is just a dirac pulse at time=0.
    The 'upstream' might be because of the inductor coupling.

    I see strange DC solutions very regularly in my circuits, but these die out in
    1 or 2 time steps. This strangeness is not a problem as long as it does not
    result in non-convergence.

    What's so bad about specifying an IC attribute and TRAN... UIC?

    You can specify something impossible: an open switch in series with an inductor
    that has IC=100? With 100 ampere it is obvious but 1uA is just as bad when Roff=1G.

    We normally supply only a few IC statements, assuming that the simulator will find
    the other values and won't change the ones set with IC. I think there's no
    guarantee that will always work.

    -marcel