Version 4 SHEET 1 2372 1284 WIRE 848 -224 848 -240 WIRE 848 -128 848 -144 WIRE 848 -48 848 -64 WIRE 848 48 848 32 WIRE 1536 96 1536 64 WIRE 848 128 848 112 WIRE 1536 208 1536 176 WIRE 848 224 848 208 WIRE 128 240 128 208 WIRE 848 304 848 288 WIRE 128 352 128 320 WIRE 848 400 848 384 WIRE 1888 528 1664 528 WIRE 592 544 560 544 WIRE 1664 544 1664 528 WIRE 592 576 560 576 WIRE 592 608 560 608 WIRE 592 640 560 640 WIRE 1664 640 1664 624 WIRE 1888 688 1888 528 WIRE 1888 688 1664 688 WIRE 2112 688 1888 688 WIRE 1664 768 1664 688 WIRE 1888 768 1888 688 WIRE 2112 768 2112 688 WIRE 1744 784 1712 784 WIRE 1968 784 1936 784 WIRE 2192 784 2160 784 WIRE 1712 864 1712 832 WIRE 1936 864 1936 832 WIRE 2160 864 2160 832 WIRE 592 944 560 944 WIRE 1664 944 1664 848 WIRE 1696 944 1664 944 WIRE 1888 944 1888 848 WIRE 1920 944 1888 944 WIRE 2112 944 2112 848 WIRE 2144 944 2112 944 WIRE 592 976 560 976 WIRE 1664 976 1664 944 WIRE 1888 976 1888 944 WIRE 2112 976 2112 944 WIRE 592 1008 560 1008 WIRE 1664 1104 1664 1056 WIRE 1888 1104 1888 1056 WIRE 2112 1104 2112 1056 FLAG 848 -128 0 FLAG 848 224 0 FLAG 848 48 0 FLAG 848 400 0 FLAG 848 -240 s1 FLAG 848 -64 s2 FLAG 848 112 s3 FLAG 848 288 s4 FLAG 128 352 0 FLAG 128 208 rot1 FLAG 1536 208 0 FLAG 1536 64 a FLAG 592 544 41 FLAG 592 576 42 FLAG 592 608 43 FLAG 592 640 44 FLAG 592 944 31 FLAG 592 976 32 FLAG 592 1008 33 FLAG 1664 1104 0 FLAG 1888 1104 0 FLAG 2112 1104 0 FLAG 1712 864 0 FLAG 1936 864 0 FLAG 2160 864 0 FLAG 1744 784 31 IOPIN 1744 784 In FLAG 1968 784 32 IOPIN 1968 784 In FLAG 2192 784 33 IOPIN 2192 784 In FLAG 1696 944 1 FLAG 1920 944 2 FLAG 2144 944 3 FLAG 1664 640 0 SYMBOL bv 848 -240 R0 SYMATTR InstName B1 SYMATTR Value V=if( {BRKF}>=0, if(V(a)>={0+BRKF} & V(a)<={0.25-BRKF}, 1, 0), if(V(a)>={1+BRKF} | V(a)<={0.25-BRKF}, 1, 0) ) SYMBOL bv 848 112 R0 SYMATTR InstName B2 SYMATTR Value V=if(V(a)>{0.5+BRKF} & V(a)<={0.75-BRKF}, 1, 0) SYMBOL bv 848 -64 R0 SYMATTR InstName B3 SYMATTR Value V=if(V(a)>{0.25+BRKF} & V(a)<={0.5-BRKF}, 1, 0) SYMBOL bv 848 288 R0 SYMATTR InstName B4 SYMATTR Value V=if( {BRKF}>=0, if(V(a)>{0.75+BRKF} & V(a)<={1-BRKF}, 1, 0), if(V(a)>{0.75+BRKF} | V(a)<={-BRKF},1,0) ) SYMBOL voltage 128 224 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V1 SYMATTR Value PWL(0 0 2 2 6 -2 10 1.99) SYMBOL bv 1536 80 R0 SYMATTR InstName B6 SYMATTR Value V=V(rot1)-floor(V(rot1)) SYMBOL sw 1664 864 R180 SYMATTR InstName S1 SYMATTR Value SW1 SYMBOL sw 1888 864 R180 SYMATTR InstName S2 SYMATTR Value SW1 SYMBOL sw 2112 864 R180 SYMATTR InstName S3 SYMATTR Value SW1 SYMBOL res 1648 960 R0 SYMATTR InstName R1 SYMATTR Value 1 SYMBOL res 1872 960 R0 SYMATTR InstName R2 SYMATTR Value 1 SYMBOL res 2096 960 R0 SYMATTR InstName R3 SYMATTR Value 1 SYMBOL voltage 1664 528 R0 SYMATTR InstName V2 SYMATTR Value 5 TEXT 24 48 Left 0 !.model sw1 sw(Vt=0.5 Ron=0.01 Roff=1G) TEXT 24 -16 Left 0 !.tran 0 10 0 1m TEXT 24 8 Left 0 !.options plotwinsize=0 TEXT 176 280 Left 0 ;1 = 1 turn = 360 degree TEXT 976 -256 Left 0 !.param BRKF=0.01 TEXT 32 -360 Left 0 ;Four Pole Rotary Sswitches\n \nBreak before make or make before break possible.\nDegree of break/make can be set with the parameter BRKF.\nMultiple forward nd backward turns are allowed.\nA turn of 1 means one full rotation.\n \nBreak Fraction Factor BRKF\nThe total break angle is 2*BRKF *360 degree\nNegative values mean an overlap (make before break)\nExample: .param BRKF=0.01 TEXT 56 600 Left 0 !.subckt rty_switch4 rot sc1 sc2 sc3 sc4\n* rot = 1 means 1 full turn\n.param BRKF=0.01\nBA a 0 V=V(rot)-floor(V(rot))\nB1 sc1 0 V=if( {BRKF}>=0, if(V(a)>={0+BRKF} & V(a)<={0.25-BRKF}, 1, 0), if(V(a)>={1+BRKF} | V(a)<={0.25-BRKF}, 1, 0) )\nB2 sc2 0 V=if(V(a)>{0.25+BRKF} & V(a)<={0.5-BRKF}, 1, 0)\nB3 sc3 0 V=if(V(a)>{0.5+BRKF} & V(a)<={0.75-BRKF}, 1, 0)\nB4 sc4 0 V=if( {BRKF}>=0, if(V(a)>{0.75+BRKF} & V(a)<={1-BRKF}, 1, 0), if(V(a)>{0.75+BRKF} | V(a)<={-BRKF},1,0) )\n.ends TEXT 48 552 Left 0 !X4p rot1 41 42 43 44 rty_switch4 BRKF=0.01 TEXT 56 1000 Left 0 !.subckt rty_switch3 rot sc1 sc2 sc3 \n* rot = 1 means 1 full turn\n.param BRKF=0.01\nBA a 0 V=V(rot)-floor(V(rot))\nB1 sc1 0 V=if( {BRKF}>=0, if(V(a)>={0+BRKF} & V(a)<={1/3-BRKF}, 1, 0), if(V(a)>={1+BRKF} | V(a)<={1/3-BRKF}, 1, 0) )\nB2 sc2 0 V=if(V(a)>{1/3+BRKF} & V(a)<={2/3-BRKF}, 1, 0)\nB3 sc3 0 V=if( {BRKF}>=0, if(V(a)>{2/3+BRKF} & V(a)<={1-BRKF}, 1, 0), if(V(a)>{2/3+BRKF} | V(a)<={-BRKF},1,0) )\n.ends TEXT 56 952 Left 0 !X3p rot1 31 32 33 rty_switch3 BRKF=0.01 TEXT 648 576 Left 0 ;Control signal for switches SW TEXT 640 968 Left 0 ;Control signal for switches SW TEXT 56 912 Left 0 ;3 Pole Rotary Switch TEXT 56 520 Left 0 ;4 Pole Rotary Switch TEXT 968 -304 Left 0 ;4 Pole Rotary Switch Without A Subcircuit TEXT 176 160 Left 0 ;Rotary Switch Angle RECTANGLE Normal 1504 848 16 496 RECTANGLE Normal 1504 1216 16 896 RECTANGLE Normal 2144 432 784 -336 CIRCLE Normal 496 432 0 96