source: trunk/simulation/ina303a1.lib@ 10

Last change on this file since 10 was 1, checked in by f.jahn, 3 years ago
File size: 16.3 KB
Line 
1* INA303A1
2*****************************************************************************
3* (C) Copyright 2012 Texas Instruments Incorporated. All rights reserved.
4*****************************************************************************
5** This model is designed as an aid for customers of Texas Instruments.
6** TI and its licensors and suppliers make no warranties, either expressed
7** or implied, with respect to this model, including the warranties of
8** merchantability or fitness for a particular purpose. The model is
9** provided solely on an "as is" basis. The entire risk as to its quality
10** and performance is with the customer.
11*****************************************************************************
12*
13** Released by: WEBENCH(R) Design Center, Texas Instruments Inc.
14* Part: INA303A1
15* Date: 01/28/2017
16* Model Type: All In One
17* Simulator: TINA-TI
18* Simulator Version: 9.3.150.4 SF-TI
19* EVM Order Number: N/A
20* EVM Users Guide: N/A
21* Datasheet: SBOS775 – September 2016
22*
23* Model Version: 1.0
24*
25*****************************************************************************
26*
27* Updates:
28*
29* Version 1.0 : Release to Web
30*
31*
32*****************************************************************************
33* Notes:
34* 1. This model is intended to be used with 5V supplies
35* 2. This model may not work with supplies less than 5V
36*
37*****************************************************************************
38.SUBCKT INA303A1 INP INN REF LATCH1 LATCH2 LIMIT1 LIMIT2 DELAY ALERT1 ALERT2 VS OUT GND
39*C_C2 0 DELAY 260p TC=0,0
40C_C2 0 DELAY 7.5p TC=0,0
41*C_C1 0 S1_IN 110p TC=0,0
42C_C1 0 S1_IN 80p TC=0,0
43R_R2 COMP1_OUT S1_IN 15237.5 TC=0,0
44R_R7 S3_IN CNTRL1_OUT 20k TC=0,0
45R_R5 LATCH2 0 1k TC=0,0
46E_U1_E1 U1_VMID 0 VS U1_N67543 0.5
47E_U1_E4 U1_N67297 0 0 INN 1
48E_U1_E8 U1_VINN_MID U1_VSN_WOCM U1_VMID 0 1
49R_U1_R12 U1_N66933 OPA_OUT 0.1 TC=0,0
50E_U1_E2 U1_N67543 0 0 GND 1
51E_U1_E7 U1_VINP_MID U1_VSP_WOCM U1_VMID 0 1
52R_U1_R11 INN U1_N67459 1 TC=0,0
53R_U1_R10 INP U1_N67465 1 TC=0,0
54R_U1_R2 U1_VINP_MID U1_OPA_INP 12.5k TC=0,0
55R_U1_R3 U1_VINN_MID U1_OPA_INN 12.5k TC=0,0
56*E_U1_E5 U1_N67465 U1_VSP_WOCM U1_CMIN 0 1.000003162
57E_U1_E5 U1_N67465 U1_VSP_WOCM U1_CMIN 0 1.00000007
58X_U1_U1 U1_OPA_INP U1_OPA_INN VS GND U1_N66933 INA301A1_OPA
59R_U1_R5 U1_OPA_INN U1_N66933 250e3 TC=3e-6,0
60*E_U1_E6 U1_N67459 U1_VSN_WOCM U1_CMIN 0 1
61E_U1_E6 U1_N67459 U1_VSN_WOCM U1_CMIN 0 9.99999930E-01
62I_U1_I1 U1_VSP_WOCM GND DC 119.9uAdc
63R_U1_R8 GND U1_N67465 540k TC=0,0
64I_U1_I2 U1_VSN_WOCM GND DC 120.1uAdc
65R_U1_R9 U1_N67459 GND 540k TC=0,0
66E_U1_E3 U1_CMIN 0 INP U1_N67297 0.5
67R_U1_R4 U1_OPA_INP REF 250e3 TC=3e-6,0
68R_U2_R1 U2_N01012 COMP1_OUT 1e6 TC=0,0
69V_U2_V1 N44121 U2_N03015 1.5e-3
70R_U2_R2 OUT U2_N01012 4e3 TC=0,0
71X_U2_U1 COMP1_OUT U2_N01012 U2_N03015 VS GND COMPARATOR
72C_C4 GND S4_IN 1n TC=0,0
73E_U100_E7 U100_N165884 0 U100_N_SUM 0 1
74E_U100_E3 U100_AOL_ZO_IN 0 OPA_OUT OUT 1
75C_U100_C6 0 U100_P1 160 TC=0,0
76R_U100_R6 U100_OUT_E4_ZO OUT 1e6 TC=0,0
77R_U100_R11 U100_P1 U100_N166036 100k TC=0,0
78E_U100_E4 U100_OUT_E4_ZO 0 U100_P2 0 1
79R_U100_R8 U100_P2 U100_N165884 2.5k TC=0,0
80G_U100_G3 U100_N_SUM 0 U100_Z1 0 -1
81E_U100_E5 U100_N166724 0 U100_AOL_ZO_IN 0 60
82C_U100_C5 U100_N165960 U100_P2 10n TC=0,0
83G_U100_G4 U100_N_SUM 0 U100_N166724 0 -1
84C_U100_C4 U100_N166302 U100_Z1 1.6u TC=0,0
85R_U100_R7 0 U100_Z1 1k TC=0,0
86R_U100_R9 U100_N165960 0 20 TC=0,0
87E_U100_E6 U100_N166302 0 U100_AOL_ZO_IN 0 1.3e6
88E_U100_E8 U100_N166036 0 U100_AOL_ZO_IN 0 8e5
89R_U100_R5 0 U100_N_SUM 1 TC=0,0
90G_U100_G5 U100_N_SUM 0 U100_P1 0 -1
91R_R8 S4_IN CNTRL2_OUT 20k TC=0,0
92E_E2 N25241 GND LIMIT2 GND 1
93X_U7 LATCH2 VS ALERT2 CNTRL2_OUT VS GND CONTROL
94C_C3 GND S3_IN 1n TC=0,0
95R_R4 LATCH1 0 1k TC=0,0
96X_S3 S3_IN GND VS S1_IN DEV_A1_SCH_S3
97*R_R3 COMP2_OUT DELAY 15237.5 TC=0,0
98R_R3 COMP2_OUT DELAY 244k TC=0,0
99R_R6 REF 0 1k TC=0,0
100X_S4 S4_IN GND VS DELAY DEV_A1_SCH_S4
101R_U4_R1 U4_N01012 COMP2_OUT 1e6 TC=0,0
102V_U4_V1 OUT U4_N03015 1.5e-3
103R_U4_R2 N25241 U4_N01012 4e3 TC=0,0
104X_U4_U1 COMP2_OUT U4_N01012 U4_N03015 VS GND COMPARATOR
105X_U6 LATCH1 VS ALERT1 CNTRL1_OUT VS GND CONTROL
106E_E1 N44121 GND LIMIT1 GND 1
107X_U3 VS LIMIT1 VS LIMIT1 VS GND LIMIT_I
108X_S1 S1_IN GND ALERT1 GND DEV_A1_SCH_S1
109X_S2 DELAY GND ALERT2 GND DEV_A1_SCH_S2
110X_U5 VS LIMIT2 VS LIMIT2 VS GND LIMIT_I
111.ENDS
112*$
113***
114***
115.subckt DEV_A1_SCH_S3 1 2 3 4
116S_S3 3 4 1 2 _S3
117RS_S3 1 2 1G
118.MODEL _S3 VSWITCH Roff=100e6 Ron=1.0 Voff=2V Von=3V
119.ends DEV_A1_SCH_S3
120*$
121***
122***
123.subckt DEV_A1_SCH_S4 1 2 3 4
124S_S4 3 4 1 2 _S4
125RS_S4 1 2 1G
126.MODEL _S4 VSWITCH Roff=100e6 Ron=1.0 Voff=2V Von=3V
127.ends DEV_A1_SCH_S4
128*$
129***
130***
131.subckt DEV_A1_SCH_S1 1 2 3 4
132S_S1 3 4 1 2 _S1
133RS_S1 1 2 1G
134.MODEL _S1 VSWITCH Roff=1e6 Ron=1.0 Voff=2.0V Von=3.0V
135.ends DEV_A1_SCH_S1
136*$
137***
138***
139.subckt DEV_A1_SCH_S2 1 2 3 4
140S_S2 3 4 1 2 _S2
141RS_S2 1 2 1G
142*.MODEL _S2 VSWITCH Roff=1e6 Ron=1.0 Voff=1.0V Von=2.0V
143.MODEL _S2 VSWITCH Roff=1e6 Ron=1.0 Voff=2.5V Von=3.5V
144.ends DEV_A1_SCH_S2
145*$
146***
147***
148.SUBCKT INA301A1_OPA VIP VIN VDD VSS VO
149XU1 VIP VIN 23 22 GNDF INPUT
150+ PARAMS: RICM = 1G RIDM = 100e6 CICM = 1000f CIDM = 1000f
151XU2 23 20 VNOISE
152+ PARAMS: NLF = 100 FLW = 0.1 NVR = 30
153XU3 12 20 VOFFS
154+ PARAMS: VOFF = 82u
155XU4 VDD VSS 22 21 GNDF PSRR
156+ PARAMS: PSRRP = 140 FPSRRP = 2 PSRRN = 140 FPSRRN = 2
157XU5 21 13 GNDF CMRR
158+ PARAMS: CMRR = 120 FCMRR = 2
159XU6 12 13 VDD VSS IBIAS
160+ PARAMS: IBIASP = 1p IBIASN = 1p
161XU7 VDD VSS IQ
162+ PARAMS: IQQ = 640u
163XU8 VDD VSS 12 13 14 15 GNDF CMR
164+ PARAMS: VMAX = 0 VMIN = 0
165XU9 14 15 11 GNDF GBW_SLEW_SE
166*+ PARAMS: AOL = 120 GBW = 10MEG SRP = 4MEG SRN = 4MEG IT = 1M
167*+ PARAMS: AOL = 120 GBW = 8.7MEG SRP = 4MEG SRN = 4MEG IT = 1M
168+ PARAMS: AOL = 120 GBW = 8MEG SRP = 4MEG SRN = 4MEG IT = 1M
169XU10 11 10 GNDF TF
170XU11 VDD VSS 10 9 VIMON GNDF VCLAMP_W_CLAW
171+ PARAMS: VMAXIO = 0.05 VMINIO = 0.02
172XU12 9 7 GNDF ZOUT
173XU13 7 VO VIMON OUT_CURRENT_CLAMP
174+ PARAMS: IMAX = 10m IMIN = 10m
175*+ PARAMS: IMAX = 9m IMIN = 9m
176XU14 VDD VSS VIMON ILOAD
177XU0 VDD VSS GNDF GND_FLOAT
178.ENDS
179*$
180**************************************
181** **
182** **
183** **
184** **
185**************************************
186.SUBCKT INPUT VIP VIN VOP VON GNDF
187+ PARAMS: RICM = 1G RIDM = 10K CICM = 100F CIDM = 100F
188V1 VIP VOP 0
189V2 VIN VON 0
190C1 VOP GNDF {CICM}
191C2 VON GNDF {CICM}
192C3 VOP VON {CIDM}
193G1 VOP GNDF VALUE = {V(VOP,GNDF)/RICM}
194G2 VON GNDF VALUE = {V(VON,GNDF)/RICM}
195G3 VOP VON VALUE = {V(VOP,VON)/RIDM}
196.ENDS
197*$
198**************************************
199** **
200** **
201** **
202** **
203**************************************
204* BEGIN PROG NSE NANO VOLT/RT-HZ
205.SUBCKT VNOISE 1 2 PARAMS: NLF = 10 FLW = 4 NVR = 4.2
206* BEGIN SETUP OF NOISE GEN - NANOVOLT/RT-HZ
207* INPUT THREE VARIABLES
208* SET UP VNSE 1/F
209********************
210* NV/RHZ AT 1/F FREQ
211* NLF
212********************
213* FREQ FOR 1/F VAL
214* FLW
215********************
216* SET UP VNSE FB
217* NV/RHZ FLATBAND
218* NVR
219********************
220* END USER INPUT
221* START CALC VALS
222.PARAM GLF={PWR(FLW,0.25)*NLF/1164}
223.PARAM RNV={1.184*PWR(NVR,2)}
224.MODEL DVN D KF={PWR(FLW,0.5)/1E11} IS=1.0E-16
225* END CALC VALS
226I1 0 7 10E-3
227I2 0 8 10E-3
228D1 7 0 DVN
229D2 8 0 DVN
230E1 3 6 7 8 {GLF}
231R1 3 0 1E9
232R2 3 0 1E9
233R3 3 6 1E9
234E2 6 4 5 0 10
235R4 5 0 {RNV}
236R5 5 0 {RNV}
237R6 3 4 1E9
238R7 4 0 1E9
239E3 1 2 3 4 1
240C1 1 0 1E-15
241C2 2 0 1E-15
242C3 1 2 1E-15
243.ENDS
244*$
245* END PROG NSE NANOV/RT-HZ
246**************************************
247** **
248** **
249** **
250** **
251**************************************
252.SUBCKT VOFFS VP VN
253+ PARAMS: VOFF = 0
254V1 VP VN {VOFF}
255.ENDS
256*$
257**************************************
258** **
259** **
260** **
261** **
262**************************************
263.SUBCKT PSRR VDD VSS VI VO GNDF
264+ PARAMS: PSRRP = 130 FPSRRP = 1.6
265+ PSRRN = 130 FPSRRN = 1.6
266.PARAM PI = 3.141592
267.PARAM RPSRRP = 1
268.PARAM GPSRRP = {PWR(10,-PSRRP/20)/RPSRRP}
269.PARAM LPSRRP = {RPSRRP/(2*PI*FPSRRP)}
270.PARAM RPSRRN = 1
271.PARAM GPSRRN = {PWR(10,-PSRRN/20)/RPSRRN}
272.PARAM LPSRRN = {RPSRRN/(2*PI*FPSRRN)}
273G1 GNDF 1 VDD GNDF {GPSRRP}
274R1 1 2 {RPSRRP}
275L1 2 GNDF {LPSRRP}
276G2 GNDF 3 VSS GNDF {GPSRRN}
277R2 3 4 {RPSRRN}
278L2 4 GNDF {LPSRRN}
279E1 VO VI VALUE = {V(1,GNDF) + V(3,GNDF)}
280C3 VDD VSS 10P
281.ENDS
282*$
283**************************************
284** **
285** **
286** **
287** **
288**************************************
289.SUBCKT CMRR VI VO GNDF PARAMS: CMRR = 130 FCMRR = 1.6K
290.PARAM PI = 3.141592
291.PARAM RCMRR = 1
292.PARAM GCMRR = {PWR(10,-CMRR/20)/RCMRR}
293.PARAM LCMRR = {RCMRR/(2*PI*FCMRR)}
294G1 GNDF 1 VI GNDF {GCMRR}
295R1 1 2 {RCMRR}
296L1 2 GNDF {LCMRR}
297E1 VI VO 1 GNDF 1
298.ENDS
299*$
300**************************************
301** **
302** **
303** **
304** **
305**************************************
306.SUBCKT IBIAS VIP VIM VDD VSS
307+ PARAMS: IBIASP = 1e-12 IBIASN = 1e-12
308IBP VDD VIP {IBIASP}
309IBN VSS VIM {IBIASN}
310.ENDS
311*$
312**************************************
313** **
314** **
315** **
316** **
317**************************************
318.SUBCKT IQ VDD VSS
319+ PARAMS: IQQ = 1M IOFF = 1P
320G1 VDD VSS VALUE = {IQQ + IOFF*0}
321.ENDS
322*$
323**************************************
324** **
325** **
326** **
327** **
328**************************************
329.SUBCKT CMR VDD VSS VIP VIM VOP VOM GNDF
330+ PARAMS: VMAX = 0 VMIN = 0
331ECLAMPP VOP GNDF VALUE = {LIMIT(V(VIP,GNDF),V(VDD,GNDF) - VMAX, V(VSS,GNDF) + VMIN)}
332ECLAMPM VOM GNDF VALUE = {LIMIT(V(VIM,GNDF),V(VDD,GNDF) - VMAX, V(VSS,GNDF) + VMIN)}
333.ENDS
334*$
335**************************************
336** **
337** **
338** **
339** **
340**************************************
341.SUBCKT GBW_SLEW_SE VIP VIM VO GNDF
342+ PARAMS: Aol = 120 GBW = 3Meg SRP = 2Meg SRN = 2Meg IT = 1M
343.PARAM PI = 3.141592
344.PARAM IP = {IF(SRP <= SRN,IT,IT*(SRP/SRN))}
345.PARAM IN = {IF(SRN <= SRP,-IT,-IT*(SRN/SRP))}
346.PARAM Cc = {IF(SRP <= SRN,IT/SRP,IT/SRN)}
347.PARAM fp = {GBW/PWR(10,Aol/20)}
348.PARAM Rc = {1/(2*PI*Cc*fp)}
349.PARAM Gc = {PWR(10,Aol/20)/Rc}
350G1 GNDF VO VALUE = {IF(V(VIP,VIM) >= 200M,IP,IF(V(VIP,VIM) <= -200M,IN,Gc*V(VIP,VIM)))}
351C1 VO GNDF {Cc}
352R1 VO GNDF {Rc}
353.ENDS
354*$
355**************************************
356** **
357** **
358** **
359** **
360**************************************
361.SUBCKT TF VI VO GNDF
362+ PARAMS: A = 1
363E1 VO GNDF VI GNDF {A}
364.ENDS
365*$
366**************************************
367** **
368** **
369** **
370** **
371**************************************
372.SUBCKT VCLAMP_W_CLAW VDD VSS VI VO VIMON GNDF
373+ PARAMS: VMAXIO = 0 VMINIO = 0
374EPCLIP VDD_CLP 0 VALUE = {IF(0 <=
375+ V(VIMON) & V(VIMON) <= 2.25M,V(VDD,GNDF) - 131.1111*V(VIMON) - VMAXIO,
376+ IF(2.25M < V(VIMON) & V(VIMON) <=
377+ 4.76M,V(VDD,GNDF) - 121.5139*V(VIMON) - 21.5936M - VMAXIO,
378+ IF(4.76M < V(VIMON) & V(VIMON) <=
379+ 6.56M,V(VDD,GNDF) - 222.2222*V(VIMON) + 457.7778M - VMAXIO,
380+ IF(6.56M < V(VIMON) & V(VIMON) <=
381+ 8M,V(VDD,GNDF) - 625*V(VIMON) + 3.1 - VMAXIO,
382+ IF(8M < V(VIMON) & V(VIMON) <
383+ 9M,V(VDD,GNDF) - 900*V(VIMON) + 5.3 - VMAXIO,V(VDD,GNDF) - VMAXIO)))))}
384ENCLIP VSS_CLP 0 VALUE = {IF(0 >= V(VIMON) & V(VIMON) >=
385+ -2.25M,V(VSS,GNDF) - 132*V(VIMON) + VMINIO,
386+ IF(-2.25M > V(VIMON) & V(VIMON) >=
387+ -4.76M,V(VSS,GNDF) - 159.3625*V(VIMON) - 61.5657M + VMINIO,
388+ IF(-4.76M > V(VIMON) & V(VIMON) >=
389+ -6.56M,V(VSS,GNDF) - 222.2222*V(VIMON) - 360.7778M + VMINIO,
390+ IF(-6.56M > V(VIMON) & V(VIMON) >=
391+ -8M,V(VSS,GNDF) - 625*V(VIMON) - 3.003 + VMINIO,
392+ IF(-8M > V(VIMON) & V(VIMON) >
393+ -9M,V(VSS,GNDF) - 900*V(VIMON) - 5.203 + VMINIO,V(VSS,GNDF) + VMINIO)))))}
394ECLAMP VO GNDF VALUE = {LIMIT(V(VI,GNDF), V(VDD_CLP), V(VSS_CLP))}
395.ENDS
396*$
397**************************************
398** **
399** **
400** **
401** **
402**************************************
403.SUBCKT ZOUT VI VO GNDF
404+ PARAMS: RO = 50
405G1 GNDF VO VI GNDF {1/RO}
406G2 VO GNDF VALUE = {V(VO,GNDF)/RO}
407.ENDS
408*$
409**************************************
410** **
411** **
412** **
413** **
414**************************************
415.SUBCKT OUT_CURRENT_CLAMP IN OUT VIMON
416+PARAMS: RSER = 1 IMAX = 10M IMIN = 10M
417HSENS VIMON 0 VSENS 1
418VSENS OUTy OUT 0
419GRESP OUTx OUTy VALUE = {LIMIT(V(OUTx,OUT)/RSER,IMAX,-IMIN)}
420GRESN IN OUTx VALUE = {-V(IN,OUTx)/RSER}
421.ENDS
422*$
423**************************************
424** **
425** **
426** **
427** **
428**************************************
429.SUBCKT ILOAD VDD VSS VIMON
430G1 VDD 0 VALUE = {IF(V(VIMON) >= 0,V(VIMON),0)}
431G2 0 VSS VALUE = {IF(V(VIMON) < 0,V(VIMON),0)}
432.ENDS
433*$
434**************************************
435** **
436** **
437** **
438** **
439**************************************
440.SUBCKT GND_FLOAT VDD VSS GNDF
441EGNDF GNDF 0 VALUE = {(V(VDD)+V(VSS))*0.5}
442*EGNDF GNDFx 0 VALUE = {(V(VDD)+V(VSS))*0.5}
443*GGNDF GNDFx GNDF VALUE = {V(GNDFx,GNDF)*1U}
444*CGNDF GNDF 0 10U
445.ENDS
446*$
447***
448***
449.SUBCKT COMPARATOR OUT INP INN VCC VEE
450emid nmid 0 VALUE = {(V(VCC) + V(VEE))/2}
451eout out nmid VALUE = {IF(V(INP) >= V(INN),V(VCC,nmid),V(VEE,nmid))}
452.ends
453*$
454***
455***
456.SUBCKT CONTROL A B C OUT VCC VEE
457EGNDF GNDF 0 VALUE = {0.5*(V(VCC) + V(VEE))}
458EA NA GNDF VALUE = {0.5*(1 + SGN(V(A,GNDF)))}
459EB NB GNDF VALUE = {0.5*(1 + SGN(V(B,GNDF)))}
460EC NC GNDF VALUE = {0.5*(1 - SGN(V(C,GNDF)))}
461EABnotC NABnotC GNDF VALUE = {V(NA,GNDF)*V(NB,GNDF)*V(NC,GNDF)}
462EOUT OUT VEE VALUE = {V(VCC,VEE)*V(NABnotC,GNDF) + V(VEE,VEE)*(1 - V(NABnotC,GNDF))}
463.ENDS
464*$
465***
466***
467.SUBCKT LIMIT_I IN OUT VC1 VC2 VCC VEE
468.PARAM m = -180u
469.PARAM b = 80u
470GOUT IN OUT VALUE = {IF(V(VC1,VC2) >= 0.1,80u,0)}
471*GOUT IN OUT VALUE = {max(V(IN,OUT)/6000,V(IN,OUT)/((V(VC1,VC2)/80u)))}
472*GOUT IN OUT VALUE = {max(V(IN,OUT)/((V(VC1,VC2)/80u))}
473*IOUT IN OUT 80u
474*GOUT IN OUT VALUE = {-max(0,b + m*V(VC1,VC2))}
475*GOUT IN OUT VALUE = {-min(80u,m*V(VC1,VC2)+b)} V(VC1,VC2)/5400
476.ENDS
477***
478***
479*$
480
Note: See TracBrowser for help on using the repository browser.