The YAP controller
Yet Another Poweramp
Another way to skin the cat
The PGP amp controller was built around an "analog computer" that implemented the power sequencing, overload protection, output control and clipping indicator. While it works perfectly fine, it's a rather complex piece of analog electronics, making use of some specialized ICs (like the MX536 precision rectifier and the uPC1237 speaker controller). It was about the time to bring this controller to the Digital Age.

The requirements for the controller were outlined as follows:

- Supervise the L/R power supplies.
To account for the mains variations and power supply sag, supply voltages are -30% - +10% the nominal values. Any values out of this range, or a supply voltage imbalance of more than +/-10% should trigger a full amp shutdown

- Supervise the output DC offset
Any output offset larger than +/-1V should trigger a load disconnect.

- Supervise the heatsink temperature.
A temperature in excess of 80 degrees triggers the corresponding (L/R) fan. The fan control has a 10 degress hysteresis, to avoid fan chattering, therefore the fans shut down when the heatsonk temperature reaches 70 degrees.

- Supervise and serve an external shutdown request
This input can be fed by a short circuit protection or any other logic level signal.

- Provide power and output sequencing and control.
This functionality implements the core logic. Power supply relays are connecting the power supply to the amps, only if the supply voltages are in tolerance. It also delays routing the amps outputs to the output jacks by four seconds at power on and disconnects the load two seconds before shutting down. A standby mode is implemented, with almost zero power consumption,

- Display the output level via a bar graph logarithmic peak meter. Peak meters are more efficient in revealing overload/clipping conditions compared to long time constant analog or digital average meters.

A dedicated digital board was designed and implemented around an Atmel ATMEGA1281 MCU. This MCU has 8 A/D channels, all used (four for PS voltages supervision, two for output offset supervision and two for the digital peak level meter). Outside the MCU surrounding logic, the board also implements the analog signal conditioning (essentially full wave rectifiers) and the power relays interface. The digital board also holds a DC/DC convertor that generates +/-12V starting from the +VCC power supply raw output (or any other +36V...+75V raw supply). This is accomplished by a TI SMPS module - if you don't have or don't want to use such a module, just feed the board directly from a +/-12V power supply. You also have to provide the right voltage for the relays you are using, the max value is 48V, defined by the open collector output buffer.

The MCU code takes about 64Kb of flash, mostly taken by the graphic and text resources. The code is entirely non-blocking interrupt driven, providing the required speed to as much as possible shorten any catastrophic condition before a full shutdown occurs. The software includes a reusable driver layer that helps customizing the code to any particular needs.

The temperature controller part uses two (one for each channel) Maxim/Dallas DS18S20 1-wire parasite power digital thermometers.

The display is a monochrome (actually blue negative) 240x128 LCD module using the standard Toshiba T6963 controller.

You can download the controller schematics and the controller PCB Gerber files.