Finally got some time to work on this thing, so tl;dr here’s a picture of it.
For the overview I’m going to talk about the different blocks in the diagram below. Click for larger image.
In this iteration I wanted to avoid having an offline flyback at the input of each channel. This is the reason why I have a toroidal transformer, rectifier and filter as the first power conversion stage (marked FILTER in the diagram). This is close to a wash in terms of cost vs using a flyback per channel, but uses more area of the PCB and enclosure and imposes some limitations on the next power stage. A flyback would obviously be on a different PCB than the power supply channel. The filter is sized to keep the voltage ripple within a range that the feed-forwad block can compensate for without limiting the final output voltage due to headroom reduction (the buck can’t do 100% duty cycle).
The second power stage is a buck converter pre-regulator. Its job is to keep the power dissipation on the next power stage clamped at 2W maximum, regardless of output voltage. Some power supplies have multiple taps in the transformer and simply switch those with relays, however that has poor thermal and dynamic performance. The buck monitors the output voltage (REF) and keeps 0.5V across the last power stage. For the maximum 4A output current that’s 2W. This way, with a >90% efficient buck, I can avoid using fans to cool the supply.
The buck itself is controlled by the MCP1630V (EA). This is a PWM generator that takes an input clock from the XMEGA and a ramp from the feed-forward block (FF) and generates the control signal that is fed into a MOSFET driver from Micrel (now Microchip as well), the MIC4605. I used the single PWM input version but there is also a split LO/HI input version if you prefer that.
I’ll have a separate post for most of these individual blocks. The feed-forward control is there to ensure adequate line regulation. What that means is that when the input voltage from the rectifier and filter drops, the controller adjusts the duty cycle of the PWM signal before the output of the buck converter drops. This creates a more stable input to the last stage and removes the need to compensate for variable gain in the PWM controller (feed-forward essentially means that when you calculate the compensation network values for the buck, the open loop gain is constant over the input voltage range).
The block marked VOS takes the final output voltage and adds a constant offset so that the voltage drop across the LDO is a constant 0.5V.
This last stage is there to remove the low-frequency ripple from the buck converter and to combine the constant voltage and constant current modes (aka the current limit). It is made from a power LDO made with a N channel MOSFET and a opamp error amplifier (EA). The error amplifier input (the sigma block) is the summing node for the CV and CC modes. The CV mode is made with an opamp that converts a DAC voltage to a proportional current which is then mirrored with a precision current mirror and injected into the summing node. The CC mode is made with a opamp that takes a DAC voltage as a reference. Its feedback is the output voltage from a differential amplifier (CSA) that monitors a current shunt resistor at the input of the LDO .
The digital block is simply the XMEGA and auxiliary circuits. Its job is to generate clocks, DAC voltages and to read the output voltage and current for transmission to the interface (LCD and keypad). This is also where the over-voltage protection block sits. It’s made from a comparator that looks at the output voltage and compares it to a PWM DAC generated voltage (REF_OVV). Its output controls the output relay.
The next post will deal with the input rectifier, filter, buck converter and feed-forward blocks. Let me know your thoughts in the comments.