AM243x Motor Control SDK  09.01.00
endat_drv.h File Reference

Go to the source code of this file.

Data Structures

struct  endat_clk_cfg
 
struct  flags
 
struct  id
 
struct  sn
 
struct  endat_priv
 
struct  cmd_supplement
 
struct  endat_data
 
struct  endat_position
 
struct  endat_addinfo
 
struct  endat_position_addinfo
 
struct  endat_addr_params
 
struct  endat_test_values
 
union  endat_format_data
 

Macros

#define ENDAT_MODE_SINGLE_CHANNEL_SINGLE_PRU   (0U)
 
#define ENDAT_MODE_MULTI_CHANNEL_SINGLE_PRU   (1U)
 
#define ENDAT_MODE_MULTI_CHANNEL_MULTI_PRU   (2U)
 
#define HWREG(x)    (*((volatile uint32_t *)(x)))
 
#define HWREGB(x)    (*((volatile uint8_t *)(x)))
 
#define HWREGH(x)    (*((volatile uint16_t *)(x)))
 
#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE0   0xA1
 
#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1   0xA3
 
#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE2   0xA5
 
#define ENDAT_TX_30BITS   (30 + 1)
 
#define ENDAT_TX_6BITS   (6 + 1)
 
#define ENDAT_RX_29BITS   29
 
#define ENDAT_RX_46BITS   46
 
#define APP_ENDAT_WORD_0   0
 
#define APP_ENDAT_WORD_1   1
 
#define APP_ENDAT_WORD_2   2
 
#define APP_ENDAT_WORD_3   3
 
#define APP_ENDAT_WORD_4   4
 
#define APP_ENDAT_WORD_5   5
 
#define APP_ENDAT_WORD_6   6
 
#define APP_ENDAT_WORD_7   7
 
#define APP_ENDAT_WORD_8   8
 
#define APP_ENDAT_WORD_9   9
 
#define APP_ENDAT_WORD_10   10
 
#define APP_ENDAT_WORD_11   11
 
#define APP_ENDAT_WORD_12   12
 
#define APP_ENDAT_WORD_13   13
 
#define APP_ENDAT_WORD_14   14
 
#define APP_ENDAT_WORD_15   15
 
#define APP_ENDAT_WORD_16   16
 
#define APP_ENDAT_WORD_17   17
 
#define APP_ENDAT_WORD_18   18
 
#define APP_ENDAT_WORD_19   19
 
#define ENDAT_NUM_BITS_POSITION_CRC   5
 
#define ENDAT_NUM_BITS_F1   1
 
#define ENDAT_NUM_BITS_F2   1
 
#define ENDAT_NUM_BITS_PARAMETER   16
 
#define ENDAT_NUM_BITS_ADDRESS   8
 
#define EINVAL   1
 
#define VALID_2_1_CMD(x)   (((x) == 1) || ((x) == 2) || ((x) == 3) || ((x) == 4) || ((x) == 5) || ((x) == 6) || ((x) == 7) )
 
#define VALID_2_2_CMD(x)   (((x) == 8) || ((x) == 9) || ((x) == 10) || ((x) == 11) || ((x) == 12) || ((x) == 13) || ((x) == 14))
 
#define ENDAT_NUM_ADDITIONAL_INFO_DUMMY_BIT   1
 
#define ENDAT_NUM_BYTES_ADDITIONAL_INFO   3
 
#define ENDAT_STATUS_WARN_SHIFT   7
 
#define ENDAT_STATUS_RM_SHIFT   6
 
#define ENDAT_STATUS_BUSY_SHIFT   5
 
#define ENDAT_STATUS_WARN_MASK   (1 << ENDAT_STATUS_WARN_SHIFT)
 
#define ENDAT_STATUS_RM_MASK   (1 << ENDAT_STATUS_RM_SHIFT)
 
#define ENDAT_STATUS_BUSY_MASK   (1 << ENDAT_STATUS_BUSY_SHIFT)
 
#define ENDAT_INFORMATION_MASK   0x1f
 
