Generate some footprints

This commit is contained in:
Kelvin Ly 2019-12-01 00:21:06 -05:00
parent 458bfbaeb1
commit e65a76d408
12 changed files with 76187 additions and 77 deletions

BIN
21-0140.PDF Normal file

Binary file not shown.

BIN
90-0023.PDF Normal file

Binary file not shown.

View File

@ -19,8 +19,9 @@ U 1 1 5DCA154B
P 2200 1600 P 2200 1600
F 0 "C1" H 2210 1670 50 0000 L CNN F 0 "C1" H 2210 1670 50 0000 L CNN
F 1 "470 uF 63V" H 2210 1520 50 0000 L CNN F 1 "470 uF 63V" H 2210 1520 50 0000 L CNN
F 2 "" H 2200 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 2200 1600 50 0001 C CNN
F 3 "~" H 2200 1600 50 0001 C CNN F 3 "~" H 2200 1600 50 0001 C CNN
F 4 "647-UVZ1J471MHD" H 2200 1600 50 0001 C CNN "Mouser"
1 2200 1600 1 2200 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -30,8 +31,9 @@ U 1 1 5DCAD005
P 1200 1300 P 1200 1300
F 0 "J1" H 1200 1400 50 0000 C CNN F 0 "J1" H 1200 1400 50 0000 C CNN
F 1 "Conn_01x02" H 1200 1100 50 0000 C CNN F 1 "Conn_01x02" H 1200 1100 50 0000 C CNN
F 2 "" H 1200 1300 50 0001 C CNN F 2 "bldc-parts:Battery_Connector" H 1200 1300 50 0001 C CNN
F 3 "~" H 1200 1300 50 0001 C CNN F 3 "~" H 1200 1300 50 0001 C CNN
F 4 "NoPart" H 1200 1300 50 0001 C CNN "Mouser"
1 1200 1300 1 1200 1300
-1 0 0 -1 -1 0 0 -1
$EndComp $EndComp
@ -41,8 +43,9 @@ U 1 1 5DCAFA7B
P 2700 1600 P 2700 1600
F 0 "C2" H 2710 1670 50 0000 L CNN F 0 "C2" H 2710 1670 50 0000 L CNN
F 1 "470 uF 63V" H 2710 1520 50 0000 L CNN F 1 "470 uF 63V" H 2710 1520 50 0000 L CNN
F 2 "" H 2700 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 2700 1600 50 0001 C CNN
F 3 "~" H 2700 1600 50 0001 C CNN F 3 "~" H 2700 1600 50 0001 C CNN
F 4 "647-UVZ1J471MHD" H 2700 1600 50 0001 C CNN "Mouser"
1 2700 1600 1 2700 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -52,8 +55,9 @@ U 1 1 5DCAFF60
P 3200 1600 P 3200 1600
F 0 "C3" H 3210 1670 50 0000 L CNN F 0 "C3" H 3210 1670 50 0000 L CNN
F 1 "470 uF 63V" H 3210 1520 50 0000 L CNN F 1 "470 uF 63V" H 3210 1520 50 0000 L CNN
F 2 "" H 3200 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 3200 1600 50 0001 C CNN
F 3 "~" H 3200 1600 50 0001 C CNN F 3 "~" H 3200 1600 50 0001 C CNN
F 4 "647-UVZ1J471MHD" H 3200 1600 50 0001 C CNN "Mouser"
1 3200 1600 1 3200 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -63,8 +67,9 @@ U 1 1 5DCD5043
P 10250 2650 P 10250 2650
F 0 "U4" H 9850 1300 50 0000 L CNN F 0 "U4" H 9850 1300 50 0000 L CNN
F 1 "DRV8353RSRGZ" H 10650 4000 50 0000 R CNN F 1 "DRV8353RSRGZ" H 10650 4000 50 0000 R CNN
F 2 "" H 10250 2650 50 0001 L CNN F 2 "bldc-parts:TI_RGZ-48" H 10250 2650 50 0001 L CNN
F 3 "" H 10250 2650 50 0001 L CNN F 3 "" H 10250 2650 50 0001 L CNN
F 4 "595-DRV8353RSRGZR" H 10250 2650 50 0001 C CNN "Mouser"
1 10250 2650 1 10250 2650
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -497,8 +502,9 @@ U 1 1 5DD5022D
P 11700 1550 P 11700 1550
F 0 "R34" H 11730 1570 50 0000 L CNN F 0 "R34" H 11730 1570 50 0000 L CNN
F 1 "100kR" H 11730 1510 50 0000 L CNN F 1 "100kR" H 11730 1510 50 0000 L CNN
F 2 "" H 11700 1550 50 0001 C CNN F 2 "Resistor_SMD:R_0402_1005Metric" H 11700 1550 50 0001 C CNN
F 3 "~" H 11700 1550 50 0001 C CNN F 3 "~" H 11700 1550 50 0001 C CNN
F 4 "603-AC0402FR-13100KL" H 11700 1550 50 0001 C CNN "Mouser"
1 11700 1550 1 11700 1550
0 -1 -1 0 0 -1 -1 0
$EndComp $EndComp
@ -508,8 +514,9 @@ U 1 1 5DD50553
P 11450 1650 P 11450 1650
F 0 "R29" H 11480 1670 50 0000 L CNN F 0 "R29" H 11480 1670 50 0000 L CNN
F 1 "100kR" H 11480 1610 50 0000 L CNN F 1 "100kR" H 11480 1610 50 0000 L CNN
F 2 "" H 11450 1650 50 0001 C CNN F 2 "Resistor_SMD:R_0402_1005Metric" H 11450 1650 50 0001 C CNN
F 3 "~" H 11450 1650 50 0001 C CNN F 3 "~" H 11450 1650 50 0001 C CNN
F 4 "603-AC0402FR-13100KL" H 11450 1650 50 0001 C CNN "Mouser"
1 11450 1650 1 11450 1650
0 -1 -1 0 0 -1 -1 0
$EndComp $EndComp
@ -833,9 +840,9 @@ U 1 1 5DE3B5EA
P 2000 3800 P 2000 3800
F 0 "R3" V 1825 3800 50 0000 C CNN F 0 "R3" V 1825 3800 50 0000 C CNN
F 1 "2.0mR 5W" V 1900 3800 50 0000 C CNN F 1 "2.0mR 5W" V 1900 3800 50 0000 C CNN
F 2 "" V 1930 3800 50 0001 C CNN F 2 "bldc-parts:TT_OARS-XP-4Terminal" V 1930 3800 50 0001 C CNN
F 3 "~" H 2000 3800 50 0001 C CNN F 3 "~" H 2000 3800 50 0001 C CNN
F 4 " 652-CSS2H5930K2L00F " V 2000 3800 50 0001 C CNN "Mouser" F 4 "66-OARSXPR002FLF" V 2000 3800 50 0001 C CNN "Mouser"
1 2000 3800 1 2000 3800
-1 0 0 -1 -1 0 0 -1
$EndComp $EndComp
@ -1090,8 +1097,6 @@ Wire Wire Line
5450 1700 5550 1700 5450 1700 5550 1700
Wire Wire Line Wire Wire Line
5450 1600 5550 1600 5450 1600 5550 1600
Text Notes 1950 1150 0 50 ~ 0
TODO figure out DC link capacitance amount
Text Notes 12350 3450 0 50 ~ 0 Text Notes 12350 3450 0 50 ~ 0
FB = 2.5V FB = 2.5V
Text Label 5500 2700 2 50 ~ 0 Text Label 5500 2700 2 50 ~ 0
@ -1448,6 +1453,7 @@ F 0 "U3" H 7400 7800 60 0000 C CNN
F 1 "ICE40UP5K-SG48" H 7400 7950 60 0000 C CNN F 1 "ICE40UP5K-SG48" H 7400 7950 60 0000 C CNN
F 2 "" H 7400 7800 60 0001 C CNN F 2 "" H 7400 7800 60 0001 C CNN
F 3 "" H 7400 7800 60 0001 C CNN F 3 "" H 7400 7800 60 0001 C CNN
F 4 "842-ICE40UP5K-SG48I" H 7400 7800 50 0001 C CNN "Mouser"
1 7400 7800 1 7400 7800
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -3140,8 +3146,9 @@ U 1 1 6264C16A
P 15400 6650 P 15400 6650
F 0 "J3" H 15400 7050 50 0000 C CNN F 0 "J3" H 15400 7050 50 0000 C CNN
F 1 "Conn_01x08" H 15400 6150 50 0000 C CNN F 1 "Conn_01x08" H 15400 6150 50 0000 C CNN
F 2 "" H 15400 6650 50 0001 C CNN F 2 "Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical" H 15400 6650 50 0001 C CNN
F 3 "~" H 15400 6650 50 0001 C CNN F 3 "~" H 15400 6650 50 0001 C CNN
F 4 "NoPart" H 15400 6650 50 0001 C CNN "Mouser"
1 15400 6650 1 15400 6650
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -3637,7 +3644,7 @@ U 1 1 5DE86A1D
P 2000 3250 P 2000 3250
F 0 "Q2" H 1750 3400 50 0000 C CNN F 0 "Q2" H 1750 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 2400 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 2400 3250 50 0000 C CNN
F 2 "" H 2000 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 2000 3250 50 0001 C CNN
F 3 "" H 2000 3250 50 0001 C CNN F 3 "" H 2000 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 2000 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 2000 3250 50 0001 C CNN "Mouser"
1 2000 3250 1 2000 3250
@ -3649,7 +3656,7 @@ U 1 1 5DE87C22
P 3200 2700 P 3200 2700
F 0 "Q3" H 2950 2850 50 0000 C CNN F 0 "Q3" H 2950 2850 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 3600 2700 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 3600 2700 50 0000 C CNN
F 2 "" H 3200 2700 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 3200 2700 50 0001 C CNN
F 3 "" H 3200 2700 50 0001 C CNN F 3 "" H 3200 2700 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 3200 2700 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 3200 2700 50 0001 C CNN "Mouser"
1 3200 2700 1 3200 2700
@ -3661,7 +3668,7 @@ U 1 1 5DE892AF
P 3200 3250 P 3200 3250
F 0 "Q4" H 2950 3400 50 0000 C CNN F 0 "Q4" H 2950 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 3600 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 3600 3250 50 0000 C CNN
F 2 "" H 3200 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 3200 3250 50 0001 C CNN
F 3 "" H 3200 3250 50 0001 C CNN F 3 "" H 3200 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 3200 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 3200 3250 50 0001 C CNN "Mouser"
1 3200 3250 1 3200 3250
@ -3673,7 +3680,7 @@ U 1 1 5DE89DC8
P 4400 2700 P 4400 2700
F 0 "Q5" H 4150 2850 50 0000 C CNN F 0 "Q5" H 4150 2850 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 4800 2700 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 4800 2700 50 0000 C CNN
F 2 "" H 4400 2700 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 4400 2700 50 0001 C CNN
F 3 "" H 4400 2700 50 0001 C CNN F 3 "" H 4400 2700 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 4400 2700 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 4400 2700 50 0001 C CNN "Mouser"
1 4400 2700 1 4400 2700
@ -3685,7 +3692,7 @@ U 1 1 5DE8AE13
P 4400 3250 P 4400 3250
F 0 "Q6" H 4150 3400 50 0000 C CNN F 0 "Q6" H 4150 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 4800 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 4800 3250 50 0000 C CNN
F 2 "" H 4400 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 4400 3250 50 0001 C CNN
F 3 "" H 4400 3250 50 0001 C CNN F 3 "" H 4400 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 4400 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 4400 3250 50 0001 C CNN "Mouser"
1 4400 3250 1 4400 3250
@ -3902,8 +3909,6 @@ Wire Wire Line
Connection ~ 1800 5250 Connection ~ 1800 5250
Wire Wire Line Wire Wire Line
1800 5250 2100 5250 1800 5250 2100 5250
Text Notes 2350 4000 0 50 ~ 0
TODO footprint shunt resistor
Connection ~ 2700 1300 Connection ~ 2700 1300
Wire Wire Line Wire Wire Line
2200 1300 2700 1300 2200 1300 2700 1300
@ -3912,4 +3917,6 @@ Wire Wire Line
Connection ~ 3200 1300 Connection ~ 3200 1300
Wire Wire Line Wire Wire Line
3200 1300 4400 1300 3200 1300 4400 1300
Text Label 2000 3550 2 50 ~ 0
VDRAIN
$EndSCHEMATC $EndSCHEMATC

