CD3217 ACE-ROM Power-On Sequence and USB-C Diagnosis

August 16, 2026

CD3217 / ACE2 USB-C and ACE-ROM power-on sequence

Last updated: 16 August 2026

This subpage explains how a CD3217 USB-C/ACE controller starts an Apple-silicon MacBook from a charger with the battery disconnected. The principal measured example is the 14-inch M1 Pro MacBook Pro A2442 logic board 820-02098.

The important correction: basic CC1/CC2 attach does not wait for the external ACE-ROM. Hardware dead-battery Rd must already be visible so the USB-C source will provide its initial 5V. The external ACE-ROM patch and configuration are then loaded before the controller reaches the normal Apple-configured application state and the later 20V USB-PD negotiation.

Return to the A2442 820-02098 M1 Pro master power-on sequence, or see our Apple-silicon logic-board repair case studies.

Table of Contents

CD3215, CD3217, ACE and SN25A12: use comparisons, not equals signs

Apple markings do not have public Apple or Texas Instruments cross-reference documents. Public TI datasheets are extremely useful for understanding the architecture, but they do not prove that an Apple-marked controller is electrically or firmware-identical to a retail TI part.

Apple marking or nameUseful public architecture referenceHow it should be described
CD3215 / CD3215CTPS65982 and earlier TPS6598x familyClosely related repair reference; do not state that the two part numbers are officially identical.
CD3217TPS65983B plus later TPS6598x boot conceptsApple-custom USB-C/PD controller used on boards including A2442/820-02098. TPS65983B is a useful functional reference, not a confirmed exact identity.
ACE / ACE2TPS65987D/TPS65988 architecture and boot reportsApple platform terminology. Public TI material helps explain LDO, boot ROM, SPI patch/config loading, CC/PD and managed power paths.
SN25A12 / ACE3No public one-to-one datasheetNewer Apple-custom generation seen on newer designs. Diagnose from the board schematic and measurements rather than assigning an unverified retail TI number.

Terminology used in this guide

The USB-C connector terms describe the standard Type-C interface. The PP-prefixed names are Apple logic-board net names. Keeping those two naming systems separate makes the power path much easier to follow.

USB-C attachment and power terms

TermPlain-language meaningWhy it matters during diagnosis
USB-C sourceThe device supplying power—normally the charger.It presents Rp on the CC pins and enables VBUS after detecting a valid sink.
USB-C sinkThe device receiving power—in this guide, the MacBook logic board.It presents Rd so the charger knows that a power-consuming device is attached.
CC1 / CC2The two Configuration Channel pins in a reversible USB-C connector. They are not a differential data pair.Cable orientation decides which CC pin becomes active. USB-PD BMC messages normally travel on that one active CC wire; the other may be unused or provide VCONN depending on the cable.
RpThe source-side pull-up resistance or current advertisement on CC1/CC2.The charger uses Rp to identify itself as a source and advertise default Type-C current capability.
RdThe sink-side pull-down resistance on CC1/CC2.The charger must detect Rd before it supplies the initial default VBUS.
Dead-battery RdA hardware-presented Rd that remains available while the MacBook and controller firmware are unpowered.It allows an empty-battery or battery-disconnected board to obtain the first 5V. Its presence does not prove that ACE-ROM loaded.
VBUSThe main USB-C power conductor at the connector.It normally begins near 5V and can later change to 9V, 15V or 20V after USB-PD negotiation. On this A2442 capture it changes from 5V to 20V.
BMCBiphase Mark Coding, the electrical encoding used for USB-PD packets on the active CC wire.Visible BMC bursts show that more than a static CC voltage is present, but the messages must still be decoded or compared with a known-good capture.
USB-PD contractThe agreed voltage/current relationship formed by messages such as Source Capabilities, Request, Accept and PS_RDY.The initial 5V attach is not the same checkpoint as the later negotiated 20V contract.
PDOPower Data Object: one voltage/current option offered by the charger.The MacBook selects an acceptable PDO when requesting the higher-voltage contract.
PS_RDY“Power Supply Ready,” a USB-PD message confirming that the source has completed the requested power change.It separates a completed high-voltage transition from a request that was sent but never fulfilled.

Controller, firmware and Apple board-net terms

