zudo-PD
GitHub repository

Type to search...

to open search from anywhere

PCBA v2 Debug Report — STUSB4500 CC1DB Failure

Debug analysis of the second PCBA prototype (v2) for the USB-PD modular synthesizer power supply. The STUSB4500 was successfully programmed via NVM, but the chip's CC1DB pin is internally shorted to GND on every assembled board, preventing USB-C source detection and blocking PD negotiation entirely. This page documents the failure mode, diagnostic sequence, root cause analysis, and the v3 design fix.

Symptoms

After PCBA v2 was assembled by JLCPCB and the STUSB4500 NVM was successfully programmed:

ObservationDetail
Charger plugged in0V on USB-C VBUS pin at the connector itself
STUSB4500 detected on I2C✅ Yes — chip responds at address 0x28, NVM read/write works
NVM written with target PDOs✅ Yes — SNK_PDO_NUMB = 2, PDO2 = 15V/3A confirmed via read-back
GUI "Dashboard" tab"No device attached" — chip sees nothing on its CC pins
Multimeter at D4 (ESD diode)CC1 net = 0 Ω to GND (shorted), CC2 net = 5.1 kΩ to GND (correct)
Both PCBAs (2 boards from same JLCPCB order)Identical fault

Root Cause

The STUSB4500's CC1DB pin (pin 1) is internally shorted to GND.

CC1DB provides "dead battery mode" termination — a passive 5.1 kΩ Rd pulldown that the USB-C source detects in order to apply VBUS. Since CC1DB is internally shorted to 0 Ω instead of presenting 5.1 kΩ Rd, the source sees an invalid CC termination and refuses to enable VBUS.

The v2 schematic correctly ties CC1DB → CC1 net (the standard ST-recommended dead-battery wiring). With the chip's internal short, this wiring drags the entire CC1 net to GND.

Diagnostic Sequence That Isolated the Fault

Step 1: GUI Dashboard ruled out NVM and software

The STSW-STUSB002 GUI's Dashboard tab showed "No device attached" even with a USB-C cable plugged into a working PD charger. NVM-level settings cannot influence the chip's hardware CC detection — this proved the issue was at the physical CC pin level, not software.

Step 2: Multimeter measurements at D4 (USBLC6-2SC6)

D4 sits between the USB-C connector and the STUSB4500 on both CC lines. With board unpowered:

ProbeReadingConclusion
D4 pin 1 (J1-CC1 side) to GND0 ΩCC1 net shorted to GND
D4 pin 6 (U1-CC1 side) to GND0 ΩConfirms short propagates through diode (D4 passes signal correctly)
D4 pin 3 (J1-CC2 side) to GND5.1 kΩCC2 net correctly terminated
D4 pin 4 (U1-CC2 side) to GND5.1 kΩCC2 chip-internal Rd works
D4 pin 1 to D4 pin 6 (across diode)0 ΩDiode passes signal — D4 is healthy

The asymmetry (CC1 shorted, CC2 fine) ruled out a generic short and pointed to a chip-side issue at pin 1 (CC1DB).

Step 3: Hot-air removal of U1 isolated the source

To definitively localize the short to the chip or the PCB:

  1. Applied flux + hot air to U1 (STUSB4500), removed the chip

  2. With chip off, measured pad 1 (CC1DB position on the empty footprint) to GND: OPEN circuit

  3. PCB pads were visually clean — no solder bridges remained under the chip area

Conclusion: the chip was the source of the short. The PCB itself has no design or assembly defect on the CC1 net.

Step 4: Both PCBAs show identical fault

Two boards from the same JLCPCB order exhibited the exact same CC1DB short with the exact same chip placement orientation. This rules out:

  • ❌ Random ESD damage (would affect chips randomly)

  • ❌ Single-chip manufacturing defect

  • ❌ Initial 20V overvoltage during testing (the second board was always programmed with a 5V-only charger first — confirmed by sequence of operations)

What We Ruled Out Through Investigation

HypothesisStatusHow
Wrong USB-C cableRuled outMultiple cables tested
Wrong chargerRuled outMultiple chargers (all with 15V/3A support) tested
Chip damaged from initial 20V exposureRuled outSecond PCBA never saw 20V — same fault
Schematic errorRuled outWiring matches SparkFun reference + ST datasheet typical app
USB-C connector footprint wrongRuled out6-pin SMD USB-C correctly maps B5 to CC2 internally
D4 (USBLC6) ESD diode deadRuled out0 Ω across pin 1↔6 confirms diode passes
CC1 trace touching GND on PCBRuled outDRC clean on all layers; net visually clean in KiCad layout
STUSB4500 chip rotation wrongRuled outI2C works on pins 7/8 → pin numbering is mapped correctly
NVM corruptionRuled outNVM read/write works; Dashboard says "No device attached" which is hardware-level
Footprint pad mapping wrong in PCBRuled outPCB net assignments confirmed (pin 1 → Net-(U1-CC1), pin 6 → GND, etc.)
Counterfeit chipLikely but unconfirmedBoth chips from same LCSC batch (C2678061)

