820-01700 (A2141) R7900 failed, power cycling after R7900 bridged

cchamberlain

New member
Hi,

My wife's 2019 MBP died a couple of weeks ago and I have been trying to figure out what is wrong with it. I took it to Apple who diagnosed a logic board failure and quoted me around £700 to replace even though it's just a few months outside AppleCare warranty... I have an electronics background and equipment (microscope, hot air, soldering iron, oscilloscope etc) but never tried to diagnose a modern MBP before. I have the board view and schematics already and have been climbing the learning curve steadily!
icon_smile.gif


Initial fault was no power with USB ammeter showing 5.19V @ around 12 to 35ma. I won't go into all the initial debug I did because ultimately I found R7900 to be high resistance when it should have been a 0ohm link. I'm using a genuine 96w Apple charger and cable which works fine on other MacBook Pros. The logic board is fully extracted from the chassis with USB-C sockets attached.

So, going from the power sequence chart in the schematics I get:
PPBUS_G3H = 12.29V
PPBUS_HS_GPU = 12.29V
PP3V3_G3H_SSD0_SNS = 3.38V
PP3V3_G3H_T = 0.02V (this led to R7900 being diagnosed as o/c)

PP3V3_G3H_RTC_X is also 3.38V which feeds the upstream side of R7900.

I linked out R7900 with some wire wrap for now and that now causes the USB ammeter to power up and shut down continually and I can't get a reading. I measured PPBUS_G3H with my oscilloscope and the voltage is ramping up from 3.7v to 12.6v over the space of 170ms and then sustaining 12.6v for 70ms before dropping rapidly to 3.7v again.

I tried removing the R7900 bridge and injecting voltage to the PP3V3_G3H_PMU_VINRTC_R line which R7900 feeds and it takes 3.65A at 3.3V. I only ran at this level for a second because the U7800 Power IC starts to warm up even at 2A current draw at 2.65V injected. When injecting power I didn't see any voltage on the U7800 outputs.

I checked the T2 power rails as per logi.wiki and got the following. Took resistance measurement plus diode mode in brackets (red lead on ground):

PPVDDCPU_AWAKE = 15.9ohm (0.021)
PP0V82_SLPDDR = 34.5ohm (0.032)
PPVDDCPUSRAM_AWAKE = 212ohm (0.637)
PP1V1_SLPS2R = 7.8kohm (0.402)
PP0V9_SLPDDR = 57.3ohm (0.054)
PP1V8_SLPS2R = >20kohm (0.390)

General observations - no signs of liquid damage and no corrosion. U7800 has a somewhat "mottled" appearance under the microscope but no signs of burns. The PPGFX_S0_GPU line is very low resistance around 1.6ohm but not sure if this is normal.

So, my guess is that U7800 is faulty but I'd appreciate a second opinion. I have a Quick 861DQ hot air station and Hakko FX-888D solder station and have some experience at using hot air but would appreciate nozzle size, airflow and temperature guidance for removing U7800. I would also appreciate any help in finding a source of a new or used/reballed chip. It says it's a 338S00267-A0 (1939PHGU) but I don't know if these are generic or specific to each individual MBP model.

Looks like the A1989 (820-00850) U7800 chip might be the same. From a quick check of the respective schematics, the BOM details are the same and the pin assignments seem to be the same from what I've checked so far (mostly the LDO section). Even the neighbouring passive components have the same designations and values. I also checked A2159 (820-01598) but it has a different U7800 chip with part number 338S00466 which has different pin assignments, and from checking a BGA stencil from see-ic on eBay, this chip has a different stencil to the 338S00267. The stencils are both 18x18 (324) pins but the pitch on the 466 is very slightly larger than the 267 it seems.

I'd really appreciate any help you can offer.

Many thanks,
Craig.
 

2informaticos

Administrator
Staff member
First of all, welcome to the forum!

You should start checking diode mode to ground on pin 2 of R9700.
If U7800 got hot when injecting voltage there, it must be replaced.
Apart of it, remain 4 capacitors; they should be good, if none got hot.

If you find similar PMU from different MLB, give it a try.
Just be sure to have the same printout.
The PMU has many GPIOs, defined by its internal firmware.
But I can confirm that the one from 01041 board yes, it works on 01700 board.
The one from 00850 should also work.

CPU and GPU core power rails have very low resistance to ground as normal; don't bother with that.

I can't tell you more about hot air station.
Same setting may not work exact in same way on every model.
I recommend you to practice on scrap boards.
 

