8-bit PIC® MCU Slope Compensation
What is Slope Compensation?
Current-controlled Switch-Mode Power Supplies (SMPS) allow pulse-by-pulse current control and monitoring. This makes them more reliable and more robust than voltage-controlled supplies. A Pulse Width Modulation (PWM) signal can control the output current through feedback from both the switching circuit and the load circuitry. One issue with current-controlled SMPS is that at duty cycles of 50% or greater, the circuit can become unstable, oscillating at half of the switching frequency due to sudden variations in the load current. This is where slope compensation is used to filter out or dampen, the feedback signal variability and restore stable operation.
Example
In an application where a load, such as a bank of LEDs, needs to be driven by a switching boost circuit, a typical schematic will look like the setup below. A Complementary Output Generator (COG) can control the PWM signal within a PIC® MCU device. Feedback at both the transistor switching control and the output load signal can control the logic circuitry to vary the duty cycle of the PWM signal. Controlling the PWM duty cycle will control the output current.
At PWM duty cycles above 50 percent, the load current feedback variability can cause the PWM signal to vary considerably. This can cause the PWM signal to vary in frequency and randomly produce instability in the inductor-driven boost circuit.
This is where slope compensation added between the switching current sensing and the load current sensing can help to dampen out the variability. The slope compensation acts as a buffer to supply or reduce voltage to the sensing circuitry to reduce variability and stabilize the PWM signal while maintaining a constant current supply.
The result is a PWM waveform that is more uniform (blue waveform below) with far less variability in the switching frequency and a more smoothly operating SMPS design.
Slope Compensation Module
The Slope Compensation (SC) module is designed to provide the necessary slope compensation for fixed frequency, continuous current, and current mode switched power supplies. The SC module in a PIC MCU device works by quickly discharging an internal capacitor at the beginning of each PWM period of the switching power supply control signal. An internal current sink charges this capacitor at a programmable rate. As the capacitor charges, the capacitor voltage is subtracted from the current reference voltage, producing a linear voltage decay at the required rate.
The PIC16F753 is an example of a PIC MCU device with slope compensation included.
The core of the SC module contains the following:
- On-chip capacitor in series with the voltage source
- Shorting switch across the capacitor
- Calibrated current sink, and
- One-shot pulse generator to ensure the switch is closed long enough to completely discharge the capacitor
Connections
The input to the SC module can be connected to the following signals:
The output of the SC module can be connected to the following signals:
Using the Slope Compensation Module
The Slope Compensation Control 0 (SLPCCON0) register controls the operation of the module.
SLPCCON1: SLOPE COMPENSATION CONTROL 0 REGISTER
The SC module can be enabled or disabled by the SCxEN bit.
The SC can act on a signal crossing the rising or falling threshold. This is set with the SCxPOL bit.
The output connection of the SC module is selected by the SCxTSS bits.
The input connection to the SC module is selected by the SCxINS bit.
Setting the Slope Compensation Rate
To set the Slope Compensator rate, the input reference voltage and PWM period must first be determined.
The input reference voltage is simply set to the target circuit peak current sense voltage at the load sensing circuit. The PWM period is simply the inverse of the PWM drive frequency.
The slope compensation output voltage starts at the input reference voltage and should fall at a rate of less than half the target circuit current sense voltage rate of rise. Therefore, the compensator slope, expressed as volts per microsecond, can be computed as shown in the following equation.
This calculated slope compensator value is loaded into the Slope Compensator Current Sink Set (SCxISET) bits of the SLPCCON1 register per the table of values. The range of values can also be adjusted with the slope compensator range bit.
SLPCCON1: SLOPE COMPENSATION CONTROL 1 REGISTER
The SCxRNG bit allows you to select the range for the slope of the compensation.
The SCxISET bits set the slope rate value per the following chart:
Slope Compensation Module Example
Using a PIC16F753 in a simple boost converter circuit, the SLPCCON0 and SLCCON1 registers need to be set up to use the SC module.
The SC module is enabled by setting the SCxEN bit to 1.
The SC module will react to the falling threshold signal from the output of the op-amp so the SCxPOL bit is set to 0.
The output connection of the SC module is connected to the Comparator 1 input so the SCxTSS bits are set to 10h.
The input connection to the SC module is the output of the op-amp, which is the same as the SLPC1IN selection so the SCxINS bit is set to 0.
When the circuit is using an R3 value of 1 ohm for current sense resistor and the peak current is 1A, then the peak current expressed as a voltage (VREF) is 1V. If the PWM signal is running at 1 MHz, then the period is 1 microsecond. Therefore, the desired slope is 0.5 Volts/microsecond as seen in the equation below:
According to the SCxISET bits chart, 0.5 V/µs correlates directly to the SCxISET value of 6h, so that value is stored in the SCxISET bits of the SLPCCON1 register. Since this is a direct correlation we can set the range setting to SCxRNG = 0.