I. Current Source

Symbol Name: CURRENT

Syntax: Ixxx n+ n- <current> [AC=<amplitude>] [load]

This circuit element sources a constant current between nodes n+ and n-. If the source is flagged as a load, the source is forced to be dissipative, that is, the current goes to zero if the voltage between nodes n+ and n- goes to zero. The purpose of this option is to model a current load on a power supply that doesn't draw current if the output voltage is zero. When flagged as a load, the current source starts to deviate from a constant current when the voltage across it drops to 0.5V. The impedance eventually drops to a resistance equal to .25Ω/amp times the value of the current source.

For AC analysis, the value of AC is used as the amplitude of the source at the analysis frequency.

Syntax: Ixxx n+ n- PULSE(Ioff Ion Tdelay Trise Tfall Ton Tperiod Ncycles)

Time-dependent pulsed current source

NameDescriptionUnits
IoffInitial valueA
IonPulsed valueA
TdelayDelaysec
TrRise timesec
TfFall timesec
TonOn timesec
TperiodPeriodsec
NcyclesNumber of cycles(Omit for free-running pulse function)cycles

Syntax: Ixxx n+ n- SINE(Ioffset Iamp Freq Td Theta Phi Ncycles)

Time-dependent sine wave current source.

Name Description Units
IoffsetDC offsetA
IampAmplitudeA
FreqFrequencyHz
TdDelaysec
ThetaDamping factor1/sec
PhiPhase of sine wavedegrees
NcyclesNumber of cycles(Omit for free-running pulse function)cycles

For times less than Td, the output current is given by

Ioffset+Iamp*sin(p*Phi/180)

For times after Td, but before Ncycles have completed, the current is given by

Ioffset+Iamp*exp(-(time-Td)*Theta)*sin(2*p*Freq*(time-Td)+p*Phi/180)

For times after Ncycles have completed, the current is the last current when Ncycles completed. Note Ncycles does not have to be an integer.

The damping factor, Theta, is the reciprocal of the decay time constant.

Syntax: Ixxx n+ n- EXP(I1 I2 Td1 Tau1 Td2 Tau2)

Time-dependent exponential current source

NameDescriptionUnits
I1 Initial value A
I2 Pulsed value A
Td1 Rise delay time sec
Tau1Rise-time constantsec
Td2 Fall delay time sec
Tau2Fall-time constantsec

For times less than Td1, the output current is I1. For times between Td1 and Td2 the current is given by

I1+(I2-I1)*(1-exp(-(time-Td1)/Tau1))

For times after Td2 the current is given by

I1+(I2-I1)*(1-exp(-(time-Td1)/Tau1))-(I2-I1)*(1-exp(-(time-Td2)/Tau2))

Syntax: Ixxx n+ n- SFFM(Ioff Iamp Fcar MDI Fsig)

Time-dependent single-frequency FM current source.

NameDescriptionUnits
IoffDC offset A
IampAmplitude A
FcarCarrier frequencyHz
MDI Modulation index -
FsigSignal frequency Hz

The current is given by

Ioff+Iamp*sin((2.*p*Fcar*time)+MDI*sin(2.*p*Fsig*time)).

Syntax: Ixxx n+ n- tbl=(<voltage, current>, <voltage, current>, ...)

The current can also be specified as a function of the voltage across the output nodes with a look-up table. This is useful for modeling the characteristics of a load.

Syntax: Ixxx n+ n- <value> step(<value1>, [<value2>], [<value3>, ...]) [load]

This is a special form for the current source. The current is specified as a list of currents to use in a step load response transient analysis. In this mode, the simulation is computed until steady state is reached at the first current in the list, <value1>. Then the current is stepped to the next value in the list, <value2>. The simulation proceeds until steady state is achieved at that current. Then the current is stepped to the next value and the process repeats until the list is exhausted. If the .tran command doesn't specify "step", then the original <value> is used.

Syntax: Ixxx n+ n- R=<value>

This is not a current source at all, but a resistor. It is used to model a resistive load when the load is netlisted as a current source.

Syntax: Ixxx n+ n- PWL(t1 i1 t2 i2 t3 i3...)

Arbitrary Piece-wise linear current source.

For times before t1, the current is i1. For times between t1 and t2, the current varies linearly between i1 and i2. There can be any number of time, current points given. For times after the last time, the current is the last current.

Syntax: Ixxx n+ n- wavefile=<filename> [chan=<nnn>]

This allows a .wav file to be used as an input to LTspice. <filename> is either a full, absolute path for the .wav file or a relative path computed from the directory containing the simulation schematic or netlist.  Double quotes may be used to specify a path containing spaces.  The .wav file may contain up to 65536 channels, numbered 0 to 65535.  Chan may be set to specify which channel is used.  By default, the first channel, number 0, is used.  The .wav file is interpreted as having a full scale range from -1A to 1A.

This source only has meaning in a .tran analysis.