View File

@ -19,8 +19,9 @@ U 1 1 5DCA154B
P 2200 1600 P 2200 1600
F 0 "C1" H 2210 1670 50 0000 L CNN F 0 "C1" H 2210 1670 50 0000 L CNN
F 1 "470 uF 63V" H 2210 1520 50 0000 L CNN F 1 "470 uF 63V" H 2210 1520 50 0000 L CNN
F 2 "" H 2200 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 2200 1600 50 0001 C CNN
F 3 "~" H 2200 1600 50 0001 C CNN F 3 "~" H 2200 1600 50 0001 C CNN
F 4 "647-UVZ1J471MHD" H 2200 1600 50 0001 C CNN "Mouser"
1 2200 1600 1 2200 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -30,31 +31,34 @@ U 1 1 5DCAD005
P 1200 1300 P 1200 1300
F 0 "J1" H 1200 1400 50 0000 C CNN F 0 "J1" H 1200 1400 50 0000 C CNN
F 1 "Conn_01x02" H 1200 1100 50 0000 C CNN F 1 "Conn_01x02" H 1200 1100 50 0000 C CNN
F 2 "" H 1200 1300 50 0001 C CNN F 2 "bldc-parts:Battery_Connector" H 1200 1300 50 0001 C CNN
F 3 "~" H 1200 1300 50 0001 C CNN F 3 "~" H 1200 1300 50 0001 C CNN
F 4 "NoPart" H 1200 1300 50 0001 C CNN "Mouser"
1 1200 1300 1 1200 1300
-1 0 0 -1 -1 0 0 -1
$EndComp $EndComp
$Comp $Comp
L Device:C_Small C2 L Device:C_Small C2
U 1 1 5DCAFA7B U 1 1 5DCAFA7B
P 2600 1600 P 2700 1600
F 0 "C2" H 2610 1670 50 0000 L CNN F 0 "C2" H 2710 1670 50 0000 L CNN
F 1 "470 uF 63V" H 2610 1520 50 0000 L CNN F 1 "470 uF 63V" H 2710 1520 50 0000 L CNN
F 2 "" H 2600 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 2700 1600 50 0001 C CNN
F 3 "~" H 2600 1600 50 0001 C CNN F 3 "~" H 2700 1600 50 0001 C CNN
1 2600 1600 F 4 "647-UVZ1J471MHD" H 2700 1600 50 0001 C CNN "Mouser"
1 2700 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
$Comp $Comp
L Device:C_Small C3 L Device:C_Small C3
U 1 1 5DCAFF60 U 1 1 5DCAFF60
P 3000 1600 P 3200 1600
F 0 "C3" H 3010 1670 50 0000 L CNN F 0 "C3" H 3210 1670 50 0000 L CNN
F 1 "470 uF 63V" H 3010 1520 50 0000 L CNN F 1 "470 uF 63V" H 3210 1520 50 0000 L CNN
F 2 "" H 3000 1600 50 0001 C CNN F 2 "Capacitor_THT:CP_Radial_D12.5mm_P5.00mm" H 3200 1600 50 0001 C CNN
F 3 "~" H 3000 1600 50 0001 C CNN F 3 "~" H 3200 1600 50 0001 C CNN
1 3000 1600 F 4 "647-UVZ1J471MHD" H 3200 1600 50 0001 C CNN "Mouser"
1 3200 1600
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
$Comp $Comp
@ -65,6 +69,7 @@ F 0 "U4" H 9850 1300 50 0000 L CNN
F 1 "DRV8353RSRGZ" H 10650 4000 50 0000 R CNN F 1 "DRV8353RSRGZ" H 10650 4000 50 0000 R CNN
F 2 "" H 10250 2650 50 0001 L CNN F 2 "" H 10250 2650 50 0001 L CNN
F 3 "" H 10250 2650 50 0001 L CNN F 3 "" H 10250 2650 50 0001 L CNN
F 4 "595-DRV8353RSRGZR" H 10250 2650 50 0001 C CNN "Mouser"
1 10250 2650 1 10250 2650
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -497,8 +502,9 @@ U 1 1 5DD5022D
P 11700 1550 P 11700 1550
F 0 "R34" H 11730 1570 50 0000 L CNN F 0 "R34" H 11730 1570 50 0000 L CNN
F 1 "100kR" H 11730 1510 50 0000 L CNN F 1 "100kR" H 11730 1510 50 0000 L CNN
F 2 "" H 11700 1550 50 0001 C CNN F 2 "Resistor_SMD:R_0402_1005Metric" H 11700 1550 50 0001 C CNN
F 3 "~" H 11700 1550 50 0001 C CNN F 3 "~" H 11700 1550 50 0001 C CNN
F 4 "603-AC0402FR-13100KL" H 11700 1550 50 0001 C CNN "Mouser"
1 11700 1550 1 11700 1550
0 -1 -1 0 0 -1 -1 0
$EndComp $EndComp
@ -508,8 +514,9 @@ U 1 1 5DD50553
P 11450 1650 P 11450 1650
F 0 "R29" H 11480 1670 50 0000 L CNN F 0 "R29" H 11480 1670 50 0000 L CNN
F 1 "100kR" H 11480 1610 50 0000 L CNN F 1 "100kR" H 11480 1610 50 0000 L CNN
F 2 "" H 11450 1650 50 0001 C CNN F 2 "Resistor_SMD:R_0402_1005Metric" H 11450 1650 50 0001 C CNN
F 3 "~" H 11450 1650 50 0001 C CNN F 3 "~" H 11450 1650 50 0001 C CNN
F 4 "603-AC0402FR-13100KL" H 11450 1650 50 0001 C CNN "Mouser"
1 11450 1650 1 11450 1650
0 -1 -1 0 0 -1 -1 0
$EndComp $EndComp
@ -833,9 +840,9 @@ U 1 1 5DE3B5EA
P 2000 3800 P 2000 3800
F 0 "R3" V 1825 3800 50 0000 C CNN F 0 "R3" V 1825 3800 50 0000 C CNN
F 1 "2.0mR 5W" V 1900 3800 50 0000 C CNN F 1 "2.0mR 5W" V 1900 3800 50 0000 C CNN
F 2 "" V 1930 3800 50 0001 C CNN F 2 "bldc-parts:TT_OARS-XP-4Terminal" V 1930 3800 50 0001 C CNN
F 3 "~" H 2000 3800 50 0001 C CNN F 3 "~" H 2000 3800 50 0001 C CNN
F 4 " 652-CSS2H5930K2L00F " V 2000 3800 50 0001 C CNN "Mouser" F 4 "66-OARSXPR002FLF" V 2000 3800 50 0001 C CNN "Mouser"
1 2000 3800 1 2000 3800
-1 0 0 -1 -1 0 0 -1
$EndComp $EndComp
@ -924,44 +931,36 @@ Wire Wire Line
Wire Wire Line Wire Wire Line
2200 1500 2200 1300 2200 1500 2200 1300
Connection ~ 2200 1300 Connection ~ 2200 1300
Wire Wire Line
2200 1300 2600 1300
$Comp $Comp
L power:GND #PWR0122 L power:GND #PWR0122
U 1 1 5DF7580E U 1 1 5DF7580E
P 2600 1800 P 2700 1800
F 0 "#PWR0122" H 2600 1550 50 0001 C CNN F 0 "#PWR0122" H 2700 1550 50 0001 C CNN
F 1 "GND" H 2600 1650 50 0000 C CNN F 1 "GND" H 2700 1650 50 0000 C CNN
F 2 "" H 2600 1800 50 0001 C CNN F 2 "" H 2700 1800 50 0001 C CNN
F 3 "" H 2600 1800 50 0001 C CNN F 3 "" H 2700 1800 50 0001 C CNN
1 2600 1800 1 2700 1800
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
$Comp $Comp
L power:GND #PWR0123 L power:GND #PWR0123
U 1 1 5DF75E04 U 1 1 5DF75E04
P 3000 1800 P 3200 1800
F 0 "#PWR0123" H 3000 1550 50 0001 C CNN F 0 "#PWR0123" H 3200 1550 50 0001 C CNN
F 1 "GND" H 3000 1650 50 0000 C CNN F 1 "GND" H 3200 1650 50 0000 C CNN
F 2 "" H 3000 1800 50 0001 C CNN F 2 "" H 3200 1800 50 0001 C CNN
F 3 "" H 3000 1800 50 0001 C CNN F 3 "" H 3200 1800 50 0001 C CNN
1 3000 1800 1 3200 1800
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
Wire Wire Line Wire Wire Line
3000 1800 3000 1700 3200 1800 3200 1700
Wire Wire Line Wire Wire Line
3000 1500 3000 1300 3200 1500 3200 1300
Connection ~ 3000 1300
Wire Wire Line Wire Wire Line
3000 1300 4400 1300 2700 1500 2700 1300
Wire Wire Line Wire Wire Line
2600 1500 2600 1300 2700 1700 2700 1800
Connection ~ 2600 1300
Wire Wire Line
2600 1300 3000 1300
Wire Wire Line
2600 1700 2600 1800
$Comp $Comp
L Device:C_Small C50 L Device:C_Small C50
U 1 1 5DF94C9F U 1 1 5DF94C9F
@ -1098,8 +1097,6 @@ Wire Wire Line
5450 1700 5550 1700 5450 1700 5550 1700
Wire Wire Line Wire Wire Line
5450 1600 5550 1600 5450 1600 5550 1600
Text Notes 1950 1150 0 50 ~ 0
TODO figure out DC link capacitance amount
Text Notes 12350 3450 0 50 ~ 0 Text Notes 12350 3450 0 50 ~ 0
FB = 2.5V FB = 2.5V
Text Label 5500 2700 2 50 ~ 0 Text Label 5500 2700 2 50 ~ 0
@ -1456,6 +1453,7 @@ F 0 "U3" H 7400 7800 60 0000 C CNN
F 1 "ICE40UP5K-SG48" H 7400 7950 60 0000 C CNN F 1 "ICE40UP5K-SG48" H 7400 7950 60 0000 C CNN
F 2 "" H 7400 7800 60 0001 C CNN F 2 "" H 7400 7800 60 0001 C CNN
F 3 "" H 7400 7800 60 0001 C CNN F 3 "" H 7400 7800 60 0001 C CNN
F 4 "842-ICE40UP5K-SG48I" H 7400 7800 50 0001 C CNN "Mouser"
1 7400 7800 1 7400 7800
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -3148,8 +3146,9 @@ U 1 1 6264C16A
P 15400 6650 P 15400 6650
F 0 "J3" H 15400 7050 50 0000 C CNN F 0 "J3" H 15400 7050 50 0000 C CNN
F 1 "Conn_01x08" H 15400 6150 50 0000 C CNN F 1 "Conn_01x08" H 15400 6150 50 0000 C CNN
F 2 "" H 15400 6650 50 0001 C CNN F 2 "Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical" H 15400 6650 50 0001 C CNN
F 3 "~" H 15400 6650 50 0001 C CNN F 3 "~" H 15400 6650 50 0001 C CNN
F 4 "NoPart" H 15400 6650 50 0001 C CNN "Mouser"
1 15400 6650 1 15400 6650
1 0 0 -1 1 0 0 -1
$EndComp $EndComp
@ -3645,7 +3644,7 @@ U 1 1 5DE86A1D
P 2000 3250 P 2000 3250
F 0 "Q2" H 1750 3400 50 0000 C CNN F 0 "Q2" H 1750 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 2400 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 2400 3250 50 0000 C CNN
F 2 "" H 2000 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 2000 3250 50 0001 C CNN
F 3 "" H 2000 3250 50 0001 C CNN F 3 "" H 2000 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 2000 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 2000 3250 50 0001 C CNN "Mouser"
1 2000 3250 1 2000 3250
@ -3657,7 +3656,7 @@ U 1 1 5DE87C22
P 3200 2700 P 3200 2700
F 0 "Q3" H 2950 2850 50 0000 C CNN F 0 "Q3" H 2950 2850 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 3600 2700 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 3600 2700 50 0000 C CNN
F 2 "" H 3200 2700 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 3200 2700 50 0001 C CNN
F 3 "" H 3200 2700 50 0001 C CNN F 3 "" H 3200 2700 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 3200 2700 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 3200 2700 50 0001 C CNN "Mouser"
1 3200 2700 1 3200 2700
@ -3669,7 +3668,7 @@ U 1 1 5DE892AF
P 3200 3250 P 3200 3250
F 0 "Q4" H 2950 3400 50 0000 C CNN F 0 "Q4" H 2950 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 3600 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 3600 3250 50 0000 C CNN
F 2 "" H 3200 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 3200 3250 50 0001 C CNN
F 3 "" H 3200 3250 50 0001 C CNN F 3 "" H 3200 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 3200 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 3200 3250 50 0001 C CNN "Mouser"
1 3200 3250 1 3200 3250
@ -3681,7 +3680,7 @@ U 1 1 5DE89DC8
P 4400 2700 P 4400 2700
F 0 "Q5" H 4150 2850 50 0000 C CNN F 0 "Q5" H 4150 2850 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 4800 2700 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 4800 2700 50 0000 C CNN
F 2 "" H 4400 2700 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 4400 2700 50 0001 C CNN
F 3 "" H 4400 2700 50 0001 C CNN F 3 "" H 4400 2700 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 4400 2700 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 4400 2700 50 0001 C CNN "Mouser"
1 4400 2700 1 4400 2700
@ -3693,7 +3692,7 @@ U 1 1 5DE8AE13
P 4400 3250 P 4400 3250
F 0 "Q6" H 4150 3400 50 0000 C CNN F 0 "Q6" H 4150 3400 50 0000 C CNN
F 1 "IPC90N04S5L3R3ATMA1" V 4800 3250 50 0000 C CNN F 1 "IPC90N04S5L3R3ATMA1" V 4800 3250 50 0000 C CNN
F 2 "" H 4400 3250 50 0001 C CNN F 2 "bldc-parts:Infineon_PG-TDSON-8-33" H 4400 3250 50 0001 C CNN
F 3 "" H 4400 3250 50 0001 C CNN F 3 "" H 4400 3250 50 0001 C CNN
F 4 "726-IPC90N04S5L3R3AT" H 4400 3250 50 0001 C CNN "Mouser" F 4 "726-IPC90N04S5L3R3AT" H 4400 3250 50 0001 C CNN "Mouser"
1 4400 3250 1 4400 3250
@ -3910,6 +3909,14 @@ Wire Wire Line
Connection ~ 1800 5250 Connection ~ 1800 5250
Wire Wire Line Wire Wire Line
1800 5250 2100 5250 1800 5250 2100 5250
Text Notes 2350 4000 0 50 ~ 0 Connection ~ 2700 1300
TODO footprint shunt resistor Wire Wire Line
2200 1300 2700 1300
Wire Wire Line
2700 1300 3200 1300
Connection ~ 3200 1300
Wire Wire Line
3200 1300 4400 1300
Text Label 2000 3550 2 50 ~ 0
VDRAIN
$EndSCHEMATC $EndSCHEMATC