Why v2 Design Is Vulnerable

The v2 schematic ties CC1DB ↔ CC1 and CC2DB ↔ CC2 — the standard ST-recommended dead-battery mode wiring used by:

  • SparkFun Power Delivery Board (schematic)

  • ST STEVAL-ISC005V1 evaluation board

  • STUSB4500 datasheet "typical application" (Figure 10)

This design relies entirely on the chip's internal Rd for CC termination. There's no external fallback. If any chip ships with internally-damaged CC1DB or CC2DB pins, the entire board is bricked with no rework option short of chip replacement.

ST Datasheet Reference

Per the STUSB4500 datasheet (DS12499 Rev 5), pin description for CC1DB / CC2DB (page 4, Table 1):

Pin 1 CC1DB: "Dead battery enable on CC1 pin" — Typical connection: "To CC1 pin if used or ground"

Pin 5 CC2DB: "Dead battery enable on CC2 pin" — Typical connection: "To CC2 pin if used or ground"

And from §2.2.2 (page 5):

"CC1DB and CC2DB are used for dead battery mode. This mode is enabled by connecting CC1DB and CC2DB respectively to CC1 and CC2. Thanks to this connection, the pull-down terminations on the CC pins are present by default even if the device is not supplied."

⚠️ Warning: "CC1DB and CC2DB must be connected to ground when dead battery mode is not supported."

Both wiring options — "to CC1/CC2" (dead-battery) and "to ground" (no dead-battery) — are explicitly ST-supported. The v3 fix uses the second option.

v3 Design Fix

Topology change

v2 (vulnerable):                          v3 (robust):

USB-C CC1 ─┬─ D4 ─ STUSB4500 pin 2 (CC1)  USB-C CC1 ─┬─ D4 ─ STUSB4500 pin 2 (CC1)
           │                                          │
           └─────── STUSB4500 pin 1 (CC1DB)           R_CC1 (5.1 kΩ)   ← NEW
                                                      │
                                                     GND

                                          STUSB4500 pin 1 (CC1DB) ─── GND   ← CHANGED

(symmetric for CC2)                       (symmetric for CC2)

Schematic changes

ChangeDetail
Add R_CC1 = 5.1 kΩ (0603, 1%)From CC1 net (USB-C connector side) to GND
Add R_CC2 = 5.1 kΩ (0603, 1%)From CC2 net (USB-C connector side) to GND
Disconnect U1 pin 1 (CC1DB) from CC1 netTie pin 1 directly to GND
Disconnect U1 pin 5 (CC2DB) from CC2 netTie pin 5 directly to GND

Why 5.1 kΩ (and not 10 kΩ)?

5.1 kΩ is the USB-C spec Rd value (±20%, valid range 4.08–6.12 kΩ). Every USB-C sink uses this.

