1.12.18 Quadrature Encoder Interface (QEI)
The Quadrature Encoder Interface (QEI) module provides the interface to incremental encoders for obtaining mechanical position data. This module provides below features:
-
Four input pins: two phase signals, an index pulse and a home pulse
-
Programmable digital noise filters on inputs
-
Count direction status
-
Index (INDX) pulse to reset the position counter
-
General purpose 32-bit Timer/Counter mode
-
Interrupts generated by QEI or counter events
-
32-bit velocity counter
-
32-bit position counter
-
32-bit index pulse counter
-
32-bit interval timer
-
32-bit position Initialization/Capture register
-
32-bit Compare Less Than and Greater Than registers
Using The Library
Quadrature encoder signals Phase A, Phase B and an optional index signal and an optional home signal are connected to the QEI peripheral. The quadrature decoder in the QEI peripheral processes these signals with an internal counter to get the position, velocity and revolution count. The quadrature decoder increments or decrements the 32-bit Up/Down Counter for each change of state. The counter increments when QEA leads QEB and decrements when QEB leads QEA
Library Interface
Peripheral library provides the following interfaces:
Functions
Name | Description |
---|---|
QEIx_Initialize | Initializes given instance of QEI peripheral in quadrature mode |
QEIx_Start | Starts the given QEI instance counter |
QEIx_Stop | Stops the given QEI instance counter |
QEIx_PositionGet | Reads the position from the quadrature encoder |
QEIx_VelocityGet | Reads the velocity counter from the quadrature encoder |
QEIx_RevolutionsGet | Reads the number of revolutions tracked by the quadrature encoder |
QEIx_CallbackRegister | Registers the function to be called from interrupt |
Data types and constants
Name | Type | Description |
---|---|---|
QEI_INTERRUPT | Enum | Identifies Quadrature mode interrupt source |
QEI_STATUS | Enum | Identifies Quadrature mode interrupt source mask |
QEI_CALLBACK | Typedef | Defines the function pointer data type and function signature for the qei peripheral callback function |