ICC or Inrush Current Controller

The Powersupply Controller board, or as I call it the "Inrush Controller Card", ICC for short, performs a number of functions.
There are three torroid transformers that have to be switched on, one for the low amp, one for the mid- and high amp and one for the auxilliary supplies.
They are all switched on and off by by means of relais.
In order to avoid too large inrush currents, the transformers are switched on and off at the zero crossing of the mains voltage.
After the power amp torroids are switched on, the large 10.000uF buffer caps of the power amps are charged during the first period of the 50Hz mains sine wave.
When not limited the current peaks can reach values of tens of amps in the mains line.
For that reason are inrush limiting resistors of 47 Ohms inserted in the mains connections to the power amp torroids during start up.
Often a simple NTC is used in the mains that is permanently there but I don't like to be dependent on the temperature of a resistor for inrush control.
The Auxilliary torroid is switched on first without an inrush limiting resistor. The buffer caps to be charged here are relatively small.
After a one second delay the low amp torroid is swiched on via the inrush current limiting resistor.
One second later the mid-high amp torroid is switched on also via its inrush current limiting resistor and again one second later, when all power amp buffer caps are charged the inrush limiting resistors are short circuited.
Then one second later when all amplifiers are stable the Power-OK signal is activated that switches all audio relais on driving the speakers.

On the PCB of the ICC is a small 2.3VA transformer that is always ON and provides power for a MSP430F2011 micro controller.
This microcontroller continuously monitors the 50Hz mains and initiates actions based on the 50Hz mains zero crossing.
If there the mains fails (power cord pulled out), the micro reacts within 60mS by switching off all audio relais to avoid any audible plops or clicks in the speakers.
Since the relais have a relative long time between coil activation and actual closure or opening of the contact, a small "relais test routine" was added in the micro's firmware to determine the relais latency both at switch ON and OFF.
This latency is timed after a zero crossing to activate or de-activate any relais precisely at the next mains zero crossing.
Once the correct latency is determined this test routing is taken out of the main software loop of the micro.
When the ICC is in its sleep condition, a front side LED is activated for 50mS every 20 seconds to indicate the ICC is OK.
There are two ways to start the ICC. One is by a push button and the second is by an audio signal input of >1mV eff.
If audio activity is detected a number of audio signal cycles are counted before the ICC springs into action.
Whilst in sleep this audio signal cycle counter is periodically reset to clear out any accumulation of artefacts that may lead to an erronous ICC start.
The ICC can also be powered down with the same push button or after a 5 minute timeout after no audio signal is sent to the system.

The pushbutton connection is also used by the Amp Fan Controller to indicate an emergency shutdown. It emulates a push button closure (short to ground).
This is interpreted by the ICC as a "normal" system shut down but as long as the push button is grounded the ICC keeps the auxilliary powersupply alive in case the fan is active due to an elevated heatsink temperature. Only when the heatsink temperature returns to its nominal value (<35C) the
push button contact is released and the ICC als switches the auxilliary supply off and enters sleep mode again.
The complete firmware fits into the 4K FLASH memory of the MSP430 and can be updated via a so called "Spy By Wire" emulation connection.