ISL6258 ISL6259 Troubleshooting
ACIN pin on the charger IC detects if the input voltage is high enough, it is connected to a voltage divider on the DC-in voltage. As indicated on the schematics, the pin should be at least at 3.25V, the exact voltage will depends on the machine (the value of the resistors are similar but not the same across different machine) and the Magsafe version and power. That said, it should always be at least 3.4V, and if using a 85W Magsafe, at least 3.9V. If it's lower than 3.25V you get 0V on PPBUS-G3H.
The value on ACIN is calculated like this (like your usual voltage divider): Vin the input voltage (DC-in voltage here) Vo the output voltage (ACIN pin here) R1 the resistor between the input voltage and output voltage. R2 the resistor between the output voltage and ground. Vo = Vin * R2 / (R1 + R2)
DCIN pin on the charger IC is its input voltage. If the charger IC dies, it can take out the resistor between DC-in and this pin. The voltage on this pin should be almost the same as DC-in voltage. If it's missing you get 0V on PPBUS_G3H
CELL pin on the charger IC sets the initial output voltage on PPBUS-G3H. CELL is named as such because it is related to the number of cells in series in the battery. With a charging voltage of 4.2V for each cell, a 2-cells battery requires an overall charging voltage of 8.4V, a 3-cells battery requires an overall charging voltage of 12.6V. That's why PPBUS_G3H is around 8.4V (or a little more but doesn't matter) on Macbook Air and 12.6V on Macbook Pro, since it's the voltage that will charge the battery.
The voltage on CELL sets the number of cells like this on ISL6259:
|Connected to…||Nb of cells||Output voltage|
|Pulled to ground||2 cells||8.2V-8.6V|
|Pulled to PP3V42_G3H||3 cells||12.2-12.6V|
On Macbook Air, this pin is pulled to ground for the 2 cells battery. On Macbook Pro, this pin is pulled to PP3V42-G3H for the 3 cells battery. The exception is the A1297 17-inch 2009/2010 which runs on a 2 cell battery.
The ISL6258 does not have the CELL pin. The ISL6258 has default settings for 2-cell systems and ISL6258A has default settings for 3-cell systems.
Note: The definitive output voltage (8.4V/8.6V/12.6V) is set by SMC, initial voltage is a few percents lower (8.2V/12.2V). This is to prevent the battery from being charged with a too high voltage before the SMC has had a chance to interrogate the battery for the correct voltage.
VDD/VDDP The VDD pin is an internal 5V LDO, meaning the charger IC creates that rail. VDDP is connected to it through a resistor. If VDD is missing but DCIN is present, the charger IC is most likely dead. Both pins should have 5V on them if the charger IC receives power.
ACOK Indicates that the DC-in voltage is ok. Connected to SMC_BC_ACOK. I don't exactly know the requirements, but most likely if DCIN, ACIN and VDD are ok then this should come up, and most likely turn on the DC-in MOSFETs at the same time.
AMON Output from AC current sensing. A 1V drop across the current sense resistor would set this pin to 20V (impossible but it gives the ratio) The current sense resistor is usually 0.02ohm, using Ohm's law: I = U/R = 1/0.02 = 50 A So, 50A across the current sense resistor would set this pin to 20V. You'd expect the current to be lower than 4.6A, so that means a 0.092V voltage drop across the current sense resistor, so 1.84V on the AMON pin. This can be useful to know if you have an ID0R sensor issue you cannot figure out.
BMON Output from battery current sensing. A 1V drop across the current sense resistor would set this pin to 36V (impossible but it gives the ratio) The current sense resistor is usually 0.01ohm or 0.005ohm, using Ohm's law with 0.01ohm: I = U/R = 1/0.01 = 100 A So, 100A across the current sense resistor would set this pin to 36V. You'd expect the current to be lower than 7A (I don't know the threshold for ASD but that'd be already 70W with 10V on the battery), so that means a 0.07V voltage drop across the current sense resistor, so 2.52V on the AMON pin. Note that while running on battery this should be strictly below 0 since the battery provides current to the system (although I never measured it…). While running on AC with the battery charging, it should be strictly above 0 since the charger provides current to the battery. This can be useful to know if you have an IB0R sensor issue you cannot figure out. SMB: SCL SDA These pins form the I2C bus that the SMC uses to talk to the ISL. For safety reasons the ISL wants to be talked to on this bus. If the adapter is present and if the ISL does not receive a write to the MaxSystemVoltage or ChargeCurrent register within 3 minutes, the ISL will terminate charging by turning the BGATE FET off.
Critical and somehow easy to miss "plugged in, not charging" checkpoints:
- R7100 (on 820-00165) 0 Ohm resistor. Line CHRGR_RST_L. Must be briged with SMC_RESET_L. If it is lower than 2V you will have a perfectly good green/orange light, autopowerup, good PPBUS and it will work both from battery and charger but wont charge the battery at all.
- 2009 and older boards use ISL6258, 2010 and later boards use ISL6259. They are not compatible. When putting ISL6259 in place of ISL6258, PPBUS_G3H without battery will be 8.2V instead of 12.6V on MacBook Pro and battery won't charge, even though everything else will be working properly. When unsure, check part number in charging circuit diagram. Do not rely on the part number in the block diagram or SMBUS diagram, it can be wrong, and often is.