#define ENDAT_21_F1_SHIFT   31
 
#define ENDAT_21_F1_MASK   (1 << ENDAT_21_F1_SHIFT)
 
#define ENDAT_22_F1_SHIFT   ENDAT_21_F1_SHIFT
 
#define ENDAT_22_F1_MASK   (1 << ENDAT_22_F1_SHIFT)
 
#define ENDAT_F2_SHIFT   30
 
#define ENDAT_F2_MASK   (1 << ENDAT_F2_SHIFT)
 
#define ENDAT_ADDITIONAL_INFO_RX_BITS   30
 
#define ENDAT_SECTION2_MEMORY   0xBF
 
#define ENDAT_NUM_BITS_VALID_PAGE0_WORD13   6
 
#define ENDAT_NUM_BITS_VALID_PAGE1_WORD1   16
 
#define ENDAT_MRS_SHIFT_C7_C4   (4)
 
#define ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO1   (0x4)
 
#define ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO2   (0x5)
 
#define ENDAT_MRS_MASK_SELECT_ADDITIONAL_INFO   (0xF << ENDAT_MRS_SHIFT_C7_C4)
 
#define ENDAT_MRS_VAL_STOP_ADDITIONAL_INFO   (0xF)
 
#define ENDAT_MRS_MASK_STOP_ADDITIONAL_INFO   (ENDAT_MRS_VAL_STOP_ADDITIONAL_INFO)
 
#define ENDAT_GET_POS_MULTI_TURN(pos, priv)   (((pos) & (((unsigned long long) 1 << (priv)->pos_res) - 1)) >> (priv)->single_turn_res)
 
#define ENDAT_GET_POS_SINGLE_TURN(pos, priv)   ((pos) & (((unsigned long long) 1 << (priv)->single_turn_res) - 1))
 

Enumerations

enum  {
  linear, rotary, MENU_SAFE_POSITION, MENU_QUALITY_MONITORING,
  MENU_EVENTS, MENU_SUMMARY, MENU_ACC_ERR_CNT, MENU_RSSI,
  MENU_PC_SHORT_MSG_WRITE, MENU_PC_SHORT_MSG_READ, MENU_DIRECT_READ_RID0_LENGTH4, MENU_DIRECT_READ_RID81_LENGTH8,
  MENU_DIRECT_READ_RID81_LENGTH2, MENU_INDIRECT_WRITE_RID0_LENGTH8_OFFSET0, MENU_INDIRECT_WRITE_RID0_LENGTH8, MENU_HDSL_REG_INTO_MEMORY,
  MENU_LIMIT, MENU_INVALID
}
 

Macro Definition Documentation

◆ ENDAT_MODE_SINGLE_CHANNEL_SINGLE_PRU

#define ENDAT_MODE_SINGLE_CHANNEL_SINGLE_PRU   (0U)

◆ ENDAT_MODE_MULTI_CHANNEL_SINGLE_PRU

#define ENDAT_MODE_MULTI_CHANNEL_SINGLE_PRU   (1U)

◆ ENDAT_MODE_MULTI_CHANNEL_MULTI_PRU

#define ENDAT_MODE_MULTI_CHANNEL_MULTI_PRU   (2U)

◆ HWREG

#define HWREG (   x)     (*((volatile uint32_t *)(x)))

◆ HWREGB

#define HWREGB (   x)     (*((volatile uint8_t *)(x)))

◆ HWREGH

#define HWREGH (   x)     (*((volatile uint16_t *)(x)))

◆ MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE0

#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE0   0xA1

◆ MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1

#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE1   0xA3

◆ MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE2

#define MRS_CODE_PARAM_ENCODER_MANUFACTURER_PAGE2   0xA5

◆ ENDAT_TX_30BITS

#define ENDAT_TX_30BITS   (30 + 1)

◆ ENDAT_TX_6BITS

#define ENDAT_TX_6BITS   (6 + 1)

◆ ENDAT_RX_29BITS

#define ENDAT_RX_29BITS   29

◆ ENDAT_RX_46BITS