TermMeaning on this A2442/820-02098 referenceDiagnostic interpretation
PPVBUS_USBC0The charger-side USB-C VBUS rail before the CD3217 managed power path.Approximately 5V here proves that the charger supplied default VBUS; it does not prove that power passed through CD3217.
LDOLow-dropout regulator. CD3217 uses its VBUS-powered internal LDO to create PP3V3_UPC0_LDO.The 3.3V LDO powers controller boot domains and the external ROM. LDO present does not prove a successful ROM read.
Internal boot ROM / mask ROMCode permanently built into the controller silicon that runs immediately after power-on reset.It initializes the controller, reads boot straps and starts the external patch/configuration loading process.
ACE-ROMThe external SPI flash containing Apple-specific patch code and configuration for the port controller.A valid supply and SPI transaction are required. Treat it as patch/configuration storage—not as the controller’s entire brain.
SPISerial Peripheral Interface using CLK, CS_L, MOSI and MISO; WP_L and HOLD_L also affect the flash.Clock and chip-select prove an attempted access; meaningful MISO data and correct downstream behaviour provide stronger evidence of a valid load.
FET / internal power pathThe controller-managed MOSFET path connecting connector-side VBUS to the system-side high-voltage input.It can pass the default 5V before the later 20V contract. Protection, configuration or hardware faults can keep it off.
PP_HVThe controller’s managed high-voltage system-side power-path node.It should follow the accepted VBUS condition when the path is enabled. Exact naming and placement vary by board.
PPDCIN_AONThe always-on adapter-input rail reaching the A2442 charger circuit after the USB-C controller/input path.About 5V proves the early managed path is conducting; about 20V later confirms successful high-voltage negotiation and delivery.
I2C_SMC_UPC_SDAThe data line used by the embedded SMC/SoC domain to communicate with the USB-C port controller.Its activity is a later system checkpoint and should not be expected merely because the controller LDO or SPI-ROM activity is present.

Does CC1/CC2 communication happen after ACE-ROM loading?

Correct answer: partly.

Passive dead-battery Rd, basic source detection and initial 5V VBUS happen before the external ACE-ROM patch/config is loaded. Normal Apple-configured USB-PD policy—including the meaningful BMC message exchange that later requests 20V—occurs after a valid configuration has been loaded and the controller reaches application mode.

A USB-C source does not simply apply VBUS before seeing a sink. It presents Rp on CC1/CC2, detects Rd on the connected CC wire, and then enables default 5V VBUS. TI documents hardware-configurable dead-battery Rd specifically so an unpowered sink can obtain this first 5V supply.

After VBUS powers the controller, its internal boot code runs and attempts to load the external patch/configuration. The external flash is therefore not literally the controller’s entire “brain”: TI’s comparable controllers contain internal boot and application ROM and use external flash for configuration and code patches. If the external image is missing or invalid, behaviour depends on the boot straps and safe/default configuration; PD may be disabled, the power path may remain off, or a limited safe power path may operate.

Sources: TI TPS65983B datasheet, TI TPS65987/88 boot-flow report, and TI TPS65987/88 hardware design guide.

CD3217/ACE2 power-on sequence overview

CD3217 ACE2 and ACE-ROM power-on sequence from passive USB-C CC attach to 20V USB-PD negotiation

CD3217/ACE2 power-on sequence measured on an A2442 board 820-02098, showing passive CC attach, internal LDO and boot ROM, external ACE-ROM read, 5V power-path enable, SMC communication and the later 20V USB-PD contract.

Stage 0 — Hardware dead-battery Rd before VBUS

With the board unpowered, the controller cannot first run firmware and then ask the charger for power. The port instead relies on a hardware dead-battery configuration that presents Rd on CC1 and CC2. When the charger presents Rp, one CC wire becomes the active orientation channel.

This is why seeing an appropriate CC idle voltage or receiving initial 5V does not prove that the ACE-ROM has been read. It proves that the source detected a sink-level attach condition.

Stage 1 — The charger applies default 5V VBUS

After detecting Rd, the charger enables approximately 5V at the connector. On A2442/820-02098, this is measured as PPVBUS_USBC0 before the CD3217 managed internal power path. There is no high-voltage PD contract at this point.

If there is no 5V at the connector, begin with the charger, cable, connector, CC path and dead-battery Rd configuration. ACE-ROM is not the first suspect because the controller has not yet received its VBUS-derived start-up power.

Stage 2 — VBUS powers the internal 3.3V LDO

