Skip to content

jsl/landpatterns/thermal-pads

Package name: jsl/landpatterns/thermal-pads

Summary

Data Types

PasteSubdivision

Paste Subdivision Generator

Constructors

Function Description
PasteSubdivision (+ 1) Constructor for defstruct PasteSubdivision

Multis

Function Description
create-paste-subdivision Create Paste SubDivision Shape

Methods

Function Description
create-paste-subdivision Default paste application shape for the thermal pad

ThermalPad

Thermal Pad Generator

Constructors

Function Description
ThermalPad (+ 1) Constructor for defstruct ThermalPad

Functions

Function Description
smd-thermal-pad Construct a thermal SMD pcb-pad definition
ThermalPad Create a thermal pad with a simple paste subdivision pattern.

Definitions

PasteSubdivision

Paste Subdivision Generator

public defstruct PasteSubdivision :
    elem-dims: Dims|(GridPosition) -> Dims
    elem-planner: PadPlanner
    paste-grid: GridPlanner

  • elem-dims: Dims|(GridPosition) -> Dims - Paste Element Dimensions This parameter determines the shape of the paste opening elements in the grid. The user can either:

    1. Provide a static Dims object that is applied to all openings. This is the most typical case.
    2. A function that converts the GridPosition to Dims. This allows for variable sized openings in teh grid. (This is less common). The Dims must be in units of mm.
  • elem-planner: PadPlanner - Paste Application Element Planner This planner coordinates the shape and population of paste elements in the grid.

    By default this uses RectanglePadPlanner

  • paste-grid: GridPlanner - Grid Structure for the Paste Elements

This type is used to construct a grid of paste applications. This is typically used for large thermal pads associated with QFNs, QFPs, SOIC, TSSOP, etc for high power applications.

The idea is to provide empty space for the excess solder paste to flow into during the phase transition of the solder material. This reduces short circuits and other assembly attrition.

Constructors

PasteSubdivision

Constructor for defstruct PasteSubdivision

public defn PasteSubdivision (elem-dims:Dims|(GridPosition) -> Dims, elem-planner:PadPlanner, paste-grid:GridPlanner)

PasteSubdivision

Constructor for defstruct PasteSubdivision

public defn PasteSubdivision ( -- elem-dims:Dims|(GridPosition) -> Dims, elem-planner:PadPlanner = ?, paste-grid:GridPlanner)

Multis

create-paste-subdivision

Create Paste SubDivision Shape

public defmulti create-paste-subdivision (p:PasteSubdivision) -> Shape

  • p: PasteSubdivision - The PasteSubdivision object
  • Returns Shape - A Shape that will be applied to the thermal pad at the origin of the thermal pad. To create multiple non-contiguous shapes, use the Union shape type.

This is the interface definition for the PasteSubdivision types. The user can override the default behavior of the subdivision generator by overriding this method in a derived class.

Methods

create-paste-subdivision

Default paste application shape for the thermal pad

defmethod create-paste-subdivision (p:PasteSubdivision) -> Shape

  • p: PasteSubdivision - Parameters for the paste subdivider
  • Returns Shape - A Union shape of multiple elements. It is possible that these elements overlap.

The default implementation constructs a grid of elements based on the PasteSubdivision parameters.

The GridPlanner is used to construct the grid shape. This implementation uses a limited subset of PadPlanner to provide:

  1. Which grid locations are active.
  2. The shape at each of those grid locations.

ThermalPad

Thermal Pad Generator

public defstruct ThermalPad :
    paste-subdiv: Maybe<PasteSubdivision>
    shape: Shape
    sm-expand: Maybe<Double>

  • paste-subdiv: Maybe<PasteSubdivision> - Optional Paste Subdivider This object provides the information necessary to subdivide the paste application into a grid of elements.

    By default, this value is None().

  • shape: Shape - Copper Shape for the Thermal Lead Dimensions of this shape are in mm

  • sm-expand: Maybe<Double> - Optional override of the default soldermask expansion This value is in mm and increases the soldermask opening by sm-expand mm on each side of shape. For example, the width of the soldermask opening will be 2 * sm-expand larger than the originating shape. This value is allowed to be negative - but it is on the user to make sure the generated opening is compatible with the package.

This type is used to construct large thermal pads for land patterns like QFNs, TSSOPs, etc.

Constructors

ThermalPad

Constructor for defstruct ThermalPad

public defn ThermalPad (shape:Shape, sm-expand:Maybe<Double>, paste-subdiv:Maybe<PasteSubdivision> = ?)

ThermalPad

Constructor for defstruct ThermalPad

public defn ThermalPad ( -- shape:Shape, sm-expand:Maybe<Double> = ?, paste-subdiv:Maybe<PasteSubdivision> = ?)

Functions

smd-thermal-pad

Construct a thermal SMD pcb-pad definition

public defn smd-thermal-pad (tp:ThermalPad) -> Pad

  • tp: ThermalPad - Thermal Pad Specification
  • Returns Pad - The constructed pcb-pad definition we can use in our landpatterns.

ThermalPad

Create a thermal pad with a simple paste subdivision pattern.

public defn ThermalPad (shape:Rectangle -- padding:Double = ?, grid-size:Int = ?) -> ThermalPad

  • shape: Rectangle - Rectangular shape for the thermal pad. General purpose shapes aren't allowed here so that we can make the math easier.
  • padding: Double - Spacing in mm between paste openings and between the edge of the copper pad and the paste opening. The default value is 0.2mm.
  • grid-size: Int - This function assumes a square grid and this value determines how many openings on each side of this grid. So a value of 3 would indicate a 3x3 grid with 9 openings. The default value is 2.
  • Returns ThermalPad

This is a helper routine for constructing the paste subdivision more easily.

Related Packages

Forwarded by packages: jsl/landpatterns/framework, jsl/landpatterns