#define ENDAT_RX_46BITS   46

◆ APP_ENDAT_WORD_0

#define APP_ENDAT_WORD_0   0

◆ APP_ENDAT_WORD_1

#define APP_ENDAT_WORD_1   1

◆ APP_ENDAT_WORD_2

#define APP_ENDAT_WORD_2   2

◆ APP_ENDAT_WORD_3

#define APP_ENDAT_WORD_3   3

◆ APP_ENDAT_WORD_4

#define APP_ENDAT_WORD_4   4

◆ APP_ENDAT_WORD_5

#define APP_ENDAT_WORD_5   5

◆ APP_ENDAT_WORD_6

#define APP_ENDAT_WORD_6   6

◆ APP_ENDAT_WORD_7

#define APP_ENDAT_WORD_7   7

◆ APP_ENDAT_WORD_8

#define APP_ENDAT_WORD_8   8

◆ APP_ENDAT_WORD_9

#define APP_ENDAT_WORD_9   9

◆ APP_ENDAT_WORD_10

#define APP_ENDAT_WORD_10   10

◆ APP_ENDAT_WORD_11

#define APP_ENDAT_WORD_11   11

◆ APP_ENDAT_WORD_12

#define APP_ENDAT_WORD_12   12

◆ APP_ENDAT_WORD_13

#define APP_ENDAT_WORD_13   13

◆ APP_ENDAT_WORD_14

#define APP_ENDAT_WORD_14   14

◆ APP_ENDAT_WORD_15

#define APP_ENDAT_WORD_15   15

◆ APP_ENDAT_WORD_16

#define APP_ENDAT_WORD_16   16

◆ APP_ENDAT_WORD_17

#define APP_ENDAT_WORD_17   17

◆ APP_ENDAT_WORD_18

#define APP_ENDAT_WORD_18   18

◆ APP_ENDAT_WORD_19

#define APP_ENDAT_WORD_19   19

◆ ENDAT_NUM_BITS_POSITION_CRC

#define ENDAT_NUM_BITS_POSITION_CRC   5

◆ ENDAT_NUM_BITS_F1

#define ENDAT_NUM_BITS_F1   1

◆ ENDAT_NUM_BITS_F2

#define ENDAT_NUM_BITS_F2   1

◆ ENDAT_NUM_BITS_PARAMETER

#define ENDAT_NUM_BITS_PARAMETER   16

◆ ENDAT_NUM_BITS_ADDRESS

#define ENDAT_NUM_BITS_ADDRESS   8

◆ EINVAL

#define EINVAL   1

◆ VALID_2_1_CMD

#define VALID_2_1_CMD (   x)    (((x) == 1) || ((x) == 2) || ((x) == 3) || ((x) == 4) || ((x) == 5) || ((x) == 6) || ((x) == 7) )

◆ VALID_2_2_CMD

#define VALID_2_2_CMD (   x)    (((x) == 8) || ((x) == 9) || ((x) == 10) || ((x) == 11) || ((x) == 12) || ((x) == 13) || ((x) == 14))

◆ ENDAT_NUM_ADDITIONAL_INFO_DUMMY_BIT

#define ENDAT_NUM_ADDITIONAL_INFO_DUMMY_BIT   1

◆ ENDAT_NUM_BYTES_ADDITIONAL_INFO

#define ENDAT_NUM_BYTES_ADDITIONAL_INFO   3

◆ ENDAT_STATUS_WARN_SHIFT

#define ENDAT_STATUS_WARN_SHIFT   7

◆ ENDAT_STATUS_RM_SHIFT

#define ENDAT_STATUS_RM_SHIFT   6

◆ ENDAT_STATUS_BUSY_SHIFT

#define ENDAT_STATUS_BUSY_SHIFT   5

◆ ENDAT_STATUS_WARN_MASK

#define ENDAT_STATUS_WARN_MASK   (1 << ENDAT_STATUS_WARN_SHIFT)

◆ ENDAT_STATUS_RM_MASK

#define ENDAT_STATUS_RM_MASK   (1 << ENDAT_STATUS_RM_SHIFT)

◆ ENDAT_STATUS_BUSY_MASK

#define ENDAT_STATUS_BUSY_MASK   (1 << ENDAT_STATUS_BUSY_SHIFT)

◆ ENDAT_INFORMATION_MASK

#define ENDAT_INFORMATION_MASK   0x1f

◆ ENDAT_21_F1_SHIFT

#define ENDAT_21_F1_SHIFT   31

◆ ENDAT_21_F1_MASK

#define ENDAT_21_F1_MASK   (1 << ENDAT_21_F1_SHIFT)

◆ ENDAT_22_F1_SHIFT

#define ENDAT_22_F1_SHIFT   ENDAT_21_F1_SHIFT

◆ ENDAT_22_F1_MASK

#define ENDAT_22_F1_MASK   (1 << ENDAT_22_F1_SHIFT)

◆ ENDAT_F2_SHIFT

#define ENDAT_F2_SHIFT   30

◆ ENDAT_F2_MASK

#define ENDAT_F2_MASK   (1 << ENDAT_F2_SHIFT)

◆ ENDAT_ADDITIONAL_INFO_RX_BITS

#define ENDAT_ADDITIONAL_INFO_RX_BITS   30

◆ ENDAT_SECTION2_MEMORY

#define ENDAT_SECTION2_MEMORY   0xBF

◆ ENDAT_NUM_BITS_VALID_PAGE0_WORD13

#define ENDAT_NUM_BITS_VALID_PAGE0_WORD13   6

◆ ENDAT_NUM_BITS_VALID_PAGE1_WORD1

#define ENDAT_NUM_BITS_VALID_PAGE1_WORD1   16

◆ ENDAT_MRS_SHIFT_C7_C4

#define ENDAT_MRS_SHIFT_C7_C4   (4)

◆ ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO1

#define ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO1   (0x4)

◆ ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO2

#define ENDAT_MRS_VAL_C7_C4_SELECT_ADDITIONAL_INFO2   (0x5)

◆ ENDAT_MRS_MASK_SELECT_ADDITIONAL_INFO

#define ENDAT_MRS_MASK_SELECT_ADDITIONAL_INFO   (0xF << ENDAT_MRS_SHIFT_C7_C4)

◆ ENDAT_MRS_VAL_STOP_ADDITIONAL_INFO

#define ENDAT_MRS_VAL_STOP_ADDITIONAL_INFO   (0xF)

◆ ENDAT_MRS_MASK_STOP_ADDITIONAL_INFO

#define ENDAT_MRS_MASK_STOP_ADDITIONAL_INFO   (ENDAT_MRS_VAL_STOP_ADDITIONAL_INFO)

◆ ENDAT_GET_POS_MULTI_TURN

#define ENDAT_GET_POS_MULTI_TURN (   pos,
  priv 
)    (((pos) & (((unsigned long long) 1 << (priv)->pos_res) - 1)) >> (priv)->single_turn_res)

◆ ENDAT_GET_POS_SINGLE_TURN

#define ENDAT_GET_POS_SINGLE_TURN (   pos,
  priv 
)    ((pos) & (((unsigned long long) 1 << (priv)->single_turn_res) - 1))

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
linear 
rotary 
MENU_SAFE_POSITION 
MENU_QUALITY_MONITORING 
MENU_EVENTS 
MENU_SUMMARY 
MENU_ACC_ERR_CNT 
MENU_RSSI 
MENU_PC_SHORT_MSG_WRITE 
MENU_PC_SHORT_MSG_READ 
MENU_DIRECT_READ_RID0_LENGTH4 
MENU_DIRECT_READ_RID81_LENGTH8 
MENU_DIRECT_READ_RID81_LENGTH2 
MENU_INDIRECT_WRITE_RID0_LENGTH8_OFFSET0 
MENU_INDIRECT_WRITE_RID0_LENGTH8 
MENU_HDSL_REG_INTO_MEMORY 
MENU_LIMIT 
MENU_INVALID