smart-blog
Science & systems
← Back to posts

TVS Modeling

By Nazim

New Blog Post

Start writing your post here...

Introduction

Write your introduction here.

Conclusion

Wrap up your thoughts here.

Modeling TVS

Modeling a bi-directional Transient Voltage Suppressor (TVS) for SPICE can be accomplished using two standard industry approaches:

  1. Behavioral Math Macro-Model (B-Source with .func): Fast, convergence-friendly, and ideal for system-level SSCB transient simulations.
  2. Back-to-Back Diode Macro-Model: Uses physical SPICE diode primitives with temperature coefficients, based on standard semiconductor manufacturer modeling techniques (e.g., Littelfuse / Vishay / IEEE EMC publications).

1. Mathematical Equations for TVS Modeling

Temperature Dependence of Breakdown Voltage (VBRV_{BR})

From Figure 3, the breakdown voltage VBRV_{BR} shifts linearly with junction temperature TJT_J using a positive temperature coefficient αVBR=+0.088%/C=0.00088 C1\alpha_{VBR} = +0.088\%\text{/}^\circ\text{C} = 0.00088\text{ }^\circ\text{C}^{-1}:

VBR(TJ)=VBR(25C)[1+αVBR(TJ25C)]V_{BR}(T_J) = V_{BR}(25^\circ\text{C}) \cdot \left[ 1 + \alpha_{VBR} \cdot (T_J - 25^\circ\text{C}) \right]

  • For 1x AK3-560C-A:

  • VBR(25C)=620 VV_{BR}(25^\circ\text{C}) = 620\text{ V}

  • VBR(60C)=620[1+0.00088(6025)]=639.1 VV_{BR}(60^\circ\text{C}) = 620 \cdot \left[ 1 + 0.00088 \cdot (60 - 25) \right] = \mathbf{639.1\text{ V}}

  • For 2x AK3-560C-A Stack in Series:

  • VBR,stack(25C)=1240 VV_{BR,stack}(25^\circ\text{C}) = 1240\text{ V}

  • VBR,stack(60C)=1240[1+0.00088(6025)]=1278.2 VV_{BR,stack}(60^\circ\text{C}) = 1240 \cdot \left[ 1 + 0.00088 \cdot (60 - 25) \right] = \mathbf{1278.2\text{ V}}

Dynamic Clamping & Knee Smooth Equation

To prevent derivative discontinuities during numerical integration in SPICE, the transition from leakage to breakdown is smoothed using a hyperbolic curve-fit:

Vknee(V,TJ)=0.5[(VVBR(TJ))+(VVBR(TJ))2+Vϵ2]V_{knee}(V, T_J) = 0.5 \cdot \left[ (\vert{}V\vert{} - V_{BR}(T_J)) + \sqrt{(\vert{}V\vert{} - V_{BR}(T_J))^2 + V_{\epsilon}^2} \right]

Where:

  • Vϵ1.0 VV_{\epsilon} \approx 1.0\text{ V} is a smoothing factor for SPICE solver convergence.
  • RdynR_{dyn} is the dynamic slope resistance (0.175 Ω0.175\ \Omega per diode, or 0.35 Ω0.35\ \Omega for a 2-series stack).
  • RleakR_{leak} is the stand-off resistance (VRIR560 V10 μA=56 MΩ\frac{V_R}{I_R} \approx \frac{560\text{ V}}{10\ \mu\text{A}} = 56\text{ M}\Omega per diode).

The total current ITVS(V,TJ)I_{TVS}(V, T_J) flowing through the TVS is:

ITVS(V,TJ)=sgn(V)Vknee(V,TJ)Rdyn+VRleakI_{TVS}(V, T_J) = \text{sgn}(V) \cdot \frac{V_{knee}(V, T_J)}{R_{dyn}} + \frac{V}{R_{leak}}


2. Behavioral Source SPICE Model (.func Implementation)

This model uses a single Behavioral Current Source (B in LTspice / NGSPICE, G in PSpice) connected between nodes A and B.

spice
* ===================================================================
* BEHAVIORAL BI-DIRECTIONAL TVS DIODE STACK MODEL (2x AK3-560C-A)
* Parameters: TEMP_C (Junction Temp in °C), N_SERIES (Series Count)
* ===================================================================
.subckt TVS_AK3_STACK A B PARAMS: TEMP_C=60 N_SERIES=2

* TVS Base Parameters per Diode @ 25°C
.param VBR25 = 620.0
.param RDYN_SINGLE = 0.175
.param RLEAK_SINGLE = 56Meg
.param ALPHA = 0.00088
.param VEPS = 1.0