The initial 5V powers the controller’s dead-battery supply. CD3217 creates PP3V3_UPC0_LDO at approximately 3.3V. This rail powers the controller boot domains and the external ACE-ROM device.

Diagnostic limit: PP3V3_UPC0_LDO proves that the first power conversion is working; it does not prove that the SPI flash contains valid data or that the controller successfully entered application mode.

Stage 3 — Internal boot ROM and boot-strap evaluation

A power-on reset releases the controller’s internal boot code. It initializes internal registers and clocks, reads the boot-strap condition, configures the SPI interface and decides where to look for a valid patch/configuration.

This internal ROM is the true first executable code. The external ACE-ROM is better described as the Apple-specific patch and configuration store rather than the controller’s entire firmware brain.

Stage 4 — External ACE-ROM is read over SPI

On the working A2442 capture, SPI_UPC0_CLK appears at about 31.920ms and SPI_UPC0_CS_L becomes active at about 32ms. The controller reads the external ROM using CLK, CS_L, MOSI and MISO. WP_L and HOLD_L must be in valid inactive states, the ROM must have stable 3.3V power, and the contents must match the board and controller configuration.

Check the complete transaction rather than only looking for one clock pulse. Clock and chip-select with no meaningful MISO response point toward ROM power, the ROM IC, corrupted contents, WP/HOLD biasing or a broken SPI trace. No clock or chip-select despite a good LDO points further upstream toward reset, boot straps or the controller itself.

Stage 5 — The managed 5V path reaches PPDCIN_AON

After the controller reaches a valid configured state and passes its attach and protection checks, the managed VBUS-to-system path conducts. In this A2442 measurement, PPDCIN_AON reaches approximately 5V at about 400ms.

This is an important correction to the simplified sequence: the internal power path does not have to wait for the later 20V contract. The board first receives default 5V through the managed path, and that 5V is sufficient to start U5200 and the early system sequence.

Stage 6 — ISL9240 starts the board from 5V

U5200 detects the 5V input through P_IN and CHGR_AUX_DET, creates CHGR_VDDP and enters boost mode. PPBUS_AON reaches approximately 12.3V at about 800ms. P3V8AON_PWR_EN then allows U5700 to create PP3V8_AON at about 1000ms.

The MPMU, SPMU and SoC can therefore begin booting while the external charger is still supplying only 5V.

A2442 820-02098 M1 Pro power-on sequence stage 1 showing USB-C input, CD3217 startup, ISL9240 charger initialization and PPBUS_AON boost checkpoints 1 to 10.
Stage 1: USB-C input, CD3217 initialization and PPBUS_AON generation on a working A2442 board 820-02098.
Measured A2442 stage-one reference: USB-C 5V input, CD3217 LDO and SPI-ROM activity, PPDCIN_AON, ISL9240 boost operation, PPBUS_AON and PP3V8_AON.

Stage 7 — Embedded SMC communicates with CD3217

Later in the board sequence, the embedded SMC communicates with the port controller over I2C_SMC_UPC_SDA. The working A2442 capture shows this activity at about 4230ms. The controller is now operating with the Apple patch/configuration and the system is far enough through its own boot sequence to manage the requested power contract.

The active CC wire carries the USB-PD BMC messages: Source Capabilities, Request, Accept and PS_RDY. This is the “smart CC1/CC2 talking” that should be considered firmware- and policy-dependent.

Stage 8 — The port negotiates 20V and U5200 changes to buck mode

At approximately 4400ms, PPDCIN_AON rises from 5V to about 20V. The managed port power path remains active with its protection functions while U5200 receives the higher adapter voltage. At about 5200ms, PPBUS_AON settles near 12.0V as ISL9240 changes from boost to buck operation.

Therefore, 5V power-path enable and 20V PD negotiation are separate checkpoints. A board can have PPDCIN_AON at 5V but fail to reach 20V because of later SMC/I2C, CC, ROM-policy, charger-capability or controller faults.

Measured A2442/820-02098 CD3217 timeline

