I have a file server computer on my home network, which provides a central location for all data used by the other machines. Because it must run continuously, low power consumption is beneficial. I elected to use a spare laptop for this role, with an external IDE drive enclosure. Together, the computer and drive use around 25W at idle.
Although a laptop does effectively have an 'inbuilt' UPS, the battery in this machine was in poor condition, and as the drive enclosure has a separate power supply, the system was not immune to power interruptions. For this reason, I decided to run the server from my 24VDC battery supply. This required a suitable power supply to be constructed. In this article, I will describe the conversion of a standard PC power supply for this application.
The requirements for the power supply were as follows:
Given the low input-output differential for the 20V output, even a linear regulator would have given reasonable efficiency. However, the requirement for an isolated output demanded a transformer-based, switchmode design. This is the same arrangement that is used in just about all PC PSUs, and I therefore decided to modify one for 24VDC input.
There were three major modifications required to the supply: reconfiguring the driver circuitry, rewinding the transformer, and adding an extra 20V output. First of all, I dismantled the supply, and removed most of the output wires. (Check the filter capacitors are discharged if you are doing this!) The first job was getting the switchmode controller circuitry operational. Since I was using an older AT-type supply, which runs the control circuitry directly from the secondary of the main transformer, it needs power from somewhere to get the supply up and running. To start off, I provided this voltage from an external bench power supply. Most of these supplies use a TL494/KA5700B controller IC, which has its supply on pin 12. Generally, a voltage of around 15-20V is required. (Find the filter electrolytic connected to this pin, and choose a voltage somewhat lower than its rating).
Initially, there was no output from the chip at pins 8/9/10/11, although there was a waveform on the timing capacitor (pin 5). It was necessary to check the control inputs to the chip to find the reason for this. Pin 15 should be higher than pin 16, 2 should be higher than 1, pin 13 should be high, and pin 4 should be low. I found the dead-time input (pin 4) was inhibiting the chip - disconnecting it produced the required output.
Original primary side circuit of PC SMPS
The original supply used two NPN bipolar transistors in a half-bridge configuration. Base drive is supplied by two isolated windings on the driver transformer - one of these is floating to drive the upper transistor. I wanted to use a 'push-pull' output stage with a centre-tapped primary for the modification. Furthermore, I wanted to use MOSFETS. I looked at the waveform out of the driver transformer (with the existing circuitry disconnected), but it was not directly suitable for driving MOSFETS. This meant that the driver circuitry required some modification.
At this point, I stripped out the primary side filter caps, and some other superfluous components. The output transistors were replaced with BC548s (with the leads bent to suit the different pinout), which were to become part of the driver circuitry. I cut the connection between the upper and lower transistors, and also cut the connection between the top transistor and the positive supply. The top transistor had its emitter grounded, and both transistors had 1kOhm loads connected between their collectors and the positive rail. I supplied this part of the circuit with 12V from the bench supply, as a suitable voltage for the MOSFET gates.
Emitter follower stages installed in modified PCB
Inspection of the output waveform showed that the circuit could only produce a maximum duty cycle of around 33%. I found a 1k resistor in series with the primary of the driver transformer. Fitting a 470 ohm resistor in parallel increased the duty cycle at the output to around 45%, which was considered sufficient. However, the waveform was still not suitable to drive the MOSFETS, as the BC548s had inverted it, of course! I thought of adding an extra inverter stage, possibly with a 74HC14, which could have its outputs paralleled to drive the MOSFET gates. But then I saw another possibility. Since the drive transformer signal was fully floating, all I had to do was swap the supply polarity, swap the BC548s for BC558s, and reverse the diodes in the base circuits. This produced a signal of the correct polarity. (It is possible to reverse the supply to a (discrete) circuit, reverse all the polarised components, and exchange NPN transistors for PNP and PNP for NPN, and it should still work!)
In the end, I was concerned that the 1k resistors would turn the MOSFETS off too slowly, so I added complementary emitter followers after the original driver stage. These drive the MOSFETS though 10 ohm gate resistors. I cut up one of the large tracks on the PCB and drilled new holes to form isolated pads for these transistors. This gives quite a reasonable drive signal, although the rise and fall times could still be better.
MOSFET gate drive waveform
The original output transistor heatsink was reused, but rotated 90 degrees, with the MOSFETS attached at the top. I used IRFP4321 MOSFETS, as I had a quantity of these I had purchased on special from Farnell, a bargain at only 50 cents each! These are rated at 150V, 78A, and 0.012 ohm 'on' resistance. I would have liked to add zeners and inverse series diodes between the drains and gates, for spike suppression, but I did not have any suitable zeners on hand. In the end I left these out, which should not be a problem, given the transistors' voltage rating. The final driver circuit is shown below.
New driver and output circuit
Having organised a suitable driver circuit, the next task was to rewind the transformer to suit the substantially lower input voltage, and also add a winding for the 20V rail. The transformer was desoldered from the board, and the outer wrapping of tape was removed. It was then placed in boiling water to soften the glue holding the core together. After simmering on the stove for 10 minutes, the core came apart easily.
Cooking up the transformer core
The transformer was constructed with 18 turns of the primary closest to the core. Then, a 6 turn centre-tapped copper foil winding for the 5V rail, two 4t windings connected in series with the first secondary for the 12V rail, and finally another 18t of the primary. I had originally hoped to leave the secondaries intact, but in the end I took them off to gain access to the inner half of the primary. Both primary windings were removed to free up space. I added a 24t centre tapped secondary for the 20V output, put back the original secondaries, and then wound an 18t centre-tapped primary in 1mm enamelled copper. I insulated between the layers with polyimide tape. Fortunately, the core went back over the former with plenty of clearance - if you add too many windings, it will not fit, and the ferrite will probably break if you force it.
With the transformer reinstalled, and 24V applied at the input, the supply produced the +5V and +12V rails as expected. The auxiliary supply for the TL494 was still necessary to get the supply started, but this could be removed once it was up and running. This showed that the DC-DC converter was basically working. It was only necessary to make it start automatically. The original supply fed the main transformer current through a feedback winding on the driver transformer, and operated as a self-oscillating converter until the control circuit started up.
I disconnected the gate drive to the MOSFETS, and worked on making the driver oscillate. I tried routing the driver current through the feedback winding without success. I did manage to make the supply self start with an RC-circuit between the base of one of the driver transistors and ground, to give an initial turn-on 'kick'. However, this resulted in a large switch on surge, as the transformer was probably saturating, and was not very reliable. In the end, I had to use an additional transistor as an oscillator stage, driving the feedback winding on the driver transformer. The bias for this stage was supplied from the 24V rail via a 1uF capacitor. This makes sure that it only operates momentarily at switch on, and does not interfere with the normal running of the circuit. It was necessary to adjust this capacitor, and the bias resistor, to ensure reliable starting under load, at different input voltages, and after momentary supply interruptions. The starting circuit was initially built 'point-to-point' on the bottom of the PCB, and then installed permanently when it was working reliably.
The last part of the modification was to provide the 20V rail I needed to power the laptop. I installed a rectifier and L-C filter in the style of the ones fitted for the other rails. I reused the windings on the filter inductor originally used for the -5V and -12V rails, connecting them in series. Since the direction of current flow was then reversed, it was necessary to connect these windings with the opposite phasing to that used originally.
The supply was now fully functional, but it dropped out of regulation at around 23V input, which was a bit high form my application. I removed a turn from each end of the primary winding, which brought the dropout voltage down to around 21V. Fortunately, this was possible to do without removing the other windings.
I then tested the supply for efficiency, heat build up, regulation, and output noise. Efficiency was around 84% at 30W output, and 77% at 57W out. While I would have liked these figures to be a bit higher, I think this is fairly good, given that I did not put a lot of effort into optimisation. The idle power is around 2W, also a little on the high side, but this is to be expected given the isolated design with the control circuit on the secondary side.
After testing for an extended period at around 50W output, the secondary rectifier heatsink was fairly hot, although the other heatsink was only warm. The supply should be OK to be passively cooled at this power level, which saves the power consumption and noise of a fan. It appears that this design would be suitable for operation at higher power levels (eg for powering a standard desktop PC), but this would require forced air cooling.
The regulation of the 20V rail is fairly poor. This is not unexpected - these supplies either only regulate the 5V rail directly, or use a 'weighted average' of the rails. I couldn't be bothered going to the effort of tracing out the feedback circuitry and modifying it to include to 20V output, so this output varies from around 23-24V unloaded with the 5V output loaded, to around 19V under load with no load on the 5V line. This should not be affected too much by input voltage variations, as the main 5V output will be adjusted to track these. I do not expect that the variation on the 20V supply should be too much of a problem, as the outputs will always have a load applied, and I expect that the laptop will have its own supply regulators inside.
If the feedback circuitry was modified, it would also be beneficial to trace out the connections to the 'dead time' input on the TL494. This is probably part of the protection circuit, which is currently inoperative. A fuse provides protection against overcurrent, but there is nothing to prevent overvoltage on the output. Other supplies I have worked on use positive feedback to provide a latching shutdown in the fault condition. While this is probably a good idea, it makes the protection circuit difficult to modify or troubleshoot unless you trace out the circuit completely.
I checked the noise on the various outputs, and this initially looked fairly bad. But after installing the PCB in its metal box, and playing around with the ground connections a bit, the noise on the output looked acceptable.
PC power supplies are readily available, new or used, at low cost. Although there are as many different circuits as there are manufacturers, they all use basically the same topology. It should be easy to adapt the modifications described above to any particular circuit - at worst, you will have to trace out the whole circuit, but you will probably be able to get away without it. (The complete circuit for an ATX supply is given in one of the links below).
The converter that I built was designed to convert 24VDC to 20VDC, but other voltages are quite achievable - just scale the turn counts on the transformer appropriately. A 12V version could be made to run a PC from a car battery (although commercial supplies to do this are now available). In this case, the 7812 regulator in the driver circuit would be unnecessary.
Other modifications to PC supplies are also possible. I have converted one for a regulated 13.8VDC output from the original 240VAC input, and one to give +/- 20V from the original transformer. I have also rebuilt one to use the transformer in reverse, generating approx 300VDC from a 12V battery to power compact fluorescent lamps.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
loopgain.net