View File

@ -0,0 +1,12 @@
(module Battery_Connector (layer F.Cu) (tedit 5DE32807)
(fp_text reference REF** (at 2 0 90) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Battery_Connector (at 0 -0.5) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 1 -2.1) (end 1 -1.7) (layer F.SilkS) (width 0.12))
(fp_line (start 0.8 -1.9) (end 1.2 -1.9) (layer F.SilkS) (width 0.12))
(pad 1 smd rect (at 0 -1) (size 2.5 1) (layers F.Cu F.Paste F.Mask))
(pad 2 smd rect (at 0 1) (size 2.5 1) (layers F.Cu F.Paste F.Mask))
)

View File

@ -1,17 +1,17 @@
(module Infineon_PG-TDSON-8-33 (layer F.Cu) (tedit 5DE134AD) (module Infineon_PG-TDSON-8-33 (layer F.Cu) (tedit 5DE34633)
(fp_text reference REF** (at 0 0.5) (layer F.SilkS) (fp_text reference REF** (at 0 0.5) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 1 1) (thickness 0.15)))
) )
(fp_text value Infineon_PG-TDSON-8-33 (at 0 -0.5) (layer F.Fab) (fp_text value Infineon_PG-TDSON-8-33 (at 0 -0.5) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15))) (effects (font (size 1 1) (thickness 0.15)))
) )
(fp_line (start -1.3 -1.7) (end -1.7 -1.3) (layer F.SilkS) (width 0.12)) (fp_line (start -1.3 1.7) (end -1.7 1.3) (layer F.SilkS) (width 0.12))
(fp_line (start -1.7 -1.3) (end -1.7 1.7) (layer F.SilkS) (width 0.12)) (fp_line (start -1.7 1.3) (end -1.7 -1.7) (layer F.SilkS) (width 0.12))
(fp_line (start -1.7 1.7) (end -1.3 1.7) (layer F.SilkS) (width 0.12)) (fp_line (start -1.7 -1.7) (end -1.3 -1.7) (layer F.SilkS) (width 0.12))
(fp_line (start 1.3 1.7) (end 1.7 1.7) (layer F.SilkS) (width 0.12)) (fp_line (start 1.3 1.7) (end 1.7 1.7) (layer F.SilkS) (width 0.12))
(fp_line (start 1.7 1.7) (end 1.7 -1.7) (layer F.SilkS) (width 0.12)) (fp_line (start 1.7 1.7) (end 1.7 -1.7) (layer F.SilkS) (width 0.12))
(fp_line (start 1.7 -1.7) (end 1.3 -1.7) (layer F.SilkS) (width 0.12)) (fp_line (start 1.7 -1.7) (end 1.3 -1.7) (layer F.SilkS) (width 0.12))
(fp_circle (center -1.7 -1.7) (end -1.8 -1.6) (layer F.SilkS) (width 0.12)) (fp_circle (center -1.7 1.7) (end -1.558579 1.7) (layer F.SilkS) (width 0.12))
(fp_line (start -1.9 -1.9) (end -1.9 1.9) (layer F.CrtYd) (width 0.12)) (fp_line (start -1.9 -1.9) (end -1.9 1.9) (layer F.CrtYd) (width 0.12))
(fp_line (start -1.9 1.9) (end 1.9 1.9) (layer F.CrtYd) (width 0.12)) (fp_line (start -1.9 1.9) (end 1.9 1.9) (layer F.CrtYd) (width 0.12))
(fp_line (start 1.9 1.9) (end 1.9 -1.9) (layer F.CrtYd) (width 0.12)) (fp_line (start 1.9 1.9) (end 1.9 -1.9) (layer F.CrtYd) (width 0.12))
@ -29,6 +29,11 @@
(fp_poly (pts (xy -0.21 -1.25) (xy -0.46 -1.25) (xy -0.48 -1.85) (xy -0.21 -1.85)) (layer F.Paste) (width 0.1)) (fp_poly (pts (xy -0.21 -1.25) (xy -0.46 -1.25) (xy -0.48 -1.85) (xy -0.21 -1.85)) (layer F.Paste) (width 0.1))
(fp_poly (pts (xy 0.46 -1.25) (xy 0.2 -1.25) (xy 0.2 -1.85) (xy 0.47 -1.85)) (layer F.Paste) (width 0.1)) (fp_poly (pts (xy 0.46 -1.25) (xy 0.2 -1.25) (xy 0.2 -1.85) (xy 0.47 -1.85)) (layer F.Paste) (width 0.1))
(fp_poly (pts (xy 1.1 -1.25) (xy 0.86 -1.25) (xy 0.86 -1.85) (xy 1.1 -1.85)) (layer F.Paste) (width 0.1)) (fp_poly (pts (xy 1.1 -1.25) (xy 0.86 -1.25) (xy 0.86 -1.85) (xy 1.1 -1.85)) (layer F.Paste) (width 0.1))
(fp_line (start -1.8 -1.8) (end 1.8 -1.8) (layer F.Fab) (width 0.12))
(fp_line (start 1.8 -1.8) (end 1.8 1.8) (layer F.Fab) (width 0.12))
(fp_line (start 1.8 1.8) (end -1.6 1.8) (layer F.Fab) (width 0.12))
(fp_line (start -1.8 1.6) (end -1.8 -1.8) (layer F.Fab) (width 0.12))
(fp_line (start -1.6 1.8) (end -1.8 1.6) (layer F.Fab) (width 0.12))
(pad 6 smd rect (at 0.325 -1.58) (size 0.34 0.65) (layers F.Cu F.Mask)) (pad 6 smd rect (at 0.325 -1.58) (size 0.34 0.65) (layers F.Cu F.Mask))
(pad 3 smd rect (at 0.325 1.675) (size 0.34 0.45) (layers F.Cu F.Mask)) (pad 3 smd rect (at 0.325 1.675) (size 0.34 0.45) (layers F.Cu F.Mask))
(pad 2 smd rect (at -0.325 1.675) (size 0.34 0.45) (layers F.Cu F.Mask)) (pad 2 smd rect (at -0.325 1.675) (size 0.34 0.45) (layers F.Cu F.Mask))