cchamberlain

New member
Hi, thanks for the welcome, and for the fast response.

Diode mode readings for R7900 (I presume you meant that and not R9700) are 0.417 (red lead on ground) and 0.753 (black lead on ground). This is with my link wire still attached between R7900 pin 1 and 2. Do you want me to do the same readings with the link removed?

This reading seems okay to me but I don't have a good board to compare against. I wondered if it was an output from the PMU that was shorted but I tried checking all the inductors to ground in diode mode and couldn't find any obvious shorts. When I said the PMU was getting hot, I didn't let it get "ouch!" hot but it was certainly warming up once more than 1.5A was flowing into it.

You mention the PMU's internal firmware - is this coded on the PMU itself or does it come via an external ROM?

I have ordered a BGA reball kit with a clamp, a selection of solder balls and universal stencils which should be here tomorrow. I've also bought an 820-01041 board from eBay as a potential donor. The board has already had NAND removed so was quite cheap and appears to still have the PMU installed so I'll give it a try. I can hopefully also salvage R7900 from it to replace it properly and any other passives.

No worries about the hot air advice, I understand. I'll practice on the donor board before attempting the PMU swap.
Thanks again.
 

2informaticos

Administrator
Staff member
Is true, my error about R7900 (not R9700).

If no short on PMU input power rail, check diode mode to ground at its LDOs; page 76, (SYM 1 OF 4).
Use the capacitors connected there, as test points; don't forget VOUT_RTC.
 

cchamberlain

New member
Okay I checked all the pins in Sym 1 of 4 section as follows (all with red lead to ground):

V3P3/VOUT_RTC = 0.377
LDO0_IN = 0.253
LDO1_IN = 0.416
LDO2_IN = 0.392
VIN_RTC = 0.415
LDO_CORE = 0.367
LDO0 = 0.214
LDO1 = 0.468
LDO2 = 0.527
LDO3 = 0.595
LDO_RTC = 0.368
HIO_SW_EN = 0.473
HIO_SW = 0.222
VPUMP = 0.574
V3P3_SW1 = 0.641
V3P3_SW2 = 0.327

Do these look okay to you? Anything else I can check before swapping the U7800 IC?
Thanks.
 

cchamberlain

New member
Voltages at LDOs:
LDO0 = 0.000V
LDO1 = 0.000 - 0.003V
LDO2 = 0.000V
LDO3 = 0.000 - 0.001V
LDO_CORE = 0.000V
LDO_RTC = 0.000V mostly with a little 20mV ramp up and down each time the USB-C ammeter cycles
VOUT_RTC = 0.450V (starts lower at 200mV and each time the ammeter cycles it rises a bit farther. Also takes a long time after power down to bleed away so I guess there is a lot of capacitance on this line)
 

cchamberlain

New member
Thanks, I'm expecting the donor board to arrive on Saturday so will hopefully have a go at replacing U7800 over the weekend. I'll let you know how I get on.
Have a lovely weekend.
 

cchamberlain

New member
Hi again,

My donor board didn't arrive until yesterday so apologies for the delay.

Well, I replaced U7800 with a new part from "see-ic" on eBay (China) and initially I hadn't used enough heat to fully melt the lead-free solder so I was getting 5.2V on the USB-C ammeter but 0.000A. I inspected the solder balls along one edge of U7800 and it was clearly not melted so I did a reflow at a higher temperature with more flux added.

It took a lot of heat and honestly I'm not 100% sure if I did it correctly without damaging the chip but after cooling I tested it again and I get the exact same symptoms I had before I replaced the chip. My ammeter is cycling and never gets to show a voltage or current, and my LDO outputs show no voltage except for LDO3 which briefly pulses up to 160mV or so on the multimeter each time the USB-C ammeter cycles. I still get 12.29V on PPBUS.

As I mentioned, I used the new PMU chip rather than the one from the donor board but I have extracted the one from the donor board and have manually reballed it with leaded solder balls and could try installing it. But before I do that, I wanted to update you and ask how likely it is to have the exact same symptoms after a PMU replacement? If I installed it badly or overheated the chip during installation, would it show the same symptoms as before?

Many thanks,
Craig.
 

cchamberlain

New member
V3P3 (PP3V3_G3H_SOCPMU) is at ~ 220mV
VIN_RTC is mostly at 0V but with some pulsing on the multimeter to a 20-50mV as the USB-C ammeter cycles. I still have the temporary link wire in place to bypass the failed R7900.
 
