FUSB302
The FUSB302 is a USB Type-C and USB Power Delivery (USB PD) protocol controller manufactured by Fairchild Semiconductor (now ON Semiconductor). On Apple logic boards, it functions as the policy engine for USB-C port negotiation, power role detection, and USB PD communication. This IC is critical for safe charging, data negotiation, and power delivery handshakes. Failure of the FUSB302 typically manifests as a USB-C port that no longer negotiates power, refuses to charge, or cannot communicate at full USB 3 speeds. Technicians must understand its I²C communication with the SMC (T2), voltage regulation requirements, and the relationship between its GPIO outputs and downstream power rails.
Role on the Board
The FUSB302 is the primary USB Type-C protocol controller responsible for detecting plug orientation, negotiating USB PD contracts, and managing power role switching. It continuously monitors the CC (Configuration Channel) pins of the USB-C connector, decodes USB PD messages from the power source or partner device, and communicates negotiation results to the system via I²C to the SMC (T2). The IC remains active in S0 (Active) and S5 (Soft Off) power states; it has a low-power standby mode for G3 (Mechanical Off). The FUSB302 drives GPIO outputs that gate power delivery to downstream regulators, controls VBUS discharge, and signals attach/detach events. Its operation is fundamental to the USB-C subsystem; if it fails, the port becomes unusable for charging and data simultaneously.
Key Signals & Pins
| Pin/Net | Direction | Description | Typical Value |
|---|---|---|---|
CC1, CC2 |
Analog In | Configuration Channel sense inputs; detect plug orientation and USB PD communication. Terminated to GND via ~5.1kΩ on device side, pulled to 3.3V through 680kΩ source-side resistors. | 0.2–3.3V (variable during negotiation) |
VBUS |
Power In | USB PD supply input to FUSB302 core. Must be within 4.0–28V range; typically connected to external PPBUS_G3H via Schottky diode. | 5.0–20.0V (depends on USB PD contract) |
VCCIO |
Power In | I/O supply rail for logic and communication. Must be decoupled locally and stable. | 3.3V ±5% |
SDA, SCL |
Bidirectional | I²C bus lines to SMC for policy and status reporting. Pulled to VCCIO via ~4.7kΩ resistors. | 0V (driven low) or 3.3V (idle, pulled high) |
INT_N |
Open-Drain Out | Active-low interrupt signal to SMC when status changes occur (attachment, power negotiation, fault). Pulled to VCCIO via resistor. | 3.3V (idle) or 0V (asserted) |
GPIO1, GPIO2 |
Output (configurable) | General-purpose outputs, typically configured to gate VBUS discharge, enable power delivery, or signal attachment state to power subsystem regulators. | 0V or 3.3V (depending on USB PD state) |
GND |
Power Return | Ground plane connection; must have multiple vias for low impedance. | 0V (reference) |
MUTE |
Input | Mute control pin; pulled to VCCIO. When driven low, disables transmit on CC lines (used during VBUS discharge or soft reset). | 3.3V (normal) or 0V (mute asserted) |
Measurement Reference
| Test Point / Net | Expected (Meter) | Expected (Scope) | Notes |
|---|---|---|---|
VCCIO |
3.28–3.36V DC | <50mV ripple @ 1MHz | This supply rails the FUSB302 digital core and I/O drivers. Sag or ripple indicates failing local decoupling caps (typically 10µF + 100nF ceramics). Check for cracked solder joints on pins 1, 5. |
VBUS (IC pin) |
5.0–20.0V DC (depends on negotiated USB PD contract) | <100mV ripple @ 100kHz, steady-state rise/fall <1ms during attach | Verify path from external 5V rail through series Schottky diode and 100nF cap. If VBUS is 0V, the IC cannot negotiate; check diode forward bias with DMM in diode mode. |
CC1 or CC2 (not plugged in) |
3.28–3.36V DC (pulled high via source-side 680kΩ) | DC line, <10mV noise floor | Floating or low CC lines indicate shorted pull-down resistors or a plugged connector. With nothing connected, should float to VCCIO. If always low, check 5.1kΩ sink resistors and PCB continuity. |
SDA / SCL (idle, no transaction) |
3.28–3.36V DC (pulled high) | Clean rise/fall <1µs, no glitches | I²C bus health check. If either line is permanently low, suspect a stuck slave or short. Verify pullup resistor presence (~4.7kΩ) and SMC responsiveness. Scope should show clean digital transitions during read/write cycles. |
INT_N (idle, no attachment) |
3.28–3.36V DC (pulled high) | Pulses low for ~1–10ms when status changes (attach/detach, negotiation complete) | If INT_N never goes low during attachment, the FUSB302 may not be detecting the plug or may have a failed GPIO driver. Verify pullup resistor (~10kΩ typical) and SMC firmware handling. Use SMC UART or SMBus debug to confirm INT_N is being toggled. |
GPIO1 or GPIO2 (with USB-C attached, after negotiation) |
3.3V (when power delivery is enabled) or 0V (disabled/unattached) | Digital output, clean transitions <1µs rise/fall | GPIO state should track the attach state and USB PD negotiation result. If GPIO remains low after a 20W+ adapter is plugged in, check the FUSB302 firmware configuration via SMBus and verify SMC is not commanding a soft reset. A permanently-high GPIO may indicate a stuck driver output or short to VCCIO. |
Common Failure Modes
- No USB-C Charging or Negotiation
Symptom: USB-C port shows no charge, device will not recognize USB PD adapter.
Likely Cause: FUSB302 VBUS rail is missing (diode short/open, cap failure), or the IC has lost I²C communication with SMC (T2). CC line termination resistors may be shorted or open.
Diagnostic Step: MeasureVCCIOandVBUSpins with a DMM. Check for 3.3V on VCCIO and 5–20V on VBUS pin when AC adapter is plugged in. Verify CC1/CC2 voltages float near 3.3V when nothing is connected. Use DMM diode mode on the Schottky diode feeding VBUS to confirm forward bias (~0.3–0.4V drop). Scope the I2C lines during attach to confirm SMC is polling the FUSB302. - Port Detects Attachment but Will Not Charge Beyond 5W
Symptom: USB-C port recognizes adapters but limits power to 5W; computer reports "charging slowly" or refuses to charge.
Likely Cause: USB PD negotiation is failing or stalled. FUSB302 may be negotiating only the default 5V/1A contract due to CC line noise, TX timeout, or RX corruption. Firmware bug in FUSB302 FW or SMC policy may prevent higher-power contracts.
Diagnostic Step: Use a USB PD analyzer or app to log the negotiation sequence. Measure CC1 and CC2 with a scope during attachment to ensure they settle cleanly to the correct termination voltage (~0.8V for 20V capability). Check SMC logs via UART or SMBus to confirm FUSB302 is reporting the power source capability correctly. If USB PD messages are being dropped, measureVBUSripple; excessive noise may cause RX corruption. - Phantom Attachment/Detachment Events
Symptom: USB-C port repeatedly connects and disconnects; charging stops and starts randomly.
Likely Cause: CC line instability caused by EMI, cracked solder joints on the FUSB302 BGA, or water damage to CC termination resistors. GPIO outputs toggling excessively can also trigger this.
Diagnostic Step: Scope the CC1 and CC2 lines for ringing, overshoot, or sub-threshold noise during idle (no plug). Verify the ~5.1kΩ termination resistors on the device side are soldered and not cracked. If theINT_Nline is oscillating, inspect the FUSB302 for thermal stress or cracked balls. Try a known-good USB-C cable and adapter; cable faults can introduce noise. If the issue persists, consider reballing the FUSB302 BGA. - FUSB302 Not Responding to I²C Commands
Symptom: SMC cannot read device ID or status registers;INT_Ndoes not toggle on attach.
Likely Cause: I²C address bus is misaligned, SDA/SCL lines are shorted, or the FUSB302 is in a hung state (common after a power rail glitch). VCCIO may be too low.
Diagnostic Step: VerifyVCCIOis exactly 3.3V. Use an I2C bus scanner or SMC debug command to enumerate devices on the bus; the FUSB302 typically resides at address0x54or0x22(check the schematic). Measure SDA and SCL with a DMM; both should be at ~3.3V when idle (pulled high). Scope the bus during SMC read attempts; look for I2C START conditions and ACK bits. If the bus is stuck, try a hard power cycle (unplug AC, remove battery for 30s, hold power button for 10s) to allow FUSB302 to reset. If the bus remains stuck, the FUSB302 may need reballing. - VBUS Discharge Failure (Port Remains "Hot" After Unplug)
Symptom: USB-C port retains VBUS voltage (5–20V) for several seconds after adapter is unplugged; dangerous for user and downstream components.
Likely Cause: FUSB302 GPIO configured for VBUS discharge is stuck high or not being driven by firmware. FET gate driver is shorted or the discharge FET itself has failed.
Diagnostic Step: Unplug a USB-C adapter and immediately measure VBUS with a DMM. It should drop to <100mV within 1 second. If VBUS lingers above 1V, measure the GPIO pin driving the discharge FET; it should go low upon unplug. Check SMC firmware logs to confirm a detach event was recognized. Measure the gate voltage of the downstream discharge FET and verify the FET is not shorted (gate-source leakage in diode mode). If the FET passes diode mode but VBUS still stays high, the FET body diode may be conducting; this is a critical safety hazard. - Intermittent Data Errors on USB 3 Lanes During Charging
Symptom: Device operates normally with USB 2-only cables, but USB 3 data corrupts when a power adapter is also plugged into the same port. Manifests as file transfer errors, dropped USB connections.
Likely Cause: EMI from VBUS and charging circuitry coupling into the FUSB302 CC line amplifiers. Inadequate decoupling on VCCIO or VBUS rails causes noise that corrupts USB PD RX logic.
Diagnostic Step: ScopeVBUSandVCCIOsimultaneously during a USB 3 data transfer with power delivery active. Look for >100mV ripple or fast-edge transients that coincide with bit errors in USB logs. Verify local 100nF caps on VCCIO and VBUS pins are present and soldered. Check the USB 3 TX/RX differential pairs for routing near FUSB302 CC lines (should be guarded by a ground plane). Measure CC1/CC2 noise floor on a scope with 50mV/div; if noise >50mV peak-to-peak, move the termination resistors closer to the connector or add small RC filters (100Ω + 10nF) on the CC sense path.
Boards Using This IC
- 820-00165 (MacBook Pro 15-inch, 2019)
- 820-00239 (MacBook Pro 16-inch, 2019)
Diagnostic Workflow
- Verify Power Supplies
MeasureVCCIOandVBUSpins with a DMM. VCCIO must be 3.28–3.36V; VBUS should be 5–20V when AC adapter is connected, or 0V if disconnected. If either is out of range, troubleshoot the upstream power rails and decoupling capacitors before proceeding. - Check I²C Bus Health
Measure SDA and SCL voltages. Both must be at ~3.3V when idle (pulled high via resistors). Use an I²C bus analyzer or SMC SMBus command to read the FUSB302 device ID (should return 0x80 or similar). If the bus is stuck low, check for a shorted slave or failed pull-up resistor. - Monitor CC Lines During Attachment
With nothing plugged in, scope CC1 and CC2; they should be near 3.3V. Plug in a USB-C connector and observe the CC voltage drop to ~0.8V (indicating 20V capable source) or ~0.4V (indicating 3A current at 5V). The voltage should stabilize within 100ms. Measure both lines; whichever is lower indicates the plug orientation. - Check
INT_NToggling
Scope theINT_Nline (open-drain output) during attachment and detachment. It should pulse low for 1–10ms each time a status change occurs (attach, detach, negotiation complete). If INT_N does not toggle, the FUSB302 is not detecting events; verify the pullup resistor is present and check ifINT_Nis stuck low (possible short or failed driver). - Verify GPIO Output State
Measure the GPIO pins (typically GPIO1 and GPIO2) before and after USB-C attachment. With a USB PD adapter plugged in and negotiation complete, GPIO should transition to 3.3V (high) to enable downstream power delivery. If GPIO remains low, read the FUSB302 status registers via I²C to confirm the IC detected the attachment and successfully negotiated a contract. - Scope VBUS Discharge Behavior
Plug in a USB-C adapter, wait for negotiation to complete, then unplug it. Measure VBUS with a scope set to AC coupling to see the discharge transient. VBUS should fall below 0.5V within 500ms. If discharge is slow or incomplete, check the discharge FET gate drive and FET continuity. - Inspect for Physical Damage
Using a microscope, examine the FUSB302 BGA for cracked solder balls, corrosion, or thermal stress marks. Check nearby capacitors and resistors (especially the CC termination resistors and VCCIO decoupling caps) for cracked solder or lifted leads. If damage is visible, prepare for reballing or component replacement. - Verify SMC Firmware Interaction
Confirm the SMC (T2) is detecting USB-C attachment and power state changes. Use SMC debug commands or UART logs to verify it is polling the FUSB302 and receiving status updates. If the SMC is not communicating with the FUSB302, the I²C bus may be hung or the FUSB302 firmware may need a forced update.
See Also
- SMC (T2) — I²C master that polls FUSB302 status and enforces USB PD policy
- CD3215 — Buck-boost regulator often used downstream of FUSB302 GPIO outputs for adaptive voltage delivery
- CD3217 — Alternative buck-boost IC in similar role
- PI3USB31532 — USB 3.1 redriver IC that shares USB-C connector with FUSB302; EMI from FUSB302 can corrupt USB 3 data
- I²C — Communication protocol between FUSB302 and SMC
- PPBUS_G3H — Primary VBUS rail that supplies the FUSB302
- S0 (Active) — Power state in which FUSB302 continuously monitors CC lines
- S5 (Soft Off) — Power state in which FUSB302 remains active for charging detection
- BGA — Soldering technology used for FUSB302 packaging
- Reballing — Repair technique for cracked or lifted BGA solder balls
- Short Circuit — Common failure mode affecting VBUS or decoupling rails
Last updated: 2026-04-19 · Browse all components