Files
rpicarrierboard/CM5_Carrier_Pinout_BOM.md
2026-06-24 10:36:31 -04:00

13 KiB
Raw Permalink Blame History

CM5 Carrier — Pinouts, Nets & BOM

Companion to CM5_Carrier_Design.md. This is the schematic-capture worksheet: connector pinouts, the net list grouped by interface, and a BOM with candidate MPNs.

Sourcing note on CM5 ball/pin numbers: the two 100-pin connectors (J1 = pins 1100 top, J2mod = pins 101200 bottom) carry every CM5 signal. Rather than transcribe 200 pins (error-prone), this sheet references CM5 signals by their datasheet net names; pull exact pin numbers from the official CM5 KiCad symbol when capturing. All user-facing connector pinouts (40-pin, 14-pin J2, USB, GPS, PPS, UART) are given exactly. The 40-pin map below is verified against the CM5/Pi-5 standard.


1. Connector inventory & reference designators

RefDes Connector Notes
J1 / J2MOD 2× 100-pin DF40 (to CM5) Hirose DF40C-100DS-0.4V mate; 1.5/2.0/4.0 mm stack options
J_PWR 15 VDC input barrel jack or 2-pin locking
J_ETH RJ45 magjack (GbE) 1:1, integrated magnetics
J_E M.2 E-key socket (2230) Wi-Fi (AW7915)
J_USB1 USB-A (USB3)
J_USB2 USB-A (USB3)
J_UPROG USB-C rpiboot/programming
J_GPIO 40-pin 2.54 mm header Pi HAT
J2 14-pin 2.54 mm header CM5IO J2 reference
J_UART 3-pin header debug UART
J_GPS 5-pin header PPS+UART+3V3+GND
J_PPS1 2-pin header PPS tap → UWB
J_PPS2 2-pin header PPS tap → scope/spare
BT1 CR2032 holder RTC backup
J_FAN 4-pin JST-SH PWM fan (optional, keep from ref)

2. 40-pin GPIO header (J_GPIO) — exact pinout

Standard Raspberry Pi / CM5 HAT pinout. BCM GPIO numbering.

Pin Signal Pin Signal
1 3V3 2 5V
3 GPIO2 (SDA1) 4 5V
5 GPIO3 (SCL1) 6 GND
7 GPIO4 (GPCLK0) 8 GPIO14 (TXD0)
9 GND 10 GPIO15 (RXD0)
11 GPIO17 12 GPIO18 (PCM_CLK)
13 GPIO27 14 GND
15 GPIO22 16 GPIO23
17 3V3 18 GPIO24
19 GPIO10 (MOSI) 20 GND
21 GPIO9 (MISO) 22 GPIO25
23 GPIO11 (SCLK) 24 GPIO8 (CE0)
25 GND 26 GPIO7 (CE1)
27 GPIO0 (ID_SD) 28 GPIO1 (ID_SC)
29 GPIO5 30 GND
31 GPIO6 32 GPIO12 (PWM0)
33 GPIO13 (PWM1) 34 GND
35 GPIO19 (PCM_FS) 36 GPIO16
37 GPIO26 38 GPIO20 (PCM_DIN)
39 GND 40 GPIO21 (PCM_DOUT)

NMEA UART assignment (CORRECTED): use UART2 on GPIO4 (pin 7) / GPIO5 (pin 29) → cross to GPS RX/TX on J_GPS, enabled via dtoverlay=uart2. The debug console keeps UART0 (GPIO14/15, pins 8/10) — there are no dedicated debug-UART pins on the CM5 connector (correction C2). Pins 7/29 are committed to GPS when J_GPS is fitted.

Vref: Pin 1/17 3V3 sets HAT logic level. CM5 GPIO bank is 3.3 V by default (R5 fitted equivalent); do not feed 1.8 V unless a deliberate Vref change is made on the module side.


3. 14-pin header (J2) — exact CM5IO reference

Pin Net Function
1 nRPIBOOT jumper 12 → boot from USB
2 GND
3 EEPROM_nWP jumper 34 → write-protect EEPROM
4 GND
5 NC (reference: unassigned)
6 SYNC IEEE 1588 timing — driven by PPS dist block (input to CM5). Maps to CM5 pin 18 Ethernet_SYNC_OUT, 3.3 V.
7 NC
8 NC
9 NC
10 NC
11 NC
12 PMIC_ENABLE power enable/disable
13 BUTTON (wake/shutdown) push-button
14 GND button return