View File

@ -0,0 +1,95 @@
(module Maxim_TQFN-28 (layer F.Cu) (tedit 5DE34D78)
(fp_text reference REF** (at 0.0 0.0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0.0 0.0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value %V (at 0 -0.5) (layer F.Fab) hide
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -2.175 2.7000000000000006) (end -2.6999999999999997 2.1750000000000007) (layer F.SilkS) (width 0.15))
(fp_line (start 2.7000000000000006 2.6999999999999997) (end 2.1750000000000007 2.6999999999999997) (layer F.SilkS) (width 0.15))
(fp_line (start 2.7000000000000006 2.175) (end 2.7000000000000006 2.6999999999999997) (layer F.SilkS) (width 0.15))
(fp_line (start 2.6999999999999997 -2.1750000000000007) (end 2.6999999999999997 -2.7000000000000006) (layer F.SilkS) (width 0.15))
(fp_line (start 2.6999999999999997 -2.7000000000000006) (end 2.175 -2.7000000000000006) (layer F.SilkS) (width 0.15))
(fp_line (start -2.1750000000000007 -2.6999999999999997) (end -2.7000000000000006 -2.6999999999999997) (layer F.SilkS) (width 0.15))
(fp_line (start -2.7000000000000006 -2.6999999999999997) (end -2.7000000000000006 -2.175) (layer F.SilkS) (width 0.15))
(fp_circle (center -2.6999999999999997 2.7000000000000006) (end -2.8499999999999996 2.7000000000000006) (layer F.SilkS) (width 0.15))
(fp_line (start -2.5499999999999994 2.2500000000000004) (end -2.2499999999999996 2.5500000000000003) (layer F.Fab) (width 0.15))
(fp_line (start -2.5500000000000003 -2.5499999999999994) (end -2.5499999999999994 2.2500000000000004) (layer F.Fab) (width 0.15))
(fp_line (start 2.5499999999999994 -2.5500000000000003) (end -2.5500000000000003 -2.5499999999999994) (layer F.Fab) (width 0.15))
(fp_line (start 2.5500000000000003 2.5499999999999994) (end 2.5499999999999994 -2.5500000000000003) (layer F.Fab) (width 0.15))
(fp_line (start -2.2499999999999996 2.5500000000000003) (end 2.5500000000000003 2.5499999999999994) (layer F.Fab) (width 0.15))
(fp_line (start -1.7999999999999994 2.8000000000000003) (end -2.7999999999999994 2.8000000000000003) (layer F.CrtYd) (width 0.15))
(fp_line (start -2.7999999999999994 2.8000000000000003) (end -2.8000000000000003 -2.7999999999999994) (layer F.CrtYd) (width 0.15))
(fp_line (start -2.8000000000000003 -2.7999999999999994) (end -1.8000000000000003 -2.7999999999999994) (layer F.CrtYd) (width 0.15))
(fp_line (start -1.8000000000000003 -2.7999999999999994) (end -1.8000000000000003 -2.6399999999999992) (layer F.CrtYd) (width 0.15))
(fp_line (start -1.8000000000000003 -2.6399999999999992) (end 1.7999999999999994 -2.64) (layer F.CrtYd) (width 0.15))
(fp_line (start 1.7999999999999994 -2.64) (end 1.7999999999999994 -2.8000000000000003) (layer F.CrtYd) (width 0.15))
(fp_line (start 1.7999999999999994 -2.8000000000000003) (end 2.7999999999999994 -2.8000000000000003) (layer F.CrtYd) (width 0.15))
(fp_line (start 2.7999999999999994 -2.8000000000000003) (end 2.8000000000000003 2.7999999999999994) (layer F.CrtYd) (width 0.15))
(fp_line (start 2.8000000000000003 2.7999999999999994) (end 1.8000000000000003 2.7999999999999994) (layer F.CrtYd) (width 0.15))
(fp_line (start 1.8000000000000003 2.7999999999999994) (end 1.8000000000000003 2.6399999999999992) (layer F.CrtYd) (width 0.15))
(fp_line (start 1.8000000000000003 2.6399999999999992) (end -1.7999999999999994 2.64) (layer F.CrtYd) (width 0.15))
(fp_line (start -1.7999999999999994 2.64) (end -1.7999999999999994 2.8000000000000003) (layer F.CrtYd) (width 0.15))
(pad 1 smd rect (at -1.4999999999999996 2.3400000000000003) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 2 smd rect (at -0.9999999999999996 2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 3 smd rect (at -0.49999999999999956 2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 4 smd rect (at 4.2985102650072094e-16 2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 5 smd rect (at 0.5000000000000004 2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 6 smd rect (at 1.0000000000000004 2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 7 smd rect (at 1.5000000000000004 2.3399999999999994) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 8 smd rect (at 2.3400000000000003 1.4999999999999996) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 9 smd rect (at 2.34 0.9999999999999996) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 10 smd rect (at 2.34 0.49999999999999956) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 11 smd rect (at 2.34 -4.2985102650072094e-16) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 12 smd rect (at 2.34 -0.5000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 13 smd rect (at 2.34 -1.0000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 14 smd rect (at 2.3399999999999994 -1.5000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 15 smd rect (at 1.4999999999999996 -2.3400000000000003) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 16 smd rect (at 0.9999999999999996 -2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 17 smd rect (at 0.49999999999999956 -2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 18 smd rect (at -4.2985102650072094e-16 -2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 19 smd rect (at -0.5000000000000004 -2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 20 smd rect (at -1.0000000000000004 -2.34) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 21 smd rect (at -1.5000000000000004 -2.3399999999999994) (size 0.3 0.9500000000000002) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 22 smd rect (at -2.3400000000000003 -1.4999999999999996) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 23 smd rect (at -2.34 -0.9999999999999996) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 24 smd rect (at -2.34 -0.49999999999999956) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 25 smd rect (at -2.34 4.2985102650072094e-16) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 26 smd rect (at -2.34 0.5000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 27 smd rect (at -2.34 1.0000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 28 smd rect (at -2.3399999999999994 1.5000000000000004) (size 0.9500000000000002 0.3) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
(pad 0 smd rect (at 0.0 -0.0) (size 3.25 3.25) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin 0.1))
)

View File

@ -0,0 +1,143 @@
(module TI_RGZ-48 (layer F.Cu) (tedit 5DE3454F)
(fp_text reference REF** (at 0 0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value %V (at 0 -0.5) (layer F.Fab) hide
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -3.7 -3.07) (end -3.07 -3.7) (layer F.SilkS) (width 0.15))
(fp_line (start -3.7 3.7) (end -3.7 3.07) (layer F.SilkS) (width 0.15))
(fp_line (start -3.07 3.7) (end -3.7 3.7) (layer F.SilkS) (width 0.15))
(fp_line (start 3.07 3.7) (end 3.7 3.7) (layer F.SilkS) (width 0.15))
(fp_line (start 3.7 3.7) (end 3.7 3.07) (layer F.SilkS) (width 0.15))
(fp_line (start 3.7 -3.07) (end 3.7 -3.7) (layer F.SilkS) (width 0.15))
(fp_line (start 3.7 -3.7) (end 3.07 -3.7) (layer F.SilkS) (width 0.15))
(fp_circle (center -3.7 -3.7) (end -3.7 -3.85) (layer F.SilkS) (width 0.15))
(fp_line (start -3.25 -3.55) (end -3.55 -3.25) (layer F.Fab) (width 0.15))
(fp_line (start 3.55 -3.55) (end -3.25 -3.55) (layer F.Fab) (width 0.15))
(fp_line (start 3.55 3.55) (end 3.55 -3.55) (layer F.Fab) (width 0.15))
(fp_line (start -3.55 3.55) (end 3.55 3.55) (layer F.Fab) (width 0.15))
(fp_line (start -3.55 -3.25) (end -3.55 3.55) (layer F.Fab) (width 0.15))
(fp_line (start -3.8 -3.02) (end -3.8 -3.8) (layer F.CrtYd) (width 0.15))
(fp_line (start -3.8 -3.8) (end 3.8 -3.8) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.8 -3.8) (end 3.8 -3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.8 -3.02) (end 3.85 -3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.85 -3.02) (end 3.85 3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.85 3.02) (end 3.8 3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.8 3.02) (end 3.8 3.8) (layer F.CrtYd) (width 0.15))
(fp_line (start 3.8 3.8) (end -3.8 3.8) (layer F.CrtYd) (width 0.15))
(fp_line (start -3.8 3.8) (end -3.8 3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start -3.8 3.02) (end -3.85 3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start -3.85 3.02) (end -3.85 -3.02) (layer F.CrtYd) (width 0.15))
(fp_line (start -3.85 -3.02) (end -3.8 -3.02) (layer F.CrtYd) (width 0.15))
(pad 1 smd roundrect (at -3.4 -2.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 2 smd roundrect (at -3.4 -2.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 3 smd roundrect (at -3.4 -1.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 4 smd roundrect (at -3.4 -1.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 5 smd roundrect (at -3.4 -0.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 6 smd roundrect (at -3.4 -0.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 7 smd roundrect (at -3.4 0.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 8 smd roundrect (at -3.4 0.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 9 smd roundrect (at -3.4 1.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 10 smd roundrect (at -3.4 1.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 11 smd roundrect (at -3.4 2.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 12 smd roundrect (at -3.4 2.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 13 smd roundrect (at -2.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 14 smd roundrect (at -2.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 15 smd roundrect (at -1.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 16 smd roundrect (at -1.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 17 smd roundrect (at -0.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 18 smd roundrect (at -0.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 19 smd roundrect (at 0.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 20 smd roundrect (at 0.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 21 smd roundrect (at 1.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 22 smd roundrect (at 1.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 23 smd roundrect (at 2.25 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 24 smd roundrect (at 2.75 3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 25 smd roundrect (at 3.4 2.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 26 smd roundrect (at 3.4 2.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 27 smd roundrect (at 3.4 1.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 28 smd roundrect (at 3.4 1.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 29 smd roundrect (at 3.4 0.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 30 smd roundrect (at 3.4 0.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 31 smd roundrect (at 3.4 -0.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 32 smd roundrect (at 3.4 -0.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 33 smd roundrect (at 3.4 -1.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 34 smd roundrect (at 3.4 -1.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 35 smd roundrect (at 3.4 -2.25) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 36 smd roundrect (at 3.4 -2.75) (size 0.6 0.24) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 37 smd roundrect (at 2.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 38 smd roundrect (at 2.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 39 smd roundrect (at 1.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 40 smd roundrect (at 1.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 41 smd roundrect (at 0.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 42 smd roundrect (at 0.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 43 smd roundrect (at -0.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 44 smd roundrect (at -0.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 45 smd roundrect (at -1.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 46 smd roundrect (at -1.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 47 smd roundrect (at -2.25 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 48 smd roundrect (at -2.75 -3.4) (size 0.24 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.2083333333333333)
(solder_mask_margin 0.1))
(pad 0 smd roundrect (at 0 0.188) (size 4.6 4.975) (layers F.Cu F.Mask) (roundrect_rratio 0.011)
(solder_mask_margin 0.1))
(pad 0 smd rect (at 0 0.188) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at 1.48 0.188) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at 1.48 1.758) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at 0 1.758) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at 0 -1.382) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at 1.48 -1.382) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at -1.48 0.188) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at -1.48 1.758) (size 1.28 1.37) (layers F.Paste))
(pad 0 smd rect (at -1.48 -1.382) (size 1.28 1.37) (layers F.Paste))
)

View File

@ -0,0 +1,24 @@
(module TT_OARS-XP-4Terminal (layer F.Cu) (tedit 5DE34592)
(fp_text reference REF** (at 0 0.5) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value TT_OARS-XP-4Terminal (at 0 -0.5) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -1.4 -1.9) (end 1.4 -1.9) (layer F.SilkS) (width 0.12))
(fp_line (start -1.4 1.9) (end 1.4 1.9) (layer F.SilkS) (width 0.12))
(fp_line (start -5.5 -3.8) (end 5.5 -3.8) (layer F.CrtYd) (width 0.12))
(fp_line (start 5.5 -3.8) (end 5.5 3.8) (layer F.CrtYd) (width 0.12))
(fp_line (start 5.5 3.8) (end -5.5 3.8) (layer F.CrtYd) (width 0.12))
(fp_line (start -5.5 3.8) (end -5.5 -3.8) (layer F.CrtYd) (width 0.12))
(fp_line (start -5.4 -3.7) (end 5.4 -3.7) (layer F.Fab) (width 0.12))
(fp_line (start 5.4 -3.7) (end 5.4 3.7) (layer F.Fab) (width 0.12))
(fp_line (start 5.4 3.7) (end -5.4 3.7) (layer F.Fab) (width 0.12))
(fp_line (start -5.4 3.7) (end -5.4 -3.7) (layer F.Fab) (width 0.12))
(pad 2 smd rect (at -3.45 0) (size 3.67 0.51) (layers F.Cu F.Paste F.Mask))
(pad 3 smd rect (at 3.45 0) (size 3.67 0.51) (layers F.Cu F.Paste F.Mask))
(pad 1 smd rect (at -3.45 -2.16) (size 3.67 2.79) (layers F.Cu F.Paste F.Mask))
(pad 1 smd rect (at -3.45 2.16) (size 3.67 2.79) (layers F.Cu F.Paste F.Mask))
(pad 4 smd rect (at 3.45 2.16) (size 3.67 2.79) (layers F.Cu F.Paste F.Mask))
(pad 4 smd rect (at 3.45 -2.16) (size 3.67 2.79) (layers F.Cu F.Paste F.Mask))
)

File diff suppressed because it is too large Load Diff

304
gen_maxim_tqfn28.py Normal file
View File

@ -0,0 +1,304 @@
#!/usr/bin/env python3
# QFN/QFP-style packages with ground plane
# version 0.0.7
# added solder mask parameter
# added optional indicator circle
# added ground pad
# made ground pad optional
# fix silkscreen pin 1 marker
# added rounded pads option
# added reference designator to fab layer
# make fab layer pin drawing optional
# added TI's weird ground pad extensions
# v0.0.5
# added indicator marker to fab layer
# v0.0.6
# removed TI extensions
# converted for use in QFN/QFP packages
# - add pads for QFN/QFP
# - add fab pad drawings for QFN/QFP
# - fix silkscreen
# v0.0.7
# - add ground pad offset
# - add rotation
PARTNAME = "Maxim_TQFN-28"
total_pins = 28
num_per_edge = total_pins // 4
M1 = 0.2 # silkscreen margin
M2 = 0.05 # fab outline margin
M3 = 0.3 # courtyard margin
Z = 4.68 + 0.95 # distance across outer edges of pads
G = 4.68 - 0.95 # distance across inner edges of pads
X = (Z+G)/2. # distance between pad centers
C = 0.5 # footprint pad spacing
w = 0.3 # footprint pad width
h = (Z-G)/2. # footprint pad length
show_fab_pads = False
H = 5.0 # distance from physical pad end to opposite pad end
e = C # physical pad spacing, same as above
b = 0.30 # physical pad width
L1 = -0.4 # physical pad length
D1 = 5.0 # package width
E1 = 5.0 # package height
has_ground_pad = True
G1 = 3.25 # ground pad width
H1 = 3.25 # ground pad height
I1 = 0.0 # ground pad x offset
J1 = 0.0 # ground pad y offset
ground_pad_num = 0
# NOTE: need to test with SMD footprints
# need to make sure pad size adjustment works
# nsmd = positive
solder_mask_margin = 0.10
indicator_circle_dia = 0.3
pad_radius = None
rotation = 270
if solder_mask_margin < 0.0:
w -= 2.0*solder_mask_margin
h -= 2.0*solder_mask_margin
G1 -= 2.0*solder_mask_margin
H1 -= 2.0*solder_mask_margin
import math
def _x(x, y):
return x*math.cos(rotation*math.pi/180.) - y*math.sin(rotation*math.pi/180.)
def _y(x, y):
return x*math.sin(rotation*math.pi/180.) + y*math.cos(rotation*math.pi/180.)
def xy(x, y):
return (_x(x, y), _y(x, y))
def xyxy(x1, y1, x2, y2):
return (_x(x1, y1), _y(x1, y1), _x(x2, y2), _y(x2, y2))
if rotation == 90 or rotation == 270:
h, w = w, h
H1, G1 = G1, H1
import time
gen_time = hex(int(time.time()))[2:].upper()
prologue = """(module {} (layer F.Cu) (tedit {})
(fp_text reference REF** (at 0.0 0.0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0.0 0.0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value %V (at 0 -0.5) (layer F.Fab) hide
(effects (font (size 1 1) (thickness 0.15)))
)
"""
prologue = prologue.format(PARTNAME, gen_time, PARTNAME)
epilogue = """)"""
print(prologue)
# print silkscreen outline
inner_edge = C*(num_per_edge/2 - 0.5) + w/2 + M1
x = D1/2 + M1
y = E1/2 + M1
for x, y, nx, ny in [
(-x, -inner_edge, -inner_edge, -y),
(-x, y, -x, inner_edge), (-inner_edge, y, -x, y),
(inner_edge, y, x, y), (x, y, x, inner_edge),
(x, -inner_edge, x, -y), (x, -y, inner_edge, -y)]:
print(""" (fp_line (start {} {}) (end {} {}) (layer F.SilkS) (width 0.15))""".
format(*xyxy(x, y, nx, ny)))
if indicator_circle_dia is not None:
x = D1/2 + M1 #+ 0.5*indicator_circle_dia
y = E1/2 + M1 #+ 0.5*indicator_circle_dia
# add indicator circle
print(""" (fp_circle (center {} {}) (end {} {}) (layer F.SilkS) (width 0.15))""".
format(*xyxy(-x, -y, -x, -y - indicator_circle_dia/2.0)))
# draw package outline in fab layer
FC = 0.3
fab_points = [(-D1/2 - M2 + FC, -E1/2 - M2),
(D1/2 + M2, -E1/2 - M2),
(D1/2 + M2, E1/2 + M2),
(-D1/2 + -M2, E1/2 + M2),
(-D1/2 + -M2, -E1/2 - M2 + FC)]
nx, ny = fab_points[-1]
for x, y in fab_points:
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x, y, nx, ny)))
nx, ny = x, y
if show_fab_pads:
for i in range(num_per_edge):
x_pos = -D1/2 - M2
y_pos = C*(i-(num_per_edge/2-0.5))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos, y_pos - b/2 - M2, x_pos - L1, y_pos - b/2 - M2)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos - L1, y_pos - b/2 - M2, x_pos - L1, y_pos + b/2 + M2)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos - L1, y_pos + b/2 + M2, x_pos, y_pos + b/2 + M2)))
for i in range(num_per_edge):
x_pos = C*(i-(num_per_edge/2-0.5))
y_pos = E1/2 + M2
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos - b/2 - M2, y_pos, x_pos - b/2 - M2, y_pos + L1)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos - b/2 - M2, y_pos + L1, x_pos + b/2 + M2, y_pos + L1)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos + b/2 + M2, y_pos + L1, x_pos + b/2 + M2, y_pos)))
for i in range(num_per_edge):
x_pos = D1/2 + M2
y_pos = -C*(i-(num_per_edge/2-0.5))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos, y_pos + b/2 + M2, x_pos + L1, y_pos + b/2 + M2)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos + L1, y_pos + b/2 + M2, x_pos + L1, y_pos - b/2 - M2)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos + L1, y_pos - b/2 - M2, x_pos, y_pos - b/2 - M2)))
for i in range(num_per_edge):
x_pos = -C*(i-(num_per_edge/2-0.5))
y_pos = -E1/2 - M2
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos + b/2 + M2, y_pos, x_pos + b/2 + M2, y_pos - L1)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos + b/2 + M2, y_pos - L1, x_pos - b/2 - M2, y_pos - L1)))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(*xyxy(x_pos - b/2 - M2, y_pos - L1, x_pos - b/2 - M2, y_pos)))
# print courtyard outline
inner_x = D1/2 + M3
outer_x = X/2 + h/2 + M3/2
inner_y = C*(num_per_edge/2-0.5) + b/2 + M3/2
outer_y = E1/2 + M3
pts = [
(-inner_x, -outer_y),
(inner_x, -outer_y),
(inner_x, -inner_y),
(outer_x, -inner_y),
(outer_x, inner_y),
(inner_x, inner_y),
(inner_x, outer_y),
(-inner_x, outer_y),
(-inner_x, inner_y),
(-outer_x, inner_y),
(-outer_x, -inner_y),
(-inner_x, -inner_y)
]
nx, ny = pts[-1]
for px, py in pts:
x, y, nx, ny = nx, ny, px, py
print(""" (fp_line (start {} {}) (end {} {}) (layer F.CrtYd) (width 0.15))""".
format(*xyxy(x, y, nx, ny)))
padtype = "rect"
padext = ""
if pad_radius is not None:
padtype = "roundrect"
padext = "(roundrect_rratio {})".format(pad_radius/min(h, w))
for i in range(0, num_per_edge):
tx, ty = xy(-X/2, C*(i-(num_per_edge/2-0.5)))
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1,
padtype,
tx,
ty,
h,
w,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
tx, ty = xy(C*(i-(num_per_edge/2-0.5)), X/2)
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+1*num_per_edge,
padtype,
tx,
ty,
w,
h,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
tx, ty = xy(X/2, -C*(i-(num_per_edge/2-0.5)))
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+2*num_per_edge,
padtype,
tx,
ty,
h,
w,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
tx, ty = xy(-C*(i-(num_per_edge/2-0.5)), -X/2)
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+3*num_per_edge,
padtype,
tx,
ty,
w,
h,
padext,
solder_mask_margin))
if has_ground_pad:
tx, ty = xy(I1, J1)
if pad_radius is None:
# add ground pad
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin {}))""".
format(
ground_pad_num,
"rect",
tx,
ty,
G1,
H1,
solder_mask_margin))
else:
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
(roundrect_rratio {}) (solder_mask_margin {}))""".
format(
ground_pad_num,
"roundrect",
tx,
ty,
G1,
H1,
pad_radius/min(G1, H1),
solder_mask_margin))
print(epilogue)

284
gen_ti_rgz48.py Normal file
View File

@ -0,0 +1,284 @@
#!/usr/bin/env python3
# QFN/QFP-style packages with ground plane
# version 0.0.7
# added solder mask parameter
# added optional indicator circle
# added ground pad
# made ground pad optional
# fix silkscreen pin 1 marker
# added rounded pads option
# added reference designator to fab layer
# make fab layer pin drawing optional
# added TI's weird ground pad extensions
# v0.0.5
# added indicator marker to fab layer
# v0.0.6
# removed TI extensions
# converted for use in QFN/QFP packages
# - add pads for QFN/QFP
# - add fab pad drawings for QFN/QFP
# - fix silkscreen
# v0.0.7
# - add ground pad offset
PARTNAME = "TI-RGZ-48"
total_pins = 48
num_per_edge = total_pins // 4
M1 = 0.2 # silkscreen margin
M2 = 0.05 # fab outline margin
M3 = 0.3 # courtyard margin
Z = 6.8 + 0.6 # distance across outer edges of pads
G = 6.8 - 0.6 # distance across inner edges of pads
X = (Z+G)/2. # distance between pad centers
C = 0.5 # footprint pad spacing
w = 0.24 # footprint pad width
h = (Z-G)/2. # footprint pad length
show_fab_pads = False
H = 7.0 # distance from physical pad end to opposite pad end
e = C # physical pad spacing, same as above
b = 0.24 # physical pad width
L1 = -0.4 # physical pad length
D1 = 7.0 # package width
E1 = 7.0 # package height
has_ground_pad = True
G1 = 4.60 # ground pad width
H1 = 4.975 # ground pad height
I1 = 0.0 # ground pad x offset
J1 = 0.188 # ground pad y offset
ground_pad_num = 0
# NOTE: need to test with SMD footprints
# need to make sure pad size adjustment works
# nsmd = positive
solder_mask_margin = 0.10
indicator_circle_dia = 0.3
pad_radius = 0.05
if solder_mask_margin < 0.0:
w -= 2.0*solder_mask_margin
h -= 2.0*solder_mask_margin
G1 -= 2.0*solder_mask_margin
H1 -= 2.0*solder_mask_margin
import math
import time
gen_time = hex(int(time.time()))[2:].upper()
prologue = """(module {} (layer F.Cu) (tedit {})
(fp_text reference REF** (at 0.0 0.0) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0.0 0.0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value %V (at 0 -0.5) (layer F.Fab) hide
(effects (font (size 1 1) (thickness 0.15)))
)
"""
prologue = prologue.format(PARTNAME, gen_time, PARTNAME)
epilogue = """)"""
print(prologue)
# print silkscreen outline
inner_edge = C*(num_per_edge/2 - 0.5) + w/2 + M1
x = D1/2 + M1
y = E1/2 + M1
for x, y, nx, ny in [
(-x, -inner_edge, -inner_edge, -y),
(-x, y, -x, inner_edge), (-inner_edge, y, -x, y),
(inner_edge, y, x, y), (x, y, x, inner_edge),
(x, -inner_edge, x, -y), (x, -y, inner_edge, -y)]:
print(""" (fp_line (start {} {}) (end {} {}) (layer F.SilkS) (width 0.15))""".
format(x, y, nx, ny))
if indicator_circle_dia is not None:
x = D1/2 + M1 #+ 0.5*indicator_circle_dia
y = E1/2 + M1 #+ 0.5*indicator_circle_dia
# add indicator circle
print(""" (fp_circle (center {} {}) (end {} {}) (layer F.SilkS) (width 0.15))""".
format(-x, -y, -x, -y - indicator_circle_dia/2.0))
# draw package outline in fab layer
FC = 0.3
fab_points = [(-D1/2 - M2 + FC, -E1/2 - M2),
(D1/2 + M2, -E1/2 - M2),
(D1/2 + M2, E1/2 + M2),
(-D1/2 + -M2, E1/2 + M2),
(-D1/2 + -M2, -E1/2 - M2 + FC)]
nx, ny = fab_points[-1]
for x, y in fab_points:
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x, y, nx, ny))
nx, ny = x, y
if show_fab_pads:
for i in range(num_per_edge):
x_pos = -D1/2 - M2
y_pos = C*(i-(num_per_edge/2-0.5))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos, y_pos - b/2 - M2, x_pos - L1, y_pos - b/2 - M2))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos - L1, y_pos - b/2 - M2, x_pos - L1, y_pos + b/2 + M2))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos - L1, y_pos + b/2 + M2, x_pos, y_pos + b/2 + M2))
for i in range(num_per_edge):
x_pos = C*(i-(num_per_edge/2-0.5))
y_pos = E1/2 + M2
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos - b/2 - M2, y_pos, x_pos - b/2 - M2, y_pos + L1))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos - b/2 - M2, y_pos + L1, x_pos + b/2 + M2, y_pos + L1))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos + b/2 + M2, y_pos + L1, x_pos + b/2 + M2, y_pos))
for i in range(num_per_edge):
x_pos = D1/2 + M2
y_pos = -C*(i-(num_per_edge/2-0.5))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos, y_pos + b/2 + M2, x_pos + L1, y_pos + b/2 + M2))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos + L1, y_pos + b/2 + M2, x_pos + L1, y_pos - b/2 - M2))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos + L1, y_pos - b/2 - M2, x_pos, y_pos - b/2 - M2))
for i in range(num_per_edge):
x_pos = -C*(i-(num_per_edge/2-0.5))
y_pos = -E1/2 - M2
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos + b/2 + M2, y_pos, x_pos + b/2 + M2, y_pos - L1))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos + b/2 + M2, y_pos - L1, x_pos - b/2 - M2, y_pos - L1))
print(""" (fp_line (start {} {}) (end {} {}) (layer F.Fab) (width 0.15))""".
format(x_pos - b/2 - M2, y_pos - L1, x_pos - b/2 - M2, y_pos))
# print courtyard outline
inner_x = D1/2 + M3
outer_x = X/2 + h/2 + M3/2
inner_y = C*(num_per_edge/2-0.5) + b/2 + M3/2
outer_y = E1/2 + M3
pts = [
(-inner_x, -outer_y),
(inner_x, -outer_y),
(inner_x, -inner_y),
(outer_x, -inner_y),
(outer_x, inner_y),
(inner_x, inner_y),
(inner_x, outer_y),
(-inner_x, outer_y),
(-inner_x, inner_y),
(-outer_x, inner_y),
(-outer_x, -inner_y),
(-inner_x, -inner_y)
]
nx, ny = pts[-1]
for px, py in pts:
x, y, nx, ny = nx, ny, px, py
print(""" (fp_line (start {} {}) (end {} {}) (layer F.CrtYd) (width 0.15))""".
format(x, y, nx, ny))
padtype = "rect"
padext = ""
if pad_radius is not None:
padtype = "roundrect"
padext = "(roundrect_rratio {})".format(pad_radius/min(h, w))
for i in range(0, num_per_edge):
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1,
padtype,
-X/2,
C*(i-(num_per_edge/2-0.5)),
h,
w,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+1*num_per_edge,
padtype,
C*(i-(num_per_edge/2-0.5)),
X/2,
w,
h,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+2*num_per_edge,
padtype,
X/2,
-C*(i-(num_per_edge/2-0.5)),
h,
w,
padext,
solder_mask_margin))
for i in range(0, num_per_edge):
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
{} (solder_mask_margin {}))""".
format(
i+1+3*num_per_edge,
padtype,
-C*(i-(num_per_edge/2-0.5)),
-X/2,
w,
h,
padext,
solder_mask_margin))
if has_ground_pad:
if pad_radius is None:
# add ground pad
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
(solder_mask_margin {}))""".
format(
ground_pad_num,
"rect",
I1,
J1,
G1,
H1,
solder_mask_margin))
else:
print(""" (pad {} smd {} (at {} {}) (size {} {}) (layers F.Cu F.Paste F.Mask)
(roundrect_rratio {}) (solder_mask_margin {}))""".
format(
ground_pad_num,
"roundrect",
I1,
J1,
G1,
H1,
pad_radius/min(G1, H1),
solder_mask_margin))
print(epilogue)