Last edited:

cchamberlain

New member
Actually no, PPBUS_G3H is now cycling between around 3.7V and 11V+ even with the R7900 link removed and 3V3_G3H_RTC_X is pulsing between 0V and just over 1V with the other side of R7900 (VIN_RTC of the U7800) floating between 0.4V and 0.6V.

So something seems to have changed somewhere and maybe I need to take a few steps back and verify PPBUS_G3H and come forward from there. Strangely, I did check PPBUS and it was at 12.29V but that might have been before my second reflow of U7800. Will try to diagnose PPBUS_G3H this evening unless you have any other specific things to suggest.

Thanks again.
 

cchamberlain

New member
Update: I still wasn't happy with the soldering of the PMU because the visible balls along the top edge were not looking like they had flowed. I think I was just not prepared for the amount of heat required by lead-free solder, especially on a power chip with presumably large ground planes etc.

It definitely flowed this time but spat out some solder balls along the bottom edge which I cleaned up. The balls on the top edge now look like they have settled down and flowed and the chip is closer to the PCB surface. But I fear that repeated heating may have destroyed the chip. In particular, prolonged heating at temperatures just not quite hot enough to flow the lead-free solder. I didn't have this problem when I practiced on the donor board by installing the PMU from my good board because it was using leaded solder.

I'll do some diagnosis of PPBUS_G3H to see if I can find out why it is cycling but unless you have any better ideas, I think I should probably remove the PMU again and try installing the one I recovered from the donor board, with leaded solder this time. Failing that I might just have to admit defeat and send the board off to someone in the UK who does board level repairs. Recommendations welcome.

Have a nice weekend.
 

cchamberlain

New member
Yeah I understand the need for a stable PPBUS_G3H.

Before I removed the two fuses I noticed that the PPBUS_USBC_(XA/XB/TA/TB) power input was pulsing between 0 and 5.2V depending of which USBC port was being powered.

With fuses F7000/F7001 removed PPVBAT_G3H_CHGR_REG is stable at 12.27V (I guess it won't get boosted to 12.6 without the fuses installed?) and obviously PPBUS_G3H is now 0V. The USBC ammeter shows 5.19V and 0.000A but it is also stable again.

If I do a diode mode reading on PPBUS_G3H now it reads 0.383 so not a dead short. I'll start working my way downstream from the fuses and see where it leads. I won't inject any voltage on PPBUS_G3H unless you ask me to because I've read the warnings about this. But maybe we'll need to consider this at some stage.

I wouldn't be surprised if I find a rogue solder ball somewhere after my BGA reballing activities. Those things are a nightmare to keep control of once you open the bottle. I can see why many(most?) people use solder paste instead of balls!
 

2informaticos

Administrator
Staff member
Compare diode mode reading on PPBUS_G3H with all coils.
0.383 is not short to ground, but may have a shorted high-side MOSFET with a secondary coil; if any gives the same reading.
 

cchamberlain

New member
Since I took the readings earlier, the diode mode to ground (red on ground) for PPBUS_G3H has changed slightly to 0.402. Maybe due to capacitors discharging while it was powered down for a couple of hours.

Anyway, I used this 0.402 figure to search for a coil with similar diode mode value to ground (again red on ground) and found L7600. This coil works with U7600 dual MOSFET to turn PPBUS_HS_OTH5V (PPBUS_G3H via current sensor) into PP5V_G3S.

I did some diode mode checks on U7600 Gate, Source and Drain in circuit and got these readings (first pin is red lead, second is black):
D to G = ramps up quite quickly to beyond 1.999
G to D = 1.354 stable
D to S = ramps up quite quickly to beyond 1.999
S to D = 0.476 stable
G to S = 1.356 stable
S to G = starts around 0.1xx and then slowly ramps up to 0.3xx before jumping to a solid 0.653 which is then stable

This doesn't jump out at me as being a faulty MOSFET but let me know if you disagree. I have one of these chips on my donor board so could swap it if you think that's worth a try.

Another coil, L7660 has a similar diode mode value of 0.374 but I checked the high and low side MOSFETs on that chip and there are no shorts either.

Could it be U7650 that is faulty? Again I have one on my donor board but the part number is TPS51980B on the 01700 board and TPS519080A on the donor board. Not sure if that is significant or not.
 

2informaticos

Administrator
Staff member
Just check now diode mode, or ohm scale, between PPBUS_G3H and suspected coils.
If the reading is the difference between each one to ground, guess what...
 
Top