AM64x MCU+ SDK  08.02.00
eqep/v0/eqep.h File Reference

Introduction

EQEP Driver API/interface file.

Go to the source code of this file.

EQEP Position Reset Mode

#define EQEP_POSITION_RESET_IDX   (0x0000)
 Reset position on index pulse. More...
 
#define EQEP_POSITION_RESET_MAX_POS   (0x1000)
 Reset position on maximum position. More...
 
#define EQEP_POSITION_RESET_1ST_IDX   (0x2000)
 Reset position on the first index pulse. More...
 
#define EQEP_POSITION_RESET_UNIT_TIME_OUT   (0x3000)
 Reset position on a unit time event. More...
 
typedef uint32_t eqepPositionResetMode_t
 Enum Values that can be passed to EQEP_setPositionCounterConfig() as the mode parameter. More...
 

EQEP CapPrescalar parameter

#define EQEP_CAPTURE_CLK_DIV_1   (0x00)
 CAPCLK = SYSCLKOUT/1. More...
 
#define EQEP_CAPTURE_CLK_DIV_2   (0x10)
 CAPCLK = SYSCLKOUT/2. More...
 
#define EQEP_CAPTURE_CLK_DIV_4   (0x20)
 CAPCLK = SYSCLKOUT/4. More...
 
#define EQEP_CAPTURE_CLK_DIV_8   (0x30)
 CAPCLK = SYSCLKOUT/8. More...
 
#define EQEP_CAPTURE_CLK_DIV_16   (0x40)
 CAPCLK = SYSCLKOUT/16. More...
 
#define EQEP_CAPTURE_CLK_DIV_32   (0x50)
 CAPCLK = SYSCLKOUT/32. More...
 
#define EQEP_CAPTURE_CLK_DIV_64   (0x60)
 CAPCLK = SYSCLKOUT/64. More...
 
#define EQEP_CAPTURE_CLK_DIV_128   (0x070)
 CAPCLK = SYSCLKOUT/128. More...
 
typedef uint32_t eqepCapClkPrescale_t
 Enum Values that can be passed to EQEP_setCaptureConfig() as the capPrescale parameter. More...
 

EQEP unit position event frequency

#define EQEP_UNIT_POS_EVNT_DIV_1   (0)
 UPEVNT = QCLK/1. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_2   (1)
 UPEVNT = QCLK/2. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_4   (2)
 UPEVNT = QCLK/4. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_8   (3)
 UPEVNT = QCLK/8. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_16   (4)
 UPEVNT = QCLK/16. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_32   (5)
 UPEVNT = QCLK/32. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_64   (6)
 UPEVNT = QCLK/64. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_128   (7)
 UPEVNT = QCLK/128. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_256   (8)
 UPEVNT = QCLK/256. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_512   (9)
 UPEVNT = QCLK/512. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_1024   (10)
 UPEVNT = QCLK/1024. More...
 
#define EQEP_UNIT_POS_EVNT_DIV_2048   (11)
 UPEVNT = QCLK/2048. More...
 
typedef uint32_t eqeqUpEvntPrescale_t
 Enum Values that can be passed to EQEP_setCaptureConfig() as the evntPrescaleparameter. More...
 

EQEP strobeSrc parameter

#define EQEP_STROBE_FROM_GPIO   (0)
 Strobe signal comes from GPIO. More...
 
#define EQEP_STROBE_OR_ADCSOCA   (2)
 Strobe signal is OR'd with ADCSOCA. More...
 
#define EQEP_STROBE_OR_ADCSOCB   (3)
 Strobe signal is OR'd with ADCSOCB. More...
 
typedef uint32_t eqepStrobeSource_t
 Enum Values that can be passed to EQEP_setStrobeSource() as the strobeSrc parameter. More...
 

EQEP qmaMode parameter

#define EQEP_QMA_MODE_BYPASS   (0)
 QMA module is bypassed. More...
 
#define EQEP_QMA_MODE_1   (1)
 QMA mode-1 operation is selected. More...
 
#define EQEP_QMA_MODE_2   (2)
 QMA mode-2 operation is selected. More...
 
typedef uint32_t eqepQmaMode_t
 Enum Values that can be passed to EQEP_setQMAModuleMode() as the qmaMode parameter. More...
 

EQEP emuMode parameter

#define EQEP_EMULATIONMODE_STOPIMMEDIATELY   (0)
 Counters stop immediately. More...
 
#define EQEP_EMULATIONMODE_STOPATROLLOVER   (1)
 Counters stop at period rollover. More...
 