CORRECTED (per refs/CM5IO.kicad_sym): the CM5 timing pin is a single Ethernet_SYNC_OUT on connector pin 18, at 3.3 V, bidirectional (configurable as input). There is no separate 1.8 V SYNC_IN. No level translation is needed — the 3.3 V GPS PPS drives it directly through the Schmitt + a series R. See CM5_Carrier_PinMap.md §5 and correction C1.


4. M.2 E-key (J_E) — net assignment (Wi-Fi only, AW7915)

A+E key edge. Populate PCIe + control; leave USB pins NC.

M.2 pin(s) Net To
32, 34 (PERST0#, etc.) PCIE_PERST# CM5 PCIe PERST
CLKREQ0# PCIE_CLKREQ# CM5 PCIe CLKREQ
REFCLK+ / REFCLK PCIE_REFCLK_P/N CM5 PCIe refclk (100 MHz)
PETp0/PETn0 PCIE_TX_P/N CM5 PCIe TX (AC-coupled on CM5)
PERp0/PERn0 PCIE_RX_P/N CM5 PCIe RX (AC-couple caps on carrier)
W_DISABLE1# (RF_KILL) WIFI_DISABLE# pull-up + optional GPIO
3.3 V pins +3V3_RF from 15→3.3 V 4 A RF buck (direct)
GND GND
USB D+/D (E-key) NC Bluetooth not used

PCIe pair impedance ~85 Ω diff. Keep REFCLK as a matched pair; series-couple per M.2 spec.


5. USB assignments

Port CM5 source net ESD
J_USB1 (USB-A) USB3_0 (SS pairs + USB2 D±) USBLC6-2SC6
J_USB2 (USB-A) USB3_1 (SS pairs + USB2 D±) USBLC6-2SC6
J_UPROG (USB-C) USB2_0 (D±) + CC1/CC2 5.1k USBLC6-2SC6
  • USB-C is device/programming (rpiboot): wire D± to CM5 USB 2.0 port; CC1/CC2 each get 5.1 kΩ to GND (sink/UFP). Pair with nRPIBOOT jumper on J2.
  • USB-A SuperSpeed pairs ~90 Ω diff; USB2 D± ~90 Ω diff.
  • VBUS to USB-A from 5 V via current-limit switch (~0.91.2 A/port).

6. PPS / timing distribution — nets

J_GPS.PPS (3V3) ─► [TVS] ─► [Schmitt LVC1G17, 3V3] ─► PPS_CLEAN(3V3) ─┬─► [Rs 33100Ω] ─► CM5 pin 18 (SYNC, 3V3, cfg input)
                                                                       ├─► J_PPS1 (UWB tap, 3V3)
                                                                       └─► J_PPS2 (scope tap, 3V3)
Net From To Level
GPS_PPS_RAW J_GPS.1 TVS → Schmitt in 3.3 V
PPS_CLEAN Schmitt out fan-out (3 loads) 3.3 V
PPS_SYNC via Rs CM5 pin 18 (SYNC) 3.3 V
NMEA_TX CM5 GPIO4 (UART2 TX, pin 7) J_GPS.RX 3.3 V
NMEA_RX CM5 GPIO5 (UART2 RX, pin 29) J_GPS.TX 3.3 V

Corrected detail: CM5 SYNC (pin 18) is 3.3 V — no level translation. The Schmitt squares the off-board GPS edge and the series Rs guards against a driver fight (pin 18 is bidirectional; board always configures it as input). PPS_CLEAN feeds all three loads at 3.3 V. NMEA moved to UART2 (GPIO4/5) so the debug console keeps UART0 (GPIO14/15) — see correction C2 in CM5_Carrier_PinMap.md.

J_GPS (5-pin) pinout

Pin Net
1 PPS (in, 3V3)
2 NMEA_RX ← GPS TX (CM5 GPIO5 / UART2 RX, pin 29)
3 NMEA_TX → GPS RX (CM5 GPIO4 / UART2 TX, pin 7)
4 +3V3_AUX (out, to power module)
5 GND

J_PPS1 / J_PPS2 (2-pin each)

Pin Net
1 PPS_CLEAN (3V3)
2 GND

7. Power tree — nets

J_PWR (15V) ─► D_REV(ideal-diode FET) ─► VIN_PROT ─► [TVS]
VIN_PROT ─► U_BUCK5 (15→5V, 5A) ─► +5V ─┬─► CM5 +5V (J1 5V input pins)
                                        └─► USB VBUS switch ─► USB-A ×2
VIN_PROT ─► U_BUCK33R (15→3.3V, 4A) ─► +3V3_RF  ─► E-key (AW7915)            [direct, noise-isolated]
VIN_PROT ─► U_BUCK33A (15→3.3V, 1A) ─► +3V3_AUX ─┬─► GPS module
                                                 ├─► PPS Schmitt buffer (3V3)
                                                 ├─► IO pull-ups
                                                 └─► RTC domain
Rail Source Current Load
VIN_PROT 15 V via ideal-diode board total buck inputs
+5V U_BUCK5 ≥5 A CM5, USB VBUS, fan
+3V3_RF U_BUCK33R (direct 15→3.3) 4 A AW7915 (33.5 A) — isolated RF rail
+3V3_AUX U_BUCK33A (direct 15→3.3) ~1 A GPS, PPS buffer, IO, RTC — quiet rail
+VRTC CR2032 / +3V3_AUX ORing µA CM5 RTC domain

All three bucks see 15 V → rate ≥20 V. The 15→3.3 stages run ~22% duty; pick low-duty-capable controllers.

CM5 +5 V input lands on the DF40 +5V (input) pins (per 40-pin ref: pins 77/79/81/83 are +5V on the HAT; the module 5 V input is on the DF40 power pins — pull exact pins from KiCad).


8. Ethernet — nets (no external PHY)

CM5 BCM54210PE PHY pins (from DF40) → magjack. Per CM5 datasheet, a 1:1 magjack + ESD is all that's required.

CM5 net Magjack Notes
ETH_PAIR0_P/N TX+/ (or MDI0) 100 Ω diff
ETH_PAIR1_P/N MDI1
ETH_PAIR2_P/N MDI2
ETH_PAIR3_P/N MDI3 gigabit uses all 4
ETH_nLED1/2/3 jack LEDs (3V3) activity/link
Bob-Smith term + ESD cable side TVS array, 75 Ω + 1 nF terms

PoE pins of the magjack: leave unloaded / NC (no PoE in this design).


9. RTC

Net Part Notes
RTC_SDA/SCL CM5 I2C (dedicated RTC I2C on CM5) CM5 has internal RTC; carrier provides battery backup
+VRTC CR2032 via BT1 back-up to CM5 RTC battery pin

CM5 has an on-module RTC; the carrier mainly provides the CR2032 backup cell to the CM5 RTC battery input (per CM5IO reference). If an external I²C RTC is also wanted (redundancy), add e.g. PCF85063A on a GPIO I²C — optional, default is just the coin cell to CM5.


10. Bill of Materials (per board) — candidate MPNs

# RefDes Qty Description Candidate MPN ~$
1 J1,J2MOD 2 100-pin DF40 0.4 mm receptacle Hirose DF40C-100DS-0.4V(51) 1218
2 U_BUCK5 1 Sync buck 15→5 V, ≥5 A (≥20 V Vin) TI TPS54560 / MPS MP2316 1.53
3 U_BUCK33R 1 Sync buck 15→3.3 V, 4 A (RF rail, ≥20 V Vin, low-duty) TI TPS54424 / MPS MP2143 12
3b U_BUCK33A 1 Sync buck 15→3.3 V, 1 A (AUX/quiet rail, ≥20 V Vin) TI TPS54202 / MPS MP2459 0.51.2
4 D_REV 1 Ideal-diode/reverse-polarity ctrl + FET TI LM74700-Q1 + CSD18xx FET 1.22.5
5 TVS_IN 1 TVS, >15 V standoff (e.g. 18 V) SMBJ18A 0.2
6 J_ETH 1 RJ45 1:1 GbE magjack Pulse JXD0-0001NL / Bel V890-1AX 24
7 ESD_ETH 1 Ethernet ESD array TI TPD4E1U06 / Bourns 0.30.6
8 J_E 1 M.2 E-key (A+E) 2230 conn + standoff Amphenol/Attend 119A-92A00 1.22
9 C_PCIE 4 PCIe RX AC-couple 0.1 µF GRM 0402 100 nF 0.05
10 J_USB1/2 2 USB-A USB3.0 right-angle Amphenol UE27AC54100 0.81.4 ea
11 J_UPROG 1 USB-C 16-pin (USB2 + CC) GCT USB4085 0.51
12 ESD_USB 3 USB ESD array ST USBLC6-2SC6 0.15 ea
13 U_VBUS 1 USB VBUS current-limit switch TI TPS2552 / AP22653 0.51
14 U_SCHMITT 1 Single Schmitt buffer 3V3 TI SN74LVC1G17 0.1
15 U_LVLSHIFT 0 REMOVED — SYNC is 3.3 V, no translation needed (correction C1). Replace with one 0402 series R (in passives).
16 TVS_PPS 1 Low-cap TVS on PPS in ESD9B / PESD 0.1
17 J_GPS 1 5-pin 2.54 header generic 0.1
18 J_PPS1/2 2 2-pin 2.54 header generic 0.05 ea
19 J_GPIO 1 40-pin 2.54 dual header generic 0.50.8
20 J2 1 14-pin 2.54 header generic 0.2
21 J_UART 1 3-pin 2.54 header generic 0.05
22 BT1 1 CR2032 holder + cell Keystone 1058 + cell 0.40.8
23 J_PWR 1 15 V barrel jack or 2-pin CUI PJ-102AH 0.40.8
24 J_FAN 1 4-pin JST-SH PWM fan → CM5 FAN_PWM (pin 19) + FAN_TACHO (pin 16) JST SM04B-SRSS 0.3
25 ~60 Passives (R/C/L), LEDs, TP, jumpers 0402/0603 24
Per-board BOM total ~2847

DF40 pair (line 1) = ~4560% of BOM. Everything else commodity.


11. Net list summary (by interface)

Interface Nets Endpoints
Power in J_PWR, VIN_PROT, +5V, +3V3_RF, +3V3_AUX, +VRTC J_PWR → D_REV → 3 bucks → CM5/E-key/IO
PCIe (E-key) PCIE_TX_P/N, PCIE_RX_P/N, REFCLK_P/N, PERST#, CLKREQ#, W_DISABLE# CM5 ↔ J_E
Ethernet ETH_PAIR0-3_P/N, ETH_nLED1-3 CM5 PHY ↔ J_ETH
USB3 #1 USB3_0 SS±, USB2 D± CM5 ↔ J_USB1
USB3 #2 USB3_1 SS±, USB2 D± CM5 ↔ J_USB2
USB2 prog USB2_0 D±, CC1/CC2 CM5 ↔ J_UPROG
PPS/timing GPS_PPS_RAW, PPS_CLEAN, PPS_SYNC_18 J_GPS → buffer → CM5 SYNC + J_PPS1/2
NMEA UART NMEA_TX, NMEA_RX J_GPIO(14/15) ↔ J_GPS
Debug UART DBG_TX, DBG_RX CM5 debug UART ↔ J_UART
GPIO GPIO0-27 CM5 ↔ J_GPIO
Boot/ctrl nRPIBOOT, EEPROM_nWP, PMIC_EN, BUTTON CM5 ↔ J2
RTC +VRTC, RTC_SDA/SCL BT1 → CM5

12. Schematic-capture checklist

  1. Import CM5 KiCad symbol from refs/CM5IO.kicad_sym — pin map is now resolved in CM5_Carrier_PinMap.md (all 200 pins).
  2. SYNC (pin 18) is 3.3 V — drive directly from the Schmitt via a series R; no level translator (corrected).
  3. AC-couple PCIe RX on carrier (TX coupled on CM5).
  4. CC 5.1 kΩ pulldowns on USB-C; nRPIBOOT jumper logic.
  5. Magjack PoE pins NC; Bob-Smith + ESD on cable side.
  6. Both 15→3.3 buck inductors/thermals sized for their rails (RF 4 A, AUX 1 A); all bucks rated ≥20 V Vin, low-duty-capable.
  7. VBUS current-limit per USB-A port.
  8. Confirm CM5 5 V input pin group and decoupling per datasheet.