* Scaled Array Parameters with Temperature Coefficient
.param VBR_T = N_SERIES * VBR25 * (1 + ALPHA * (TEMP_C - 25))
.param RDYN_ARR = N_SERIES * RDYN_SINGLE
.param RLEAK_ARR = N_SERIES * RLEAK_SINGLE

* Mathematical Functions for SPICE
.func sgn(x) { if(x > 0, 1, if(x < 0, -1, 0)) }
.func vknee(v) { 0.5 * ( (abs(v) - VBR_T) + sqrt((abs(v) - VBR_T)**2 + VEPS**2) ) }
.func itvs(v) { sgn(v) * (vknee(v) / RDYN_ARR) + (v / RLEAK_ARR) }

* Behavioral Current Source
B1 A B I = itvs(V(A,B))

* Parasitic Junction Capacitance (Coss = ~1.5nF per diode stack)
C1 A B { 1.5n / N_SERIES }

.ends TVS_AK3_STACK

3. Physical Back-to-Back Diode Macro-Model

This approach models the bi-directional TVS using two anti-serial ideal SPICE diodes (D1,D2D_1, D_2) with breakdown parameters (BV, IBV), a series dynamic resistor (RdynR_{dyn}), and parallel leakage resistance (RleakR_{leak}).

text
          Node A 
            |
            +-------+-------+
            |       |       |
           [R1]    [C1]    [D1] (Zener Breakdown = V_BR / 2)
         (Rleak)  (Cj)      |
            |       |      [D2] (Anti-serial diode)
            |       |       |
            |       |      [R2] (Rdyn dynamic slope)
            |       |       |
            +-------+-------+
            |
          Node B

SPICE Netlist Code for Back-to-Back Macro-Model

spice
* ===================================================================
* BACK-TO-BACK PHYSICAL MACRO-MODEL FOR 2x AK3-560C-A IN SERIES
* Adjust temp using standard SPICE .TEMP directive or TC1 parameter
* ===================================================================
.subckt TVS_AK3_PHYSICAL A B PARAMS: T_DEG=60

* Series Dynamic Resistance & Leakage Resistance
R_DYN A N1 0.35
R_LEAK A B 112Meg
C_JOINT A B 750p

* Anti-Serial Diodes
D1 N1 N2 TVS_DIODE
D2 B  N2 TVS_DIODE

* Diode Model definition with Temperature Coefficient TC1
* BV = Breakdown Voltage @ 25C (Half per diode in anti-series configuration)
.model TVS_DIODE D (
+ IS = 1e-11
+ N = 1.05
+ BV = 620.0
+ IBV = 10m
+ RS = 0.05
+ TC1 = 0.00088
+ CJO = 1.5n
+ VJ = 0.75
+ M = 0.33
+ )

.ends TVS_AK3_PHYSICAL

4. Implementation & SPICE Simulation Commands

To test this model at 25C25^\circ\text{C} and 60C60^\circ\text{C} in LTspice, NGSPICE, or PSpice:

spice
* --- SPICE Testbench Setup ---
X_TVS1 OUT 0 TVS_AK3_STACK PARAMS: TEMP_C=25 N_SERIES=2
X_TVS2 OUT 0 TVS_AK3_STACK PARAMS: TEMP_C=60 N_SERIES=2

* Current Impulse Source (Simulating Short-Circuit Demagnetization)
I_SURGE 0 OUT PULSE(0 1300 1u 100n 100n 15u 30u)

* Simulation Command
.tran 0.1n 35u

* Operating Temperatures
.step param TEMP_C list 25 60

Summary of Model Parameters

Parameter 1x AK3-560C-A (25C25^\circ\text{C}) 1x AK3-560C-A (60C60^\circ\text{C}) 2x Stack (25C25^\circ\text{C}) 2x Stack (60C60^\circ\text{C})
Breakdown Voltage (VBRV_{BR}) 620.0 V620.0\text{ V} 639.1 V639.1\text{ V} 1240.0 V1240.0\text{ V} 1278.2 V1278.2\text{ V}
Dynamic Resistance (RdynR_{dyn}) 0.175 Ω0.175\ \Omega 0.175 Ω0.175\ \Omega 0.350 Ω0.350\ \Omega 0.350 Ω0.350\ \Omega
Leakage Resistance (RleakR_{leak}) 56 MΩ56\text{ M}\Omega 56 MΩ56\text{ M}\Omega 112 MΩ112\text{ M}\Omega 112 MΩ112\text{ M}\Omega
Temp Coeff (αVBR\alpha_{VBR}) +0.088%/C+0.088\%\text{/}^\circ\text{C} +0.088%/C+0.088\%\text{/}^\circ\text{C} +0.088%/C+0.088\%\text{/}^\circ\text{C} +0.088%/C+0.088\%\text{/}^\circ\text{C}

Comments

No comments yet. Be the first to comment!

Leave a comment

02d24bb