Mail Archives: geda-user/2014/07/15/12:09:21
On 07/15/2014 08:20 AM, DJ Delorie wrote:
>> Is is legal to set the thermal flag in a footprint?
>
> Probably, but it's a bad idea design-wise to do so - a user of the
> footprint might get a short if they don't realize the thermal is
> there.
>
I'm looking at an HSSOP package, which is an SO-20 with a thermal slug.
My current footprint prototype is attached. The SO pins are totally
normal. For the heat slug, I've broken it down as:
1. A Pad[] with no mask that defines the comp-side copper.
2. A Pad[] overlaid with the above pad that defines the comp-side mask
aperture. Of course, that could be done with one pad if the mask inset
was equal all around, but I'm doing this with a script so I wanted
something easy to generalize to other similar parts.
3. A bunch of Pin[]'s for the via drills. Currently, the pad is there
just to remind you where they are, and there is enough clearance so that
it is obvious if they haven't been thermal'ed into the solder-side copper.
I'm assuming the user draws the solder-side copper as a polygon, and
none of that is included in the footprint, except for the pin pads which
allow the thermal vias to be thermaled into the back-side polygon.
So I think the options are:
1. Stop. It's good enough. Let the user click on every via to connect
the ground plane.
2. Set the "hole" flag on the Pin[]'s so that they become bare drills.
Assume the user is paying attention and draws the ground plane on the
back, and plating will happen. I suspect that you lose PCB's
connectivity checking if you were to be so daft as to draw some other
signal on top of one of the holes by accident.
3. Set the thermal flag in the footprint itself.
Element["" "" "" "" 1000 1000 0 0 0 100 ""]
(
Pad[-30019 -22500 -26870 -22500 2362 1600 3162 "1" "1" "square"]
Pad[-30019 -17500 -26870 -17500 2362 1600 3162 "2" "2" "square"]
Pad[-30019 -12500 -26870 -12500 2362 1600 3162 "3" "3" "square"]
Pad[-30019 -7500 -26870 -7500 2362 1600 3162 "4" "4" "square"]
Pad[-30019 -2500 -26870 -2500 2362 1600 3162 "5" "5" "square"]
Pad[-30019 2499 -26870 2499 2362 1600 3162 "6" "6" "square"]
Pad[-30019 7500 -26870 7500 2362 1600 3162 "7" "7" "square"]
Pad[-30019 12500 -26870 12500 2362 1600 3162 "8" "8" "square"]
Pad[-30019 17500 -26870 17500 2362 1600 3162 "9" "9" "square"]
Pad[-30019 22500 -26870 22500 2362 1600 3162 "10" "10" "square"]
Pad[26870 -22500 30019 -22500 2362 1600 3162 "20" "20" "square"]
Pad[26870 -17500 30019 -17500 2362 1600 3162 "19" "19" "square"]
Pad[26870 -12500 30019 -12500 2362 1600 3162 "18" "18" "square"]
Pad[26870 -7500 30019 -7500 2362 1600 3162 "17" "17" "square"]
Pad[26870 -2500 30019 -2500 2362 1600 3162 "16" "16" "square"]
Pad[26870 2499 30019 2499 2362 1600 3162 "15" "15" "square"]
Pad[26870 7500 30019 7500 2362 1600 3162 "14" "14" "square"]
Pad[26870 12500 30019 12500 2362 1600 3162 "13" "13" "square"]
Pad[26870 17500 30019 17500 2362 1600 3162 "12" "12" "square"]
Pad[26870 22500 30019 22500 2362 1600 3162 "11" "11" "square"]
# <render thermal sink here>
# comp cu polygon
# Pt(-5 mm,-7 mm)
# Pt(-5 mm,7 mm)
# Pt(5 mm,7 mm)
# Pt(5 mm,-7 mm)
Pad[0 7874 0 -7874 39370 800 0 "THRM" "21" "square"]
# comp anti-mask polygons
# mask clearance polygon 1
# Pt(-3.2 mm,-5.85 mm)
# Pt(-3.2 mm,5.85 mm)
# Pt(3.2 mm,5.85 mm)
# Pt(3.2 mm,-5.85 mm)
Pad[0 10433 0 -10433 25196 0 25196 "THRM" "21" "square"]
# Drills
# Pt(-3.33333 mm,-5.83333 mm) , 0.3 mm
Pin[-13123 22965 3181 800 0 1181 "" "21" ""]
# Pt(-3.33333 mm,-3.5 mm) , 0.3 mm
Pin[-13123 13779 3181 800 0 1181 "" "21" ""]
# Pt(-3.33333 mm,-1.16667 mm) , 0.3 mm
Pin[-13123 4593 3181 800 0 1181 "" "21" ""]
# Pt(-3.33333 mm,1.16667 mm) , 0.3 mm
Pin[-13123 -4593 3181 800 0 1181 "" "21" ""]
# Pt(-3.33333 mm,3.5 mm) , 0.3 mm
Pin[-13123 -13779 3181 800 0 1181 "" "21" ""]
# Pt(-3.33333 mm,5.83333 mm) , 0.3 mm
Pin[-13123 -22965 3181 800 0 1181 "" "21" ""]
# Pt(4.44089e-16 mm,-4.66667 mm) , 0.3 mm
Pin[0 18372 3181 800 0 1181 "" "21" ""]
# Pt(4.44089e-16 mm,-2.33333 mm) , 0.3 mm
Pin[0 9186 3181 800 0 1181 "" "21" ""]
# Pt(4.44089e-16 mm,8.88178e-16 mm) , 0.3 mm
Pin[0 0 3181 800 0 1181 "" "21" ""]
# Pt(4.44089e-16 mm,2.33333 mm) , 0.3 mm
Pin[0 -9186 3181 800 0 1181 "" "21" ""]
# Pt(4.44089e-16 mm,4.66667 mm) , 0.3 mm
Pin[0 -18372 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,-5.83333 mm) , 0.3 mm
Pin[13123 22965 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,-3.5 mm) , 0.3 mm
Pin[13123 13779 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,-1.16667 mm) , 0.3 mm
Pin[13123 4593 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,1.16667 mm) , 0.3 mm
Pin[13123 -4593 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,3.5 mm) , 0.3 mm
Pin[13123 -13779 3181 800 0 1181 "" "21" ""]
# Pt(3.33333 mm,5.83333 mm) , 0.3 mm
Pin[13123 -22965 3181 800 0 1181 "" "21" ""]
# ^^ end thermal sink
ElementLine[23114 -31496 23114 31496 1000]
ElementLine[23114 31496 -23114 31496 1000]
ElementLine[-23114 31496 -23114 -31496 1000]
ElementLine[-23114 -31496 23114 -31496 1000]
)
- Raw text -