8-bit PIC® MCU Slope Compensation

Last modified by Microchip on 2023/11/10 11:10

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.


slope compensation

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.

slope compensation

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.

slope compensation

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

Back to top

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.

slope compensation module1

Block Diagram of the SC Circuit

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

Back to top


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:

Back to top

Using the Slope Compensation Module

The Slope Compensation Control 0 (SLPCCON0) register controls the operation of the module.

slope compensation



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.

Back to top

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.

compensator slope, expressed as volts per microsecond

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.

Slope Compensator Current Sink Set (SCxISET)Slope Compensator Current Sink Set (SCxISET)


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:


Back to top

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.

Slope Compensation Module Example

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:

SCxISET bits chart

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.

Back to top

Learn More

Back to top