#define EQEP_EMULATIONMODE_RUNFREE   (2)
 Counter unaffected by suspend. More...
 
typedef uint32_t eqepEmulationMode_t
 Enum Values that can be passed to EQEP_setEmulationMode() as the emuMode parameter. More...
 

Macros

EQEP Decoder Configuration

#define EQEP_CONFIG_QUADRATURE   (0x0000U)
 Values that can be passed to EQEP_setDecoderConfig() as the config parameter. More...
 
#define EQEP_CONFIG_CLOCK_DIR   (0x4000U)
 Quadrature-clock Direction-count mode. More...
 
#define EQEP_CONFIG_UP_COUNT   (0x8000U)
 Up-count mode, QDIR = 1. More...
 
#define EQEP_CONFIG_DOWN_COUNT   (0xC000U)
 Down-count mode, QDIR = 0. More...
 
#define EQEP_CONFIG_2X_RESOLUTION   (0x0000U)
 Resolution Count rising and falling edge. More...
 
#define EQEP_CONFIG_1X_RESOLUTION   (0x0800U)
 Resolution Count rising edge only. More...
 
#define EQEP_CONFIG_NO_SWAP   (0x0000U)
 Do not swap QEPA and QEPB. More...
 
#define EQEP_CONFIG_SWAP   (0x0400U)
 Swap QEPA and QEPB. More...
 
EQEP Compare Configuration

#define EQEP_COMPARE_NO_SYNC_OUT   (0x0000U)
 Values that can be passed to EQEP_setCompareConfig() as the config parameter. More...
 
#define EQEP_COMPARE_IDX_SYNC_OUT   (0x2000U)
 Sync output on index pin. More...
 
#define EQEP_COMPARE_STROBE_SYNC_OUT   (0x3000U)
 Sync output on strobe pin. More...
 
#define EQEP_COMPARE_NO_SHADOW   (0x0000U)
 Disable shadow of QPOSCMP. More...
 
#define EQEP_COMPARE_LOAD_ON_ZERO   (0x8000U)
 Load on QPOSCNT = 0. More...
 
#define EQEP_COMPARE_LOAD_ON_MATCH   (0xC000U)
 Load on QPOSCNT = QPOSCMP. More...
 
EQEP Interrupt Sources

#define EQEP_INT_GLOBAL   (0x0001U)
 Values that can be passed to EQEP_enableInterrupt(), EQEP_disableInterrupt(), and EQEP_clearInterruptStatus() as the intFlags parameter and returned by EQEP_clearInterruptStatus(). More...
 
#define EQEP_INT_POS_CNT_ERROR   (0x0002U)
 Position counter error. More...
 
#define EQEP_INT_PHASE_ERROR   (0x0004U)
 Quadrature phase error. More...
 
#define EQEP_INT_DIR_CHANGE   (0x0008U)
 Quadrature direction change. More...
 
#define EQEP_INT_WATCHDOG   (0x0010U)
 Watchdog time-out. More...
 
#define EQEP_INT_UNDERFLOW   (0x0020U)
 Position counter underflow. More...
 
#define EQEP_INT_OVERFLOW   (0x0040U)
 Position counter overflow. More...
 
#define EQEP_INT_POS_COMP_READY   (0x0080U)
 Position-compare ready. More...
 
#define EQEP_INT_POS_COMP_MATCH   (0x0100U)
 Position-compare match. More...
 
#define EQEP_INT_STROBE_EVNT_LATCH   (0x0200U)
 Strobe event latch. More...
 
#define EQEP_INT_INDEX_EVNT_LATCH   (0x0400U)
 Index event latch. More...
 
#define EQEP_INT_UNIT_TIME_OUT   (0x0800U)
 Unit time-out. More...
 
#define EQEP_INT_QMA_ERROR   (0x1000U)
 QMA error. More...
 
EQEP Get Module Status

#define EQEP_STS_UNIT_POS_EVNT   (0x0080U)
 Values that can be returned by EQEP_getStatus(). More...
 
#define EQEP_STS_DIR_ON_1ST_IDX   (0x0040U)
 Direction was clockwise on first index event. More...
 
#define EQEP_STS_DIR_FLAG   (0x0020U)
 Direction is CW (forward) More...
 
#define EQEP_STS_DIR_LATCH   (0x0010U)
 Direction was CW on index. More...
 
#define EQEP_STS_CAP_OVRFLW_ERROR   (0x0008U)
 Capture timer overflow. More...
 
#define EQEP_STS_CAP_DIR_ERROR   (0x0004U)
 Direction changed between position capture events. More...
 
#define EQEP_STS_1ST_IDX_FLAG   (0x0002U)
 First index pulse occurred. More...
 
#define EQEP_STS_POS_CNT_ERROR   (0x0001U)
 Position counter error. More...
 
EQEP Set Latch Mode

#define EQEP_LATCH_CNT_READ_BY_CPU   (0x0000U)
 Values that can be passed to EQEP_setLatchMode() as the latchMode parameter. More...
 
#define EQEP_LATCH_UNIT_TIME_OUT   (0x0004U)
 On position counter read. More...
 
#define EQEP_LATCH_RISING_STROBE   (0x0000U)
 On unit time-out event. More...
 
#define EQEP_LATCH_EDGE_DIR_STROBE   (0x0040U)
 On rising edge when clockwise, on falling when counter clockwise. More...
 
#define EQEP_LATCH_RISING_INDEX   (0x0010U)
 Index position counter latch event. More...
 
#define EQEP_LATCH_FALLING_INDEX   (0x0020U)
 On rising edge of index. More...
 
#define EQEP_LATCH_SW_INDEX_MARKER   (0x0030U)
 On falling edge of index. More...
 
EQEP Set Position Init Mode

On software index marker

#define EQEP_INIT_DO_NOTHING   (0x0000U)
 Values that can be passed to EQEP_setPositionInitMode() as the initMode parameter. More...
 
#define EQEP_INIT_RISING_STROBE   (0x0800U)
 Strobe events On rising edge of strobe. More...
 
#define EQEP_INIT_EDGE_DIR_STROBE   (0x0C00U)
 Strobe events On rising edge when clockwise, on falling when counter clockwise. More...
 
#define EQEP_INIT_RISING_INDEX   (0x0200U)
 Index events, On rising edge of index. More...
 
#define EQEP_INIT_FALLING_INDEX   (0x0300U)
 Index events, On falling edge of index. More...
 
EQEP get direction

#define EQEP_MOD_FORWARD_DIR   (1)
 Values that can be return from EQEP_getDirection() . More...
 
#define EQEP_MOD_BACKWARD_DIR   (-1)
 Moving in the reverse direction. More...
 
EQEP direction

#define EQEP_DIR_ANTI_CLOCKWISE   (CSL_EQEP_QEPSTS_TYPE1_QDF_VAL_QDF_COUNTERCLK)
 Moving in the anticlockwise direction. More...
 
#define EQEP_DIR_CLOCKWISE   (CSL_EQEP_QEPSTS_TYPE1_QDF_VAL_QDF_CLK)
 Moving in the clockwise direction. More...
 

Functions

void EQEP_enableModule (uint32_t baseAddr)
 Enables the eQEP module. More...
 
void EQEP_disableModule (uint32_t baseAddr)
 Disables the eQEP module. More...
 
void EQEP_setDecoderConfig (uint32_t baseAddr, uint16_t config)
 Configures eQEP module's quadrature decoder unit. More...
 
void EQEP_setPositionCounterConfig (uint32_t baseAddr, eqepPositionResetMode_t mode, uint32_t maxPosition)
 Configures eQEP module position counter unit. More...
 
uint32_t EQEP_getPosition (uint32_t baseAddr)
 Gets the current encoder position. More...
 
void EQEP_setPosition (uint32_t baseAddr, uint32_t position)
 Sets the current encoder position. More...
 
int32_t EQEP_getDirection (uint32_t baseAddr)
 Gets the current direction of rotation. More...
 
void EQEP_enableInterrupt (uint32_t baseAddr, uint16_t intFlags)
 Enables individual eQEP module interrupt sources. More...
 
void EQEP_disableInterrupt (uint32_t baseAddr, uint16_t intFlags)
 Disables individual eQEP module interrupt sources. More...
 
uint16_t EQEP_getEnabledInterrupt (uint32_t baseAddr)
 Get Enabled interrupts of eQEP module. More...
 
uint16_t EQEP_getInterruptStatus (uint32_t baseAddr)
 Gets the current interrupt status. More...
 
void EQEP_clearInterruptStatus (uint32_t baseAddr, uint16_t intFlags)
 Clears eQEP module interrupt sources. More...
 
void EQEP_forceInterrupt (uint32_t baseAddr, uint16_t intFlags)
 Forces individual eQEP module interrupts. More...
 
Bool EQEP_isErrorSet (uint32_t baseAddr)
 Gets the encoder error indicator. More...
 
uint32_t EQEP_getStatus (uint32_t baseAddr)
 Returns content of the eQEP module status register. More...
 
void EQEP_clearStatus (uint32_t baseAddr, uint16_t statusFlags)
 Clears selected fields of the eQEP module status register. More...
 
void EQEP_setCaptureConfig (uint32_t baseAddr, eqepCapClkPrescale_t capPrescale, eqeqUpEvntPrescale_t evntPrescale)
 Configures eQEP module edge-capture unit. More...
 
void EQEP_enableCapture (uint32_t baseAddr)
 Enables the eQEP module edge-capture unit. More...
 
void EQEP_disableCapture (uint32_t baseAddr)
 Disables the eQEP module edge-capture unit. More...
 
uint32_t EQEP_getCapturePeriod (uint32_t baseAddr)
 Gets the encoder capture period. More...
 
uint32_t EQEP_getCaptureTimer (uint32_t baseAddr)
 Gets the encoder capture timer value. More...
 
void EQEP_enableCompare (uint32_t baseAddr)
 Enables the eQEP module position-compare unit. More...
 
void EQEP_disableCompare (uint32_t baseAddr)
 Disables the eQEP module position-compare unit. More...
 
int32_t EQEP_setComparePulseWidth (uint32_t baseAddr, uint16_t cycles)
 Configures the position-compare unit's sync output pulse width. More...
 
void EQEP_enableUnitTimer (uint32_t baseAddr, uint32_t period)
 Enables the eQEP module unit timer. More...
 
void EQEP_disableUnitTimer (uint32_t baseAddr)
 Disables the eQEP module unit timer. More...
 
void EQEP_enableWatchdog (uint32_t baseAddr, uint16_t period)
 Enables the eQEP module watchdog timer. More...
 
void EQEP_disableWatchdog (uint32_t baseAddr)
 Disables the eQEP module watchdog timer. More...
 
void EQEP_setWatchdogTimerValue (uint32_t baseAddr, uint16_t value)
 Sets the eQEP module watchdog timer value. More...
 
uint32_t EQEP_getWatchdogTimerValue (uint32_t baseAddr)
 Gets the eQEP module watchdog timer value. More...
 
void EQEP_setPositionInitMode (uint32_t baseAddr, uint16_t initMode)
 Configures the mode in which the position counter is initialized. More...
 
void EQEP_setSWPositionInit (uint32_t baseAddr, Bool initialize)
 Sets the software initialization of the encoder position counter. More...
 
void EQEP_setInitialPosition (uint32_t baseAddr, uint32_t position)
 Sets the init value for the encoder position counter. More...
 
void EQEP_setLatchMode (uint32_t baseAddr, uint32_t latchMode)
 Configures the quadrature modes in which the position count can be latched. More...
 
uint32_t EQEP_getIndexPositionLatch (uint32_t baseAddr)
 Gets the encoder position that was latched on an index event. More...
 
uint32_t EQEP_getStrobePositionLatch (uint32_t baseAddr)
 Gets the encoder position that was latched on a strobe event. More...
 
uint32_t EQEP_getPositionLatch (uint32_t baseAddr)
 Gets the encoder position that was latched on a unit time-out event. More...
 
uint32_t EQEP_getCaptureTimerLatch (uint32_t baseAddr)
 Gets the encoder capture timer latch. More...
 
uint32_t EQEP_getCapturePeriodLatch (uint32_t baseAddr)
 Gets the encoder capture period latch. More...
 
void EQEP_setQMAModuleMode (uint32_t baseAddr, eqepQmaMode_t qmaMode)
 Set the quadrature mode adapter (QMA) module mode. More...
 
void EQEP_setStrobeSource (uint32_t baseAddr, eqepStrobeSource_t strobeSrc)
 Set the strobe input source of the eQEP module. More...
 
void EQEP_setEmulationMode (uint32_t baseAddr, eqepEmulationMode_t emuMode)
 Set the emulation mode of the eQEP module. More...
 
void EQEP_setCompareConfig (uint32_t baseAddr, uint16_t config, uint32_t compareValue, uint16_t cycles)
 Configures eQEP module position-compare unit. More...
 
void EQEP_setInputPolarity (uint32_t baseAddr, Bool invertQEPA, Bool invertQEPB, Bool invertIndex, Bool invertStrobe)
 Sets the polarity of the eQEP module's input signals. More...