Sign in with STEVE

steve/tssop-package

TSSOP package, 4.4 mm body, 0.65 mm pitch: 14, 16, 20 and 24 pins.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 53 lines · Python · STEVE runtime · checked
Download
1"""TSSOP package, 4.4 mm body, 0.65 mm pitch (TI PW package): 14, 16, 20 and 24 pins. Centred on the origin with the seating plane on the XY plane, pins 1 to n/2 on
2the -Y side running +X, the others on +Y running back. Dimensions from TI's package outlines in the README."""
3from steve import Model
4
5pins = 16 # Pins
6detail = "full" # full: body, pin-1 mark and gull-wing leads; simple: the body only
7
8# TI package outlines PW0014A (4220202/B 12/2023), PW0016A (4220204/B 12/2023), PW0020A (4220206/A 02/2017), PW0024A (4220208/A 02/2017), https://www.ti.com/lit/pdf/
9# mpds360 to mpds363; reference JEDEC MO-153. Body length (note 3) by pins: 14 and 16: 4.9 to 5.1, 20: 6.4 to 6.6, 24: 7.7 to 7.9. Body width 4.3 to 4.5 (note 4),
10# lead tip to tip 6.2 to 6.6, height 1.2 max, standoff 0.05 to 0.15, pitch 0.65, lead width 0.17 (0.19) to 0.30, foot 0.50 to 0.75, lead thickness (0.15).
11LENGTH = {14: (4.9, 5.1), 16: (4.9, 5.1), 20: (6.4, 6.6), 24: (7.7, 7.9)}
12PITCH, WIDTH, SPAN, TOP, STANDOFF, LEAD_W, FOOT, LEAD_T = 0.65, 4.4, 6.4, 1.2, 0.1, 0.24, 0.625, 0.15
13if pins not in LENGTH:
14 raise ValueError("These outlines cover 14, 16, 20 and 24 pins.")
15
16per_row = pins // 2
17length = sum(LENGTH[pins]) / 2
18first = -(per_row - 1) * PITCH / 2
19model = Model()
20model.plane("body_plane", on="XY", offset=STANDOFF, name="Body")
21with model.sketch("body_sketch", on="body_plane", name="Body") as sk:
22 sk.rect("body_rect", (-length / 2, -WIDTH / 2), (length / 2, WIDTH / 2))
23model.extrude("body", "body_sketch", distance=TOP - STANDOFF, name="Body")
24if detail == "full":
25 model.plane("top_plane", on="XY", offset=TOP, name="Top")
26 with model.sketch("mark_sketch", on="top_plane", name="Pin-1 mark") as sk:
27 sk.circle("mark_circle", (-length / 2 + 0.6, -WIDTH / 2 + 0.6), 0.25)
28 model.extrude("mark", "mark_sketch", distance=-0.05, op="cut", name="Pin-1 mark")
29 arm_z = (TOP + STANDOFF) / 2 # the gull wing's bend heights are proportions, for looks; foot, span, width and pitch are the outline's
30 for tag, side in (("low", -1), ("high", 1)):
31 y_out = side * SPAN / 2
32 y_body = side * WIDTH / 2
33 y_bend = side * (SPAN / 2 - FOOT)
34 with model.sketch(f"feet_{tag}", on="XY", name="Leads") as sk:
35 for i in range(per_row):
36 x = first + i * PITCH
37 sk.rect(f"foot_{tag}_{i}", (x - LEAD_W / 2, min(y_bend, y_out)), (x + LEAD_W / 2, max(y_bend, y_out)))
38 model.extrude(f"feet_{tag}_body", f"feet_{tag}", distance=LEAD_T, name="Leads")
39 model.plane(f"arm_plane_{tag}", on="XY", offset=arm_z, name="Leads")
40 with model.sketch(f"arms_{tag}", on=f"arm_plane_{tag}", name="Leads") as sk:
41 for i in range(per_row):
42 x = first + i * PITCH
43 sk.rect(f"arm_{tag}_{i}", (x - LEAD_W / 2, min(y_body, y_bend) - LEAD_T / 2), (x + LEAD_W / 2, max(y_body, y_bend) + LEAD_T / 2))
44 model.extrude(f"arms_{tag}_body", f"arms_{tag}", distance=LEAD_T, name="Leads")
45 model.plane(f"leg_plane_{tag}", on="XY", offset=0, name="Leads")
46 with model.sketch(f"legs_{tag}", on=f"leg_plane_{tag}", name="Leads") as sk:
47 for i in range(per_row):
48 x = first + i * PITCH
49 sk.rect(f"leg_{tag}_{i}", (x - LEAD_W / 2, y_bend - LEAD_T / 2), (x + LEAD_W / 2, y_bend + LEAD_T / 2))
50 model.extrude(f"legs_{tag}_body", f"legs_{tag}", distance=arm_z + LEAD_T, name="Leads")
51model.material("pla", color="#26282b")
52result = model.result()
53

A TSSOP package for board layouts: body, pin-1 mark and gull-wing leads, from TI's PW package outlines (reference JEDEC MO-153). See the README.

TSSOP package

A TSSOP package with a 4.4 mm body and 0.65 mm pitch, 14 to 24 pins. It is centred on the origin with the seating plane on the XY plane. Pins 1 to n/2 are on the -Y side running +X, and the others are on +Y running back.

Source

TI package outlines, each referencing JEDEC MO-153:

14 and 16 pins 20 pins 24 pins
Body length 4.9 to 5.1 6.4 to 6.6 7.7 to 7.9

For every pin count:

  • body width 4.3 to 4.5, lead tip to tip 6.2 to 6.6
  • height 1.2 max, standoff 0.05 to 0.15
  • pitch 0.65
  • lead width 0.17 to 0.30, foot 0.50 to 0.75, lead thickness (0.15) reference

The model uses the middle of each range. Height is the 1.2 max, so read it as an envelope.

Proportions, for looks only: the gull wing's bend heights and the pin-1 mark.

Other TSSOP widths (3, 6.1 and 8 mm), other pin counts and exposed-pad versions aren't here yet; see COVERAGE.md.

  1. 1.0.0 Latest
More #ic-package
STEVEMIT

steve/so-package

Small-outline IC packages by TI outline: SOIC-14/16 and 20W, SSOP-16/20/28, TSSOP-8 and TSSOP-48/56 (6.1 mm body).

0 10 sizes 0 2 hours ago v1.0.0
STEVEMIT

steve/son-package

No-lead small-outline IC packages by TI outline: WSON-8/10/12/16, VSON-8 and X1SON-8, 0.4 to 0.8 mm pitch, with exposed thermal pad.

1 7 sizes 0 1 hour ago v1.1.0
STEVEMIT

steve/sot-package

Small-outline transistor packages by TI outline: SOT-23, thin SOT-23-5/6/8, SC-70-3/6, SOT-553 and SOT-563.

0 9 sizes 0 1 hour ago v1.0.0
STEVEMIT

steve/qfn-package

Quad flat no-lead IC packages by TI outline: VQFN-20 (0.65 mm pitch) and VQFN-24/32/48/64 (0.5 mm pitch), with exposed thermal pad.

0 6 sizes 0 1 hour ago v1.0.0