Background:
I've had a Cube in my possession since around 2011. It has been upgraded with a dual 500Mhz 7400 from a Gigabit and a Radeon 9000 Pro from the MDD. I have heard the horror stories about exploding VRMs that take out other components in the system, but so far, I haven't had any real issues with mine. However, after learning more about the VRM, I think the survival of mine has more to do with the fact that I tend to use my Cube to play older games in Mac OS 9 where only one of the CPUs is really utilized and the GPU isn't under a massive load. In this post, I hope to outline what I have learned about the Cube's VRM and my plans to make it more robust.For starters, lets talk about what the VRM is actually doing. The VRM is responsible for taking the 28v output from the Cube's external power brick and converting it into the 12v, 5v, and 3.3v that the various hardware needs to operate. The VRM creates the three required voltages by lowering them using buck converter circuitry. Without going into too much engineering, a buck converter is essentially a switch that turns on and off quickly and stores energy in the form of magnetic flux in an inductor. Combined with some capacitors to stabilize the output, a buck converter can create a relatively stable output voltage that is lower than the input. The Cube VRM contains one buck converter for each of the required voltages. The 12v is controlled by the LM6278 chip on the right side of the VRM. The 5v and 3.3v are controlled by the LTC1628CG in the middle of the board. The controllers are responsible for the switching frequency, target voltage, and over/under voltage and current protection for the circuitry.
Because Molex is a known pinout with 12v and 5v lines, we can use the Molex connector to probe around the VRM with a multimeter to determine which of the converters are which, and which pins they connect to on the logic board. Marking the pins with their voltage will make it easier to determine which parts of the Cube use which voltage. By following this method, I have determined that the CPU card uses 5v for the CPU VCore and 3.3v for VBus (both fed through further buck converters on the CPU card itself). 3.3v is also used directly to power the cache chips. There isn't much info available on GPU chips or video card power setups, so it is too difficult for me to determine which of the three rails the video card will put the most stress on. The AGP spec specifies a max of 6A on 3.3v, 2A on 5v, and 1A on 12v; this adds up to 48.25 W. The Radeon 9000 Pro only pulls 28W max, so its total load won't be the AGP max, but seeing as I don't really know where it is pulling that 28W from, I'll just assume the worst on each rail going forward.
As for other sinks of current on the Cube, the ADC connector on the video card as well as the FireWire ports are driven directly from the external 28v supply. The USB connectors are driven from 5v and rated at 500mA each. The memory and chipset almost certainly draw power from 3.3v given that this is used for the bus voltage on the CPU card and 3.3v is the spec for PC SDRAM.
Why the VRM Fails:
Now that we know where the power flows, we can start to analyze why the VRM seems to fail for so many people. The short and easy answer is that it gets overloaded as you add upgrades to the cube, but the nuance of why this occurs so catastrophically should be able to help us improve the stock VRM.Before we get any further, it helps to understand a bit about how an inductor operates in a buck converter. As mentioned previously, inductors store energy in the form of magnetic flux. This flux wants to keep the current flowing at a steady rate. Because the switch in the converter is constantly turning on and off, the amount of flux stored in the inductor rises and falls. It will rise above the output current when the switch is on, and fall below the output current when the switch is off. On average, the current flowing through the inductor is equal to the output current. The amount of current above and below the average is called "ripple". By calculating the ripple current and dividing it by 2, we can add this ripple to the output current and get the peak current that flows through the inductor. The peak current will also flow through the switching MOSFETs (and diode in the case of the 12v rail). Once an inductor hits the maximum amount of flux that it can store (determined by the current), it is "saturated" and its inductance begins to drop.
12v
As mentioned previously, the 12v rail is generated by the LM2678 chip. The chip itself contains the switching FET and is rated for 5A. The 12v buck is set up as a non-synchronous converter using the Inductor right next to it and the diode directly opposite it on the board. This diode is rated for 3A max, meaning it has a fair chance of burning up if you push it much past this. The inductor also starts to saturate around 3A. Given that the LM2678 has a switching frequency of 260kHz and is using a 47uH inductor, we can determine that its ripple current is ~0.56A. This means that we need to add 0.28A to our max current draw when calculating the total load on the components. As far as I can tell, the 12v rail powers the GPU, the HDD, optical drive, and fan (if one is installed). The GPU can draw up to 1A on the 12v rail (although it might not always use that much). The remaining components are all inductive loads (they have motors) which will draw much more current at spin up than at steady state. Based on what google told me, an HDD will pull a little over an amp when spinning up and around 0.5A when running. An optical drive can pull over 2A when spinning up and around 1A when running. Finally, the fan will pull around 0.2A.Adding all of this up we can determine a peak load (if all of the inductive loads spin up at the same time and the GPU is running full tilt) of ~4.5A, much higher than the diode can handle! However, it is highly unlikely that all of these events will occur simultaneously. The peak steady state load is closer to 3A, which is right on the line. Replacing the HDD with a form of solid-state storage will reduce its current draw to as low as 0.2A and eliminate its potential to surge more current on startup. With an SSD installed we are at a much more comfortable 2.7A and significantly less when the optical drive and GPU are not loaded simultaneously. With an SSD installed, I believe that it is highly unlikely for the 12v rail to explode unless you are doing something crazy like putting a Radeon 9800 in your Cube.
5v
The 5v rail generated from the LTC1628CG flows through FETs that are rated for 10A and an inductor that begins to saturate around 10A. However, the overcurrent protection won't trigger until 18.5A! This means that it is very easy for the load to push past what the FETs can handle and blow them up. The switching frequency of the buck is set at 220kHz and the inductor is rated at 2.4uH, which gives us the absolute dog **** ripple current of ~7.78A. This means that we have to add an entire 3.89A to the total load on that single, lonely high side MOSFET that is only rated for 10A. The two PowerPC 7400 CPUs running at 500MHz in my cube will draw up to 18.9W each if every execution unit is fully utilized. This translates into 7.56A from the 5v rail, meaning if we add the 3.89A ripple, the resulting 11.45A is already more than enough to start cooking the high side FET. The 2A that can feed to the AGP port and the 1A that can go to USB are further sources of load that need to be taken into account here, giving us a theoretical max 5v current of 14.45A which the single high side FET simply cannot handle.3.3v
The 3.3v rail is essentially a clone of the 5v rail and has all of its characteristics, including its horrendous ripple and single 10A high side FET. The bus, RAM, and cache chips that run on it really shouldn't put a ton of load on the rail though. The cache chips used on these early G4 CPU cards have a max power draw of 1.6W each. There are 4 of them on a dual CPU card that add up to 7.4W, or a little over 2A on the 3.3v rail. However, each CPU will only be loading one cache module at a time, so I'm going to round down to an even 2A here. Based on what I could find, PC100 SDRAM will pull a little over 2W. This is technically per-stick, but I don't think the cube accesses more than one at a time, so we will call it 1A for memory just to be safe. The chipset on the cube is a complete mystery to me, so I'm calling it 1A. So far, with ripple, that puts us at a 7.89A load on the 3.3v rail. The AGP slot can provide up to 6A from the 3.3v rail, which brings us into the realm of fire with 13.89A. Most GPUs won't actually pull the full 6A, but the potential is there.Improving the VRM:
Now that we know why the VRM fails, we can set about improving it.12v
The 12v rail doesn't really need any changes unless you are running a massive GPU like a Radeon 9800 or you play games using the optical drive. Ditching the HDD for an SSD is probably more than enough to keep your 12v rail safe. If you do want to try to run more power from 12v though, I do believe that it can be upgraded. The LM2678 is already rated for 5A, so by swapping its diode for one rated for 5A and swapping its inductor for one with a higher saturation current, it could give you up to 2 more amps to play with.5v and 3.3v
The 5v and 3.3v rails (almost famously at this point) have an empty spot for a parallel high-side FET. Why didn't Apple put one in there? I think there are few related reasons. Apple never expected anything more than a single 7400 running at 500Mhz and a Radeon DDR to be installed in this machine. A single 7400 will draw up to 3.78A from the 5v rail. The smaller number of cache chips and smaller GPU also put less stress on the 3.3v rail. With these components installed, the load would be safely under 10A for both rails. Adding an additional FET would increase the gate capacitance (reducing buck efficiency) and increase the cost to produce the boards. I think the missing FET also explains why the overcurrent protection is set so high at 18.5A. It is likely that the engineers designing the board intended it to be used with *two* 10A FETs in parallel, so the 18.5A made sense. When they found out that they needed to cut cost and had a heavily overbuilt VRM for the stock cube, the FETs were cut without re-designing the overcurrent set point. I can only assume that two FETs were left on the low side due to excessive stress on the parallel diode when one of them was removed.So, we can improve the VRM by simply adding an additional FET, right? Well, yes and no. The original FETs used for this board are no longer manufactured and cannot be obtained without harvesting them from existing components. If you have a blown VRM laying around, this might be an option. However, these FETs do have a direct descendant that is still being manufactured today that happens to have a 19A rating. I plan on replacing all of the FETs on my VRM with these newer components. They do have a larger gate capacitance than the originals, meaning that the switching losses (heat) will be higher, but I plan to add some heatsinks to compensate for this. There are also some marginally better diodes than the originals that are extremely cheap. It won't make a huge difference, but replacing them will gain us back a hair of that efficiency we lose by moving to the new FETs. I also found a diode and inductor that will allow upgrades on the 12v rail, but I don't personally plan to install them on my VRM as I don't have a need for that much 12v power at this time.
Sadly, even with these upgrades, we can't do anything about the horrendous ripple and 10A saturation current on the inductors. The inductors used on the Cube VRM are in a form factor that, as far as I can tell, was a bit of a one off and the Cube is already using the largest one possible. According to the datasheet on the inductor, we should be able to push it to about 13A before it really starts to fall apart, but it might get a bit warm in the process. At least with the new FETs installed, the overcurrent protection should kick in before one of the rails overloads or the inductor fully saturates and shorts (which is still completely within the realm of possibility when running a dual CPU or anything higher than a 7410). If OCP triggers, the machine should now simply crash or reboot instead of destroying itself. While we have the soldering station out, why not replace those electrolytic caps while we are at it?
I put together a Digikey list with all of the components that I plan on using to upgrade the VRM here https://www.digikey.com/en/mylists/list/1LXXI15098 . The inductor and 5A diode are only necessary if you plan to upgrade the 12v rail as well. I'll try to update this post with a step by step guide on upgrading the VRM if I am successful.
Sources:
- MPC7400
- Main hardware specs: https://www.nxp.com/docs/en/data-sheet/MPC7400EC.pdf
- Updated specs with the power draw that all Apple designed cards are set for: https://www.nxp.com/docs/en/data-sheet/MPC7400PNS.pdf
- Cache chip datasheet: https://datasheet.octopart.com/K7A403600M-QC16-Samsung-datasheet-17925130.pdf
- LM2678 (12v) datasheet: https://www.ti.com/lit/ds/symlink/l...l=https%3A%2F%2Fwww.ti.com%2Fproduct%2FLM2678
- LTC1628CG (5v and 3.3v) datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/1628fb.pdf
- Stock 5v and 3.3v MOSFET datasheet: https://www.vishay.com/docs/71188/71188.pdf
- Stock 5v and 3.3v inductor datasheet: https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/407/CEPH149.pdf
- Stock diode datasheet: https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/609/30BQ040PBF.pdf
- AGP spec: https://en.wikipedia.org/wiki/Accelerated_Graphics_Port