jsl/landpatterns/leads/lead-types¶
Package name: jsl/landpatterns/leads/lead-types
Summary¶
Data Types¶
Lead¶
Pin or Electrical contact of a component package
Multis¶
Function | Description |
---|---|
length | Dimension of the lead that is normal to the edge of the package body |
width | Dimension of the lead that is parallel to the edge of the package body. |
TH-Lead¶
Through-hole Component Lead
Multis¶
Function | Description |
---|---|
compute-hole-pad-diam | Compute the Hole and Pad Dimensions |
Methods¶
Function | Description |
---|---|
compute-hole-pad-diam | Default Implementation for hole and pad size computation |
Functions¶
Function | Description |
---|---|
make-pad-def | Construct the Pad Definition for this Through-Hole Lead |
TH-Lead | Through-Hole Lead Constructor |
SMT-Lead¶
Surface Mount Component Lead
Multis¶
Function | Description |
---|---|
pad-constraints | Compute the IPC-compliant Pad Constraints for this SMT Lead |
Methods¶
Function | Description |
---|---|
pad-constraints | Default Implementation for pad-constraints |
Definitions¶
Lead¶
Pin or Electrical contact of a component package
public deftype Lead <: Equalable & Hashable
The leads of a device are the electrical contact of the internal semiconductor to the outside world.
These come in a variety of styles: - For through hole components, the leads are typically cylindrical pieces of metal extending from the ends (axial) or the bottom (radial) - For surface mount components, the leads are typically embedded into the body of the package.
Multis¶
length¶
Dimension of the lead that is normal to the edge of the package body
public defmulti length (lead:Lead) -> Toleranced
- Returns
Toleranced
Examples:
- For through-hole components, the lead length is the overall length
of the cylindrical copper.
- For SOP/SOIC/QFP, the lead length is typically the length of
mate-able surface between the lead contact and the PCB. It typically
does not include any bends in the lead to reach the mating surface.
- For SMT chip resistors (0603, etc), the length is the termination
(typically labeled b
in drawings)
TODO - need a figure here.
width¶
Dimension of the lead that is parallel to the edge of the package body.
public defmulti width (lead:Lead) -> Toleranced
- Returns
Toleranced
Examples: - For through-hole components, the lead width is typically the diameter of the cylindrical lead. - For SOP/SOIC/QFP, the lead width is measured parallel to the body and must be strictly smaller than the pitch of the pins. - For SMT chip resistors, the lead width is typically the entire width of the package body.
TH-Lead¶
Through-hole Component Lead
public defstruct TH-Lead <: Lead :
override: Maybe<Pad>
override: Maybe<Pad>
- Override Pad Definition This allows the user to define a specific pad definition that will override the computed pad dimensions based on IPC rules.
This type is for describing the leads from a Through-hole package such as a Radial Capacitor, or an Axial Resistor.
Multis¶
compute-hole-pad-diam¶
Compute the Hole and Pad Dimensions
public defmulti compute-hole-pad-diam (lead:TH-Lead, dl:DensityLevel) -> [Dims, Dims]
lead: TH-Lead
- The parameters of this through-hole leaddl: DensityLevel
- Density Level specification for this package.- Returns
[Dims, Dims]
- Tuple of [hole-size, pad-size] asDims
objects. These objects then get converted to a pad by thePadPlanner
generator functions.
This function is primarily intended to be a tool for converting the lead dimensions into a hole for a landpattern.
Methods¶
compute-hole-pad-diam¶
Default Implementation for hole and pad size computation
defmethod compute-hole-pad-diam (lead:TH-Lead, dl:DensityLevel) -> [Dims, Dims]
- Returns
[Dims, Dims]
- This function only returns symmetric definitions resulting in circular holes.
This function generates sizes according IPC2222 specs.
Functions¶
make-pad-def¶
Construct the Pad Definition for this Through-Hole Lead
public defn make-pad-def (lead:TH-Lead, pad-gen:(Dims, Dims) -> Pad, dl:DensityLevel) -> Pad
lead: TH-Lead
- This leadpad-gen: (Dims, Dims) -> Pad
- Function that converts the hole and pad size to aPad
definition. This function typically comes from the PadPlanner.dl: DensityLevel
- Density Level specification for the package this pad is supporting.- Returns
Pad
- A pad definition that will be used to construct the land pattern definition.
This is primarily a helper function to make construction of the through-hole pad easier. This function will decide between:
- Computing the hole and pad sizes and constructing the
pads using the
PadPlanner
generator - Leveraging the
override
pad provided by the user.
TH-Lead¶
Through-Hole Lead Constructor
public defn TH-Lead ( -- length:Toleranced, width:Toleranced, override:Pad = ?)
length: Toleranced
- Length of the wire lead of a through-hole component in mm.width: Toleranced
- Cross-section width of the wire lead in mm. This is typically the diameter (or for square/rectangular pins the diagonal)override: Pad
- Optional Pad definition to override computed values. Often a datasheet provides explicit hole sizes. This argument can allow the user to use those definitions explicitly.
SMT-Lead¶
Surface Mount Component Lead
public defstruct SMT-Lead <: Lead :
lead-type: LeadProtrusion
lead-type: LeadProtrusion
- The lead type defines the physical nature of the lead.
This type is for describing leads from SMT packages such as SOIC, SOP, QFN, etc.
Constructors¶
SMT-Lead¶
Constructor for defstruct SMT-Lead
public defn SMT-Lead (lead-type:LeadProtrusion, length:Toleranced, width:Toleranced)
SMT-Lead¶
Constructor for defstruct SMT-Lead
public defn SMT-Lead ( -- lead-type:LeadProtrusion, length:Toleranced, width:Toleranced)
Multis¶
pad-constraints¶
Compute the IPC-compliant Pad Constraints for this SMT Lead
public defmulti pad-constraints (x:SMT-Lead, lead-span:Toleranced -- density-level:DensityLevel = ?) -> IpcResults
x: SMT-Lead
- selflead-span: Toleranced
density-level: DensityLevel
- Returns
IpcResults
This result provides the necessary dimensions for computing the pad size and position in a landpattern.
Related Packages¶
Forwarded by packages: jsl/landpatterns/leads, jsl/landpatterns/framework, jsl/landpatterns