Approximate timeCheckpointWhat it confirms
Before 0msHardware Rd on CC1/CC2Dead-battery sink attach can be detected without loaded ACE-ROM.
0msPPVBUS_USBC0 ≈ 5VThe charger detected Rd and enabled default VBUS.
0msPP3V3_UPC0_LDO ≈ 3.3VCD3217 dead-battery LDO and ROM supply are present.
31.920msSPI_UPC0_CLKThe controller has started the external-ROM transaction.
32msSPI_UPC0_CS_L activityThe external ACE-ROM is being selected.
≈400msPPDCIN_AON ≈ 5VThe managed default-5V system power path is conducting.
≈800msPPBUS_AON ≈ 12.3VISL9240 is operating in boost mode from the 5V input.
≈1000msPP3V8_AON ≈ 3.8VThe PMU start-up supply is present.
≈4230msI2C_SMC_UPC_SDA activityThe embedded SMC is communicating with CD3217.
≈4400msPPDCIN_AON ≈ 20VThe high-voltage USB-PD contract has completed.
≈5200msPPBUS_AON ≈ 12.0VISL9240 has changed from boost to buck mode.

What different fault patterns really mean

ObservationWhat is provenWhere to investigate next
No 5V VBUS at the connectorThe dead-battery attach did not complete.Charger, cable, connector, CC1/CC2 path and hardware Rd.
5V VBUS but no PP3V3_UPC_LDOVBUS reached the port, but the controller start-up supply failed.LDO rail short, controller damage, local capacitors and VBUS supply pins.
3.3V LDO present but no SPI CLK/CS_LOnly the LDO stage is proven.Controller POR, boot straps, reset, clocking and the controller itself.
SPI CLK/CS_L present but MISO is absent or invalidThe controller attempted a ROM read.ROM supply, ROM IC, contents, WP_L/HOLD_L and SPI traces.
ROM transaction looks valid but PPDCIN_AON remains 0VBoot activity occurred, but the managed path was not enabled.CC state, valid configuration, protection/sense conditions and the internal power-path block.
PPDCIN_AON reaches 5V but never 20VEarly ROM and default-5V path probably worked.SMC progress, I2C_SMC_UPC, PD packets on the active CC line, charger capability and later policy.
PD packets and 20V appear at connector but not after the controllerThe contract completed on the charger side.Internal FET, voltage/current sensing, protection state and system-side loading.

PP3V3_UPC_LDO present does not mean the ROM loaded

If VBUS is 5V, PP3V3_UPC_LDO is 3.3V and PP_HV/PPDCIN_AON remains 0V, the controller has certainly reached the LDO stage—but not necessarily the external-ROM stage. You must observe SPI CLK, CS_L and meaningful data before concluding that the ROM was read.

If SPI activity is normal and the configuration contents are known good, reasonable CC levels and BMC traffic help separate a policy/communication problem from a physically damaged managed power path.How to confirm a genuine ACE-ROM-related fault

  1. Compare ROM supply, CLK, CS_L, MOSI and MISO with a known-good port or known-good board.
  2. Verify WP_L and HOLD_L are not preventing normal access.
  3. Check continuity between the controller and ROM, especially after liquid damage or previous rework.
  4. Read the flash and verify that it is neither blank nor obviously corrupted.
  5. Use only a known-good image that matches the exact board/controller configuration.
  6. After repair, confirm the complete result: valid SPI read, 5V PPDCIN_AON, SMC-to-UPC I2C activity, CC BMC traffic, 20V negotiation and stable PPBUS_AON.

Frequently asked questions

Is all CC1/CC2 activity after ACE-ROM loading?

No. Hardware Rd and basic Type-C attach occur first. Normal configured PD policy and the later 20V BMC negotiation follow valid boot/configuration.

Does initial 5V prove that CD3217 is healthy?

No. Initial 5V mainly proves that the source detected a sink attach. Continue through the LDO, SPI-ROM and managed power-path checkpoints.

Does PP3V3_UPC_LDO prove that the external ROM is good?

No. It proves the ROM has a possible power supply. Only a valid SPI transaction and successful downstream behaviour demonstrate useful ROM loading.

Are CD3217 and TPS65983B exactly the same chip?

That exact identity is not publicly confirmed. TPS65983B is a valuable architectural reference for diagnosis, but Apple-specific silicon, boot configuration and firmware behaviour must be respected.

Continue with the A2442 M1 Pro master power-on sequence, the earlier Intel Mac charger and PPBUS_G3H sequence, or the MacBook logic-board power-rail diagnostic guide.

For professional component-level diagnosis, see our MacBook logic-board repair service in Melbourne and Australia-wide mail-in options.

Share this: