 |
AM263Px Motor Control SDK
2025.00.00
|
|
Go to the documentation of this file.
44 #include <drivers/pruicss.h>
61 #define BISSC_DEFAULT_CMD_PROCESS_DELAY_US (1000U)
68 #define BISSC_DEFAULT_FW_WAIT_DELAY_US (1000U)
80 #define BISSC_DEFAULT_MAX_WAIT_LOOP_COUNT (5U)
83 #define BISSC_DEFAULT_ENCODER_TIMEOUT_US (40U)
90 #define BISSC_MODE_SINGLE_CHANNEL_SINGLE_PRU (0U)
97 #define BISSC_MODE_MULTI_CHANNEL_SINGLE_PRU (1U)
106 #define BISSC_MODE_MULTI_CHANNEL_MULTI_PRU (2U)
109 #define BISSC_MAX_PROC_DELAY_1MHZ 40
112 #define BISSC_MAX_PROC_DELAY_2MHZ 80
115 #define BISSC_MAX_PROC_DELAY_5MHZ 200
118 #define BISSC_MAX_PROC_DELAY_8MHZ 320
121 #define BISSC_MAX_PROC_DELAY_10MHZ 400
124 #define BISSC_CTS_BIT 1
127 #define BISSC_ENC_ID_LEN 3
130 #define BISSC_ENC_ID_MASK 0x7
133 #define BISSC_REG_ADDR_LEN 7
136 #define BISSC_REG_ADDR_MASK 0x7F
139 #define BISSC_RWS_LEN 3
142 #define BISSC_RWS_MASK 0x7
145 #define BISSC_CTRL_READ_ACCESS 0x5
148 #define BISSC_CTRL_WRITE_ACCESS 0x3
151 #define BISSC_REG_DATA_LEN 8
154 #define BISSC_REG_DATA_MASK 0xFF
161 #define BISSC_CTRL_STOP_LEN 2
168 #define BISSC_RX_SAMPLE_SIZE 7
171 #define BISSC_RX_SAMPLE_SIZE_6X 5
174 #define BISSC_RX_SAMPLE_SIZE_4X 3
180 #define BISSC_POS_CRC_LEN 6
183 #define BISSC_EW_LEN 2
189 #define BISSC_CTRL_CMD_CRC_LEN 4
192 #define BISSC_CTRL_CMD_CRC_MASK 0xF
199 #define BISSC_POS_DATA_LEN_DEFAULT 12
205 #define BISSC_SAFETY_CRC_LEN 16
212 #define BISSC_SIGN_OF_LIFE_LEN 6
220 #define BISSC_MAX_FRAME_SIZE 64
227 #define BISSC_RX_ENABLE_FRACTIONAL_DIV (1<<15)
230 #define BISSC_FREQ_1MHZ 1
233 #define BISSC_FREQ_2MHZ 2
236 #define BISSC_FREQ_5MHZ 5
239 #define BISSC_FREQ_8MHZ 8
242 #define BISSC_FREQ_10MHZ 10
248 #define BISSC_FIFO_BIT_IDX_8X_OS 4
251 #define BISSC_FIFO_BIT_IDX_6X_OS 3
254 #define BISSC_FIFO_BIT_IDX_4X_OS 2
257 #define BISSC_CLEAR_STATUS_FLAG 0x0
260 #define BISSC_SET_STATUS_FLAG 0x1
266 #define BISSC_PRU_CORE_CLK_FREQ_200MHZ 200
272 #define BISSC_PRU_CORE_CLK_FREQ_300MHZ 300
275 #define BISSC_PRU_UART_CLK_FREQ_160MHZ 160
278 #define BISSC_PRU_UART_CLK_FREQ_192MHZ 192
282 #define BISSC_VALID_BIT_IDX (24U)
289 #define BISSC_CLOCK_FRACTIONAL_DIVIDER (1.5)
296 #define BISSC_MHZ_TO_HZ (1000000U)
302 #define BISSC_EW_FIELD_MASK (0x03U)
305 #define BISSC_6BIT_FIELD_MASK (0x3FU)
312 #define BISSC_SAFETY_CRC_FIELD_MASK (0xFFFFU)
319 #define BISSC_OPMODE_PERIODIC_CMP (0x0U)
326 #define BISSC_OPMODE_HOST_TRIGGER (0x1U)
333 #define BISSC_OPMODE_PERIODIC_CAP (0x2U)
336 #define BISSC_MEASURE_PROC_DELAY_DISABLE (0x0U)
339 #define BISSC_MEASURE_PROC_DELAY_ENABLE (0x1U)
345 #define BISSC_CFG_REG_SIZE (4U)
346 #define BISSC_CSL_ICSS_PR1_IEP0_SLV_CAP0_REG0 (CSL_ICSS_PR1_IEP0_SLV_CAP_CFG_REG + 2U*BISSC_CFG_REG_SIZE)
351 #define BISSC_8_BYTE_REG_OFFSET (8U)
354 #define BISSC_IEP_MAX_CAP_EVENT (0x8U)
356 #define BISSC_IEP_MAX_CMP_EVENT (0x10U)
370 typedef struct bissc_clk_cfg_s
402 typedef struct bissc_position_info_s
427 typedef struct bissc_control_info_s
444 typedef struct bissc_params_s
478 typedef struct bissc_priv_s
603 typedef struct bissc_attrs_s
692 typedef struct bissc_config_s
uint8_t is_continuous_mode
Definition: bissc_drv.h:522
PRUICSS_Handle pruicss_handle
Definition: bissc_drv.h:592
uint8_t instance
Definition: bissc_drv.h:605
uint32_t cmd_process_delay_us
Definition: bissc_drv.h:575
uint8_t pruicss_slice
Definition: bissc_drv.h:620
uint32_t fw_wait_delay_us
Definition: bissc_drv.h:580
uint32_t baud_rate
Definition: bissc_drv.h:569
PRUICSS_Handle pruicss_handle
Definition: bissc_drv.h:446
uint32_t cmd_process_delay_us
Definition: bissc_drv.h:449
uint8_t mode
Definition: bissc_drv.h:609
bissc_priv * priv
Definition: bissc_drv.h:694
bissc_config * bissc_handle
BiSS-C handle type.
Definition: bissc_drv.h:711
uint64_t raw_data
Definition: bissc_drv.h:527
BiSS-C private data structure (runtime state and configuration)
Definition: bissc_drv.h:479
Structure defining BiSS-C PRU-ICSS shared memory interface.
Definition: bissc_interface.h:173
uint32_t max_wait_loop_count
Definition: bissc_drv.h:460
uint8_t cmd_rcv_crc
Definition: bissc_drv.h:431
uint16_t tx_div
Definition: bissc_drv.h:377
uint8_t is_open
Definition: bissc_drv.h:480
uint32_t fw_wait_delay_us
Definition: bissc_drv.h:454
uint32_t uart_clk_freq
Definition: bissc_drv.h:658
Structure defining BiSS-C Channel specific control communication(ctrl) results.
Definition: bissc_drv.h:428
uint32_t core_clk_freq
Definition: bissc_drv.h:655
uint32_t iep_clk_freq
Definition: bissc_drv.h:661
uint16_t is_core_clk
Definition: bissc_drv.h:388
const bissc_attrs * attrs
Definition: bissc_drv.h:699
uint8_t iep_instance
Definition: bissc_drv.h:670
#define BISSC_NUM_CH_PER_SLICE_MAX
Maximum number of BiSS-C channels per PRU-ICSS slice (3 channels: ch0, ch1, ch2)
Definition: bissc_interface.h:54
uint16_t rx_div_attr
Definition: bissc_drv.h:382
uint8_t channel1_enabled
Definition: bissc_drv.h:641
uint16_t baud_rate
Definition: bissc_drv.h:651
#define BISSC_NUM_ENCODERS_IN_DAISY_CHAIN_MAX
Maximum number of BiSS-C encoders in daisy chain configuration per channel (3 encoders)
Definition: bissc_interface.h:61
uint8_t total_channels
Definition: bissc_drv.h:647
void * iep_base_addr
Definition: bissc_drv.h:679
Structure defining BiSS-C initialization parameters.
Definition: bissc_drv.h:445
Structure defining BiSS-C Position data results.
Definition: bissc_drv.h:403
uint8_t channel2_enabled
Definition: bissc_drv.h:644
uint8_t load_share_enabled
Definition: bissc_drv.h:626
bissc_pruicss_xchg * pruicss_xchg
Definition: bissc_drv.h:502
Structure defining BiSS-C attributes (compile-time/SysConfig configuration data)
Definition: bissc_drv.h:604
uint16_t is_core_clk
Definition: bissc_drv.h:664
uint8_t pruicss_instance
Definition: bissc_drv.h:615
Structure defining BiSS-C clock configuration for selected frequency.
Definition: bissc_drv.h:371
uint8_t cmd_otf_crc
Definition: bissc_drv.h:433
uint8_t channel_mask
Definition: bissc_drv.h:631
uint32_t max_wait_loop_count
Definition: bissc_drv.h:585
uint8_t cmd_result
Definition: bissc_drv.h:429
Structure defining BiSS-C configuration handle.
Definition: bissc_drv.h:693
uint8_t channel0_enabled
Definition: bissc_drv.h:638
uint16_t rx_div
Definition: bissc_drv.h:372