An earlier draft of this fix proposed 10 kΩ as a hedge in case a future chip batch ships with working internal Rd (so external + internal in parallel wouldn't drop too far below spec). That reasoning was rejected:

ScenarioEffective RdUSB-C spec window: 4.08–6.12 kΩ
Broken chip (current batch, CC1DB → GND, internal Rd dead) + ext 5.1 kΩ5.1 kΩ✅ In spec
Broken chip + ext 10 kΩ10 kΩ⚠️ Above spec — marginal on strict sources
Good chip (hypothetical, internal Rd works) + ext 5.1 kΩ2.55 kΩ❌ Below spec
Good chip + ext 10 kΩ3.4 kΩ❌ Below spec

10 kΩ is out of spec in every scenario. 5.1 kΩ is in spec for our actual reality (broken chips, external Rd carries the load alone).

The "good chip" parallel-resistance failure mode is not solved by picking a compromise external value — the proper fix is to remove the external Rd entirely (board respin, or a populate/DNP jumper) once you know the chip's internal Rd is healthy. So for v3 we use the spec value and don't try to compromise across two failure scenarios.

Sensitivity on 3 A USB-C sources: sources advertising 3 A use Rp = 22 kΩ (tightest detection). The CC line voltage with Rp pull-up:

  • 5.1 kΩ Rd → 5 V × 5.1 / (5.1 + 22) ≈ 0.94 V — comfortably below the ~1.7 V "sink connected" threshold

  • 10 kΩ Rd → 5 V × 10 / (10 + 22) ≈ 1.56 V — borderline; some compliant sources will fail to detect

Why disconnect CC1DB / CC2DB from CC1 / CC2?

This is the critical change. If CC1DB stays on the CC1 net (v2 wiring), then a chip with internally-shorted CC1DB still drags the entire CC1 net to 0 Ω, and the external 5.1 kΩ is overpowered (a 0 Ω short wins against any finite resistor). The fault persists.

By routing CC1DB and CC2DB to GND directly:

  • The broken pin's internal short is isolated to the GND net (harmless)

  • The CC1 / CC2 nets see only the external R_CC1 / R_CC2 and the chip's main CC pins (pin 2, pin 4) for termination

What we give up: Dead-battery mode

In v3, the chip cannot present passive Rd before being powered. The chicken-and-egg is solved by the external R_CC1 / R_CC2 — these are always present and always provide valid Rd, so the source detects the sink, applies 5V VBUS, which powers the chip via VDD, which then takes over CC handling actively.

Dead-battery mode is only needed when the chip is being powered from a separate depleted battery and needs to advertise itself before that battery recovers. For VBUS-only powered designs like zudo-pd, dead-battery mode provides no benefit and creates the single-point-of-failure we hit.

The current QFN-24 footprint defines pad 25 (the EPAD) with a single solid 2.8 × 2.8 mm F.Paste aperture. Standard QFN best practice is to window the EPAD paste into a grid of smaller apertures (e.g., 4×4 sub-squares of ~0.5 × 0.5 mm each, ~50-60% area coverage). This:

  • Controls solder paste volume on the EPAD

  • Prevents excess solder from squeezing out at the EPAD corners during reflow

  • Reduces risk of solder bridging to corner pins (CC1DB is at one corner, RESET at the opposite corner)

  • Is JLCPCB-recommended for thermal pad SMT assembly

The current EPAD has 16 GND vias in a 4×4 grid. Standard QFN recommendation is 4–9 vias for thermal/electrical GND connection. Excessive vias can wick solder away from the joint during reflow, contributing to solder migration and uneven joint quality.

Recommendation: Reduce to a 3×3 grid (9 vias) or 5 vias (4 corners + center). Use solder-mask plug on via-in-pad to prevent paste loss.

Place R_CC1 and R_CC2 physically close to the USB-C connector, before D4. This ensures the source's first measurement (at first cable plug) sees the external Rd directly, even if D4 or downstream traces have issues.

v3 Schematic Fix Checklist

  • [x] Add R17 = R_CC1 (5.1 kΩ, 0603, 1%, C23186) from USB-C CC1 to GND

  • [x] Add R18 = R_CC2 (5.1 kΩ, 0603, 1%, C23186) from USB-C CC2 to GND

  • [x] Disconnect U1 pin 1 (CC1DB) from CC1 net; tie to GND via R19 (0 Ω, 0603, C21189) — uses a 0 Ω jumper instead of a direct GND tie so the chip-side net keeps the name CC1DB. That preserves a uniquely-named test point on the J3 pogo block (pin 1) for verifying chip-pin continuity, and lets us lift R19 for chip-isolation measurement during future debug

  • [x] Disconnect U1 pin 5 (CC2DB) from CC2 net; tie to GND via R20 (0 Ω, 0603, C21189) — same rationale, J3 pogo pin 2

  • [ ] Update QFN-24 footprint: window the EPAD F.Paste into a 4×4 grid of 0.5 mm² apertures

  • [ ] Update QFN-24 footprint: reduce EPAD GND vias from 16 to 9 (or 5)

  • [ ] Add via tenting / mask-plug on EPAD via-in-pad

  • [ ] Run DRC and ERC

  • [ ] Bench test on first v3 board: cold-plug a USB-C source, confirm VBUS appears (proves external Rd bootstrap works)

Reference Designs Compared

DesignCC1DB wiringExternal Rd on CCNotes
zudo-pd v2 (current)CC1DB ↔ CC1 (dead-battery)None❌ Fails when chip ships with CC1DB internally shorted
SparkFun Power Delivery BoardCC1DB ↔ CC1 (dead-battery)NoneStandard ST design; works when chips are good
ST STEVAL-ISC005V1CC1DB ↔ CC1 (dead-battery)NoneST's own eval design; works with controlled chip sourcing
STUSB4500 datasheet Fig. 10CC1DB ↔ CC1 (dead-battery)None"Typical application" — same vulnerability
Instructables DIY HotplateCC1DB ↔ CC1 (dead-battery)R3 = 10 kΩ on CC1 onlyConfirmed working JLCPCB build; asymmetric ext Rd
zudo-pd v3CC1DB → GND via R19 (0 Ω), CC2DB → GND via R20 (0 Ω)5.1 kΩ on both CC1 and CC2 (R17/R18)Defensive against chip-side failures; USB-C spec Rd value; symmetric. 0 Ω jumper preserves named CC1DB/CC2DB nets for J3 pogo testing and chip-isolation rework

References

Revision History

Takeshi TakatsudoCreated: 2026-05-17T11:56:17+09:00Updated: 2026-06-14T17:57:27+09:00