When discussing incremental encoders, you will often encounter the terms PPR, CPR, and LPR. These three parameters describe the resolution of an encoder—that is, how finely it can measure rotational movement. Understanding the difference between them is essential for correct motor selection and controller configuration.
Definitions
-
LPR (Lines Per Revolution): The number of physical lines (or slots) on the encoder disc. This is the most fundamental hardware parameter.
-
PPR (Pulses Per Revolution): The number of complete pulse cycles output by one channel (typically Channel A) per revolution. In most encoders, PPR equals LPR, so the two terms are often used interchangeably.
-
CPR (Counts Per Revolution): The total number of state changes (counts) detected by the controller per revolution after quadrature decoding. For a standard two-channel incremental encoder using 4× edge counting, CPR is four times the PPR.
How Quadrature Decoding Works
A standard two-phase incremental encoder outputs two square-wave signals, Channel A and Channel B, which are offset by a 90° phase shift (quadrature). Each channel outputs a digital signal (high = 1, low = 0). Because the two channels are in quadrature, each pulse cycle produces four distinct states: 00, 01, 11, and 10.
By detecting all rising and falling edges on both channels, the controller registers 4 counts per pulse cycle. This is known as 4× quadrature decoding (or 4× edge counting).
Example
Suppose an encoder disc has 1000 lines:
- LPR = 1000
- PPR = 1000 (one pulse cycle per line on Channel A)
- CPR = 1000 × 4 = 4000 (four counts per pulse cycle via quadrature decoding)
Summary of Relationships
For a standard two-channel incremental encoder with 4× quadrature decoding:
| Parameter | Meaning | Relationship |
|---|---|---|
| LPR | Physical lines on the disc | Base value |
| PPR | Pulse cycles per revolution (Channel A) | PPR = LPR |
| CPR | Counts per revolution after 4× decoding | CPR = 4 × PPR = 4 × LPR |
Important Notes
- The relationship CPR = 4 × PPR applies specifically to 4× quadrature decoding. Some controllers or encoders may use 1× or 2× decoding, which will yield different CPR values. Always refer to your encoder's datasheet and your controller's documentation to confirm the exact relationship for your application.
- When configuring motion controllers or drives, make sure you enter the correct CPR value so that position and speed calculations are accurate.
