1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#import "../lib/unify.typ": qty
#import "@preview/cetz:0.5.2"
#figure(
cetz.canvas({
import cetz.draw: *
let dx = 1.0
let top-y = 0.55
let bot-y = -0.55
// Outer mounting flange / metal ears
rect(
(-2.0, -1.4),
(14.0, 1.4),
rx: 0.2,
fill: luma(245),
stroke: 1pt + luma(100),
)
// Left and right chassis mounting screw holes
circle((-1.3, 0), radius: 0.35, fill: luma(220), stroke: 1pt + luma(120))
circle((-1.3, 0), radius: 0.20, fill: white, stroke: 0.8pt + luma(100))
circle((13.3, 0), radius: 0.35, fill: luma(220), stroke: 1pt + luma(120))
circle((13.3, 0), radius: 0.20, fill: white, stroke: 0.8pt + luma(100))
// D-Sub trapezoidal shroud outline
line(
(-0.7, 1.15),
(12.7, 1.15),
(12.2, -1.15),
(-0.2, -1.15),
close: true,
fill: luma(230),
stroke: 1.5pt + black,
)
// Shell Earth ground connection reference
line((-0.45, -1.15), (-0.45, -2.0), stroke: (
paint: luma(120),
thickness: 0.7pt,
dash: "dashed",
))
content(
(-0.45, -2.05),
text(size: 7.5pt, weight: "bold")[Shell: Chassis Earth],
angle: -50deg,
anchor: "north-west",
)
// Top row pins (Pins 1 to 13)
let top-pins = (
("1", [$plus qty(15.00, "V")$]),
("2", [$plus qty(15.00, "V")$]),
("3", [$qty(-15.00, "V")$]),
("4", [$qty(-15.00, "V")$]),
("5", [AGND]),
("6", [AGND]),
("7", [AGND]),
("8", [$plus qty(10.0000, "V")$ Force]),
("9", [$plus qty(10.0000, "V")$ Sense]),
("10", [$qty(-10.0000, "V")$ Force]),
("11", [$qty(-10.0000, "V")$ Sense]),
("12", [AGND]),
("13", [AGND]),
)
// Bottom row pins (Pins 14 to 25)
let bot-pins = (
("14", [AGND]),
("15", [AGND]),
("16", [AGND]),
("17", [DGND]),
("18", [DGND]),
("19", [$plus qty(5.0, "VD")$]),
("20", [$qty(-5.0, "VD")$]),
("21", [Stagger]),
("22", [_Reserved_]),
("23", [_Reserved_]),
("24", [_Reserved_]),
("25", [Chassis Earth]),
)
// Draw Top Pins (1-13)
for (i, p) in top-pins.enumerate() {
let x = i * dx
let p-num = p.at(0)
let p-sig = p.at(1)
circle((x, top-y), radius: 0.26, fill: white, stroke: 1pt + black)
content((x, top-y), text(size: 7pt, weight: "bold")[#p-num])
line((x, top-y + 0.26), (x, 1.8), stroke: (
paint: luma(120),
thickness: 0.6pt,
))
content(
(x, 1.85),
text(size: 7.5pt)[#p-sig],
angle: 50deg,
anchor: "south-west",
)
}
// Draw Bottom Pins (14-25)
for (j, p) in bot-pins.enumerate() {
let x = (j + 0.5) * dx
let p-num = p.at(0)
let p-sig = p.at(1)
circle((x, bot-y), radius: 0.26, fill: white, stroke: 1pt + black)
content((x, bot-y), text(size: 7pt, weight: "bold")[#p-num])
line((x, bot-y - 0.26), (x, -1.8), stroke: (
paint: luma(120),
thickness: 0.6pt,
))
content(
(x, -1.85),
text(size: 7.5pt)[#p-sig],
angle: -50deg,
anchor: "north-west",
)
}
}),
caption: [DB-25 backplane connector physical pinout and signal allocation diagram.],
) <figure-backplane-connector-diagram>
|