-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIdealBuck.asc
313 lines (313 loc) · 8.03 KB
/
IdealBuck.asc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
Version 4
SHEET 1 880 680
WIRE -912 -1456 -928 -1456
WIRE -1904 -1440 -1952 -1440
WIRE -1856 -1440 -1904 -1440
WIRE -1952 -1408 -2176 -1408
WIRE -1856 -1408 -1952 -1408
WIRE -1728 -1408 -1792 -1408
WIRE -1648 -1408 -1728 -1408
WIRE -1504 -1408 -1536 -1408
WIRE -1472 -1408 -1504 -1408
WIRE -912 -1392 -912 -1456
WIRE -1952 -1360 -2016 -1360
WIRE -1648 -1360 -1952 -1360
WIRE -1520 -1360 -1552 -1360
WIRE -1472 -1360 -1520 -1360
WIRE -1120 -1360 -1168 -1360
WIRE -1088 -1360 -1120 -1360
WIRE -2176 -1344 -2176 -1408
WIRE -2016 -1344 -2016 -1360
WIRE -1168 -1344 -1168 -1360
WIRE -2176 -1248 -2176 -1264
WIRE -2016 -1248 -2016 -1264
WIRE -640 -1216 -672 -1216
WIRE -608 -1216 -640 -1216
WIRE -496 -1216 -528 -1216
WIRE -400 -1216 -496 -1216
WIRE -240 -1216 -320 -1216
WIRE -112 -1216 -240 -1216
WIRE -912 -1200 -912 -1312
WIRE -672 -1200 -672 -1216
WIRE -496 -1200 -496 -1216
WIRE -240 -1200 -240 -1216
WIRE -672 -1104 -672 -1120
WIRE -496 -1104 -496 -1136
WIRE -240 -1104 -240 -1136
WIRE -2256 -1024 -2288 -1024
WIRE -2224 -1024 -2256 -1024
WIRE -1936 -1024 -2016 -1024
WIRE -1824 -1024 -1936 -1024
WIRE -1776 -1024 -1824 -1024
WIRE -1600 -1024 -1696 -1024
WIRE -1472 -1024 -1552 -1024
WIRE -1424 -1024 -1472 -1024
WIRE -1296 -1024 -1344 -1024
WIRE -1152 -1024 -1168 -1024
WIRE -1120 -1024 -1152 -1024
WIRE -2288 -1008 -2288 -1024
WIRE -1600 -1008 -1600 -1024
WIRE -1296 -1008 -1296 -1024
WIRE -1120 -1008 -1120 -1024
WIRE -912 -1008 -912 -1120
WIRE -880 -1008 -912 -1008
WIRE -848 -1008 -880 -1008
WIRE -464 -1008 -768 -1008
WIRE -1824 -992 -1824 -1024
WIRE -1552 -992 -1552 -1024
WIRE -1472 -992 -1472 -1024
WIRE -2288 -912 -2288 -928
WIRE -1824 -896 -1824 -928
WIRE -1600 -896 -1600 -928
WIRE -1552 -896 -1552 -944
WIRE -1472 -896 -1472 -928
WIRE -1296 -896 -1296 -928
WIRE -1120 -896 -1120 -928
WIRE -912 -864 -912 -1008
WIRE -736 -832 -800 -832
WIRE -640 -832 -736 -832
WIRE -1872 -816 -2000 -816
WIRE -1776 -816 -1872 -816
WIRE -800 -800 -800 -832
WIRE -2000 -784 -2000 -816
WIRE -800 -704 -800 -720
WIRE -2000 -688 -2000 -704
WIRE -912 -640 -912 -784
WIRE -880 -640 -912 -640
WIRE -1936 -624 -2000 -624
WIRE -1808 -624 -1856 -624
WIRE -1776 -624 -1808 -624
WIRE -1424 -624 -1520 -624
WIRE -1360 -624 -1424 -624
WIRE -2256 -608 -2352 -608
WIRE -1776 -608 -1776 -624
WIRE -1520 -608 -1520 -624
WIRE -2000 -592 -2000 -624
WIRE -1776 -512 -1776 -544
WIRE -2000 -496 -2000 -512
WIRE -1520 -496 -1520 -528
WIRE -976 -464 -1072 -464
WIRE -816 -464 -976 -464
WIRE -1072 -448 -1072 -464
WIRE -1072 -352 -1072 -368
WIRE -1008 -288 -1072 -288
WIRE -944 -288 -1008 -288
WIRE -1072 -256 -1072 -288
WIRE -1072 -160 -1072 -176
FLAG -928 -1456 a
IOPIN -928 -1456 In
FLAG -1120 -896 0
FLAG -2016 -1248 0
FLAG -2176 -1248 0
FLAG -1952 -1408 reset
FLAG -1952 -1360 set
FLAG -1728 -1408 trip_reset
FLAG -464 -1008 c
IOPIN -464 -1008 Out
FLAG -1520 -1360 q
FLAG -672 -1104 0
FLAG -496 -1104 0
FLAG -880 -640 p
IOPIN -880 -640 BiDir
FLAG -880 -1008 Sw
FLAG -1872 -816 sense_slope
FLAG -640 -1216 I_out
FLAG -240 -1104 0
FLAG -2352 -608 Vc
IOPIN -2352 -608 In
FLAG -1504 -1408 q_bar
FLAG -2000 -496 0
FLAG -1776 -512 0
FLAG -1808 -624 trip
FLAG -1904 -1440 trip2
FLAG -1168 -1264 0
FLAG -2288 -912 0
FLAG -2256 -1024 ramp
FLAG -2000 -688 0
FLAG -800 -704 0
FLAG -736 -832 Rdiode
FLAG -1936 -1024 I_sense
FLAG -1472 -896 0
FLAG -1824 -896 0
FLAG -1600 -896 0
FLAG -1552 -896 0
FLAG -1152 -1024 I_L
FLAG -1296 -896 0
FLAG -1520 -496 0
FLAG -1424 -624 trip2
FLAG -1072 -160 0
FLAG -1008 -288 On_time
FLAG -1072 -352 0
FLAG -976 -464 On-time-ramp
FLAG -1120 -1360 R_fet
SYMBOL h -1120 -1024 R0
WINDOW 123 32 126 Left 2
SYMATTR Value2 1
SYMATTR InstName H1
SYMATTR Value V1
SYMBOL voltage -912 -1216 R0
SYMATTR InstName V1
SYMATTR Value 0
SYMBOL srflop -1600 -1312 M180
WINDOW 0 -41 153 Left 2
SYMATTR InstName A1
SYMBOL voltage -2016 -1360 M0
WINDOW 3 -757 111 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 0 -72 52 Left 2
SYMATTR Value PULSE(0 1 0 {Trise_fall} {Trise_fall} {Ton_min} {Period})
SYMATTR InstName V2
SYMBOL voltage -2176 -1360 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 3 -13 169 Left 2
WINDOW 0 40 59 Left 2
SYMATTR Value PULSE(0 1 {Ton_max} {Trise_fall} {Trise_fall} {Trise_fall} {Period})
SYMATTR InstName V3
SYMBOL h -672 -1216 R0
WINDOW 123 -77 84 Left 2
WINDOW 0 -80 30 Left 2
WINDOW 3 -78 57 Left 2
SYMATTR Value2 1
SYMATTR InstName H2
SYMATTR Value V5
SYMBOL res -512 -1232 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R8
SYMATTR Value 100
SYMBOL cap -512 -1200 R0
WINDOW 0 47 20 Left 2
WINDOW 3 43 49 Left 2
SYMATTR InstName C5
SYMATTR Value 100n
SYMBOL voltage -2288 -1024 R0
WINDOW 3 -14 -85 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 0 -87 52 Left 2
SYMATTR Value PULSE(0 {SlopeAmp} 0 {Period - 2*Trise_fall} {Trise_fall} {Trise_fall} {Period})
SYMATTR InstName V4
SYMBOL res -896 -1296 R180
WINDOW 0 -45 64 Left 2
WINDOW 3 -144 37 Left 2
SYMATTR InstName R9
SYMATTR Value R = V(R_fet)
SYMBOL bv -2000 -800 R0
WINDOW 0 -93 51 Left 2
WINDOW 3 41 49 Left 2
SYMATTR InstName B1
SYMATTR Value V={Ri}*V(I_sense) + V(ramp)
SYMBOL voltage -864 -1008 R270
WINDOW 0 32 56 VTop 2
WINDOW 3 -32 56 VBottom 2
SYMATTR InstName V5
SYMATTR Value 0
SYMBOL res -304 -1232 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R10
SYMATTR Value 1000
SYMBOL cap -256 -1200 R0
WINDOW 0 43 22 Left 2
WINDOW 3 42 52 Left 2
SYMATTR InstName C7
SYMATTR Value 10n
SYMBOL Digital\\or -1824 -1360 M180
WINDOW 0 -8 110 Left 2
SYMATTR InstName A2
SYMBOL bv -2000 -608 R0
WINDOW 0 -83 71 Left 2
WINDOW 3 26 129 Left 2
SYMATTR InstName B2
SYMATTR Value V=if( V(sense_slope) > V(Vc), 1, 0)
SYMBOL res -1840 -640 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R11
SYMATTR Value 100
SYMBOL cap -1792 -608 R0
SYMATTR InstName C8
SYMATTR Value 10p
SYMBOL bv -1168 -1360 R0
WINDOW 0 -114 -110 Left 2
WINDOW 3 -139 -79 Left 2
SYMATTR InstName B3
SYMATTR Value V=if( V(q) > 0.5, 1m, 100k)
SYMBOL res -896 -768 R180
WINDOW 0 36 76 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R2
SYMATTR Value R=V(Rdiode)
SYMBOL bv -800 -816 R0
WINDOW 0 -70 52 Left 2
WINDOW 3 51 60 Left 2
SYMATTR InstName B4
SYMATTR Value V= if( V(Sw) < V(p), 1m, 100k )
SYMBOL res -1328 -1040 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 300
SYMBOL cap -1488 -992 R0
SYMATTR InstName C3
SYMATTR Value 10p
SYMBOL e -1600 -1024 M0
WINDOW 0 45 41 Left 2
WINDOW 3 58 69 Left 2
SYMATTR InstName E1
SYMATTR Value 1
SYMBOL res -1680 -1040 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 300
SYMBOL cap -1840 -992 R0
SYMATTR InstName C4
SYMATTR Value 10p
SYMBOL bv -1296 -1024 R0
WINDOW 3 -122 167 Left 2
WINDOW 0 43 58 Left 2
SYMATTR Value V= limit( V(I_L), 0, 20)
SYMATTR InstName B5
SYMBOL bv -1520 -624 R0
SYMATTR InstName B6
SYMATTR Value V= V(trip) - V(set)
SYMBOL bv -1072 -272 R0
WINDOW 0 46 57 Left 2
WINDOW 3 42 88 Left 2
SYMATTR InstName B7
SYMATTR Value V=if( V(q) > 0.5, V(On-time-ramp), 0 )
SYMBOL voltage -1072 -464 R0
WINDOW 3 41 71 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
WINDOW 0 43 46 Left 2
SYMATTR Value PULSE(0 {1} 0 {Period - 2*Trise_fall} {Trise_fall} {Trise_fall} {Period})
SYMATTR InstName V6
TEXT 16 -1384 Left 2 !.param SlopeAmp = 0.5
TEXT 32 -1168 Left 2 !.param Trise_fall = 1n
TEXT 16 -1432 Left 2 !.param Fs = 100k
TEXT 32 -1112 Left 2 !.param Period = {1/Fs}
TEXT 40 -1064 Left 2 !.param cycles = 50000
TEXT 32 -1000 Left 2 !.param Ton_min = {D_min/Fs}
TEXT 32 -976 Left 2 !.param Ton_max = {D_max/Fs}
TEXT 24 -1312 Left 2 !.param D_min = 5
TEXT 24 -1336 Left 2 !.param D_max = 90
TEXT 16 -1408 Left 2 !.param Ri = 0.25
TEXT 40 -928 Left 2 !.param FET_on_R = 1m
TEXT 64 -200 Left 2 ;Drawn : Mark Dimattina
TEXT 64 -248 Left 4 ;Title : IdealBuck
TEXT 64 -136 Left 2 ;Rev: 0.04
TEXT 64 -168 Left 2 ;Date: 25/07/2017
TEXT 64 -104 Left 2 ;[email protected]
LINE Normal -1008 -960 -1088 -960 2
LINE Normal -960 -1136 -1008 -960 2
LINE Normal -976 -1136 -976 -1136 2
LINE Normal -704 -1120 -768 -1056 2
LINE Normal -2032 -928 -2032 -784 2
LINE Normal -1904 -1024 -2032 -928 2
LINE Normal -2176 -976 -2240 -976 2
LINE Normal -2032 -768 -2176 -976 2
RECTANGLE Normal 752 -16 -2864 -1792 2