HPM SDK
HPMicro Software Development Kit
hpm_sei_drv.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef HPM_SEI_DRV_H
9 #define HPM_SEI_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_soc_feature.h"
13 #include "hpm_sei_regs.h"
14 
27 typedef enum {
31 
35 typedef enum {
39 
43 typedef enum {
48 
52 typedef enum {
56 
60 typedef enum {
64 
68 typedef enum {
73 
77 typedef enum {
81 
85 typedef enum {
89 
93 typedef enum {
99 
103 typedef enum {
113 typedef enum {
140 } sei_irq_event_t;
145 typedef enum {
172 } sei_dma_en_t;
177 #define SEI_SELECT_CMD true
178 #define SEI_SELECT_DATA false
183 #define SEI_DAT_CMD (1UL)
184 #define SEI_DATA_CONST_0 (30UL)
185 #define SEI_DATA_CONST_1 (31UL)
186 
190 #define SEI_INSTR_OP_HALT 0u
191 #define SEI_INSTR_OP_JUMP 1u
192 #define SEI_INSTR_OP_SEND_WDG 2u
193 #define SEI_INSTR_OP_SEND 3u
194 #define SEI_INSTR_OP_WAIT_WDG 4u
195 #define SEI_INSTR_OP_WAIT 5u
196 #define SEI_INSTR_OP_RECV_WDG 6u
197 #define SEI_INSTR_OP_RECV 7u
202 #define SEI_INSTR_M_CK_LOW 0u
203 #define SEI_INSTR_M_CK_RISE_FALL 1u
204 #define SEI_INSTR_M_CK_FALL_RISE 2u
205 #define SEI_INSTR_M_CK_HIGH 3u
210 #define SEI_INSTR_S_CK_DEFAULT 0u
211 #define SEI_INSTR_S_CK_TRX_EXCH 1u
212 #define SEI_INSTR_S_CK_TIMEOUT_EN 2u
213 #define SEI_INSTR_S_CK_TRX_EXCH_TIMEOUT_EN 3u
218 #define SEI_SYNC_SLAVE_RX_TX_POINT_ON_RISE_EDGE 0x8002
219 #define SEI_SYNC_SLAVE_RX_TX_POINT_ON_FALL_EDGE 0x0002
220 
224 #define SEI_JUMP_INIT_INSTR_IDX 0x00u
225 #define SEI_JUMP_WDG_INSTR_IDX 0x01u
226 #define SEI_JUMP_CMD_TABLE_INSTR_IDX0 0x10u
227 #define SEI_JUMP_CMD_TABLE_INSTR_IDX1 0x11u
228 #define SEI_JUMP_CMD_TABLE_INSTR_IDX2 0x12u
229 #define SEI_JUMP_CMD_TABLE_INSTR_IDX3 0x13u
230 #define SEI_JUMP_CMD_TABLE_INSTR_IDX4 0x14u
231 #define SEI_JUMP_CMD_TABLE_INSTR_IDX5 0x15u
232 #define SEI_JUMP_CMD_TABLE_INSTR_IDX6 0x16u
233 #define SEI_JUMP_CMD_TABLE_INSTR_IDX7 0x17u
234 #define SEI_JUMP_CMD_TABLE_INSTR_IDX8 0x18u
235 #define SEI_JUMP_CMD_TABLE_INSTR_IDX9 0x19u
236 #define SEI_JUMP_CMD_TABLE_INSTR_IDX10 0x1Au
237 #define SEI_JUMP_CMD_TABLE_INSTR_IDX11 0x1Bu
238 #define SEI_JUMP_CMD_TABLE_INSTR_IDX12 0x1Cu
239 #define SEI_JUMP_CMD_TABLE_INSTR_IDX13 0x1Du
240 #define SEI_JUMP_CMD_TABLE_INSTR_IDX14 0x1Eu
241 #define SEI_JUMP_CMD_TABLE_INSTR_IDX15 0x1Fu
246 typedef struct {
248  uint8_t data_cdm_idx;
249  uint8_t data_base_idx;
250  uint8_t init_instr_idx;
253  uint8_t wdg_instr_idx;
254  uint16_t wdg_time;
260 typedef struct {
265  uint32_t baudrate;
271 typedef struct {
276  uint32_t max_baudrate;
277  uint16_t ck0_timeout_us;
278  uint16_t ck1_timeout_us;
284 typedef struct {
285  uint8_t wait_len;
286  uint8_t data_len;
291  uint32_t baudrate;
297 typedef struct {
300  uint32_t src_clk_freq;
309 typedef struct {
319 #if defined(HPM_IP_FEATURE_SEI_TRIG_IN_DIV) && HPM_IP_FEATURE_SEI_TRIG_IN_DIV
320  uint8_t trig_in0_div;
321  uint8_t trig_in1_div;
322 #endif
328 typedef struct {
337 typedef struct {
342  uint8_t word_len;
345  uint8_t crc_len;
346  uint8_t last_bit;
347  uint8_t first_bit;
348  uint8_t max_bit;
349  uint8_t min_bit;
350  uint32_t gold_value;
351  uint32_t crc_init_value;
352  uint32_t crc_poly;
358 typedef struct {
359  uint32_t cmd_min_value;
360  uint32_t cmd_max_value;
361  uint32_t cmd_mask_value;
362  uint8_t instr_idx[8];
368 typedef struct {
385 typedef struct {
386  bool enable;
387  uint8_t output_select;
388  uint16_t delay;
394 typedef struct {
395  uint8_t acc_data_idx;
396  uint8_t spd_data_idx;
397  uint8_t rev_data_idx;
398  uint8_t pos_data_idx;
403  uint8_t latch_select;
405  uint16_t sample_window;
412 typedef struct {
413  uint8_t acc_data_idx;
414  uint8_t spd_data_idx;
415  uint8_t rev_data_idx;
416  uint8_t pos_data_idx;
423  uint8_t latch_select;
427 #if defined(__cplusplus)
428 extern "C" {
429 #endif /* __cplusplus */
430 
439 static inline void sei_set_engine_enable(SEI_Type *ptr, uint8_t idx, bool enable)
440 {
441  if (enable) {
442  ptr->CTRL[idx].ENGINE.CTRL |= SEI_CTRL_ENGINE_CTRL_ENABLE_MASK;
443  } else {
444  ptr->CTRL[idx].ENGINE.CTRL &= ~SEI_CTRL_ENGINE_CTRL_ENABLE_MASK;
445  }
446 }
447 
453 static inline void sei_set_engine_rewind(SEI_Type *ptr, uint8_t idx)
454 {
455  ptr->CTRL[idx].ENGINE.CTRL |= SEI_CTRL_ENGINE_CTRL_REWIND_MASK;
456 }
457 
464 static inline void sei_set_engine_init_instr_idx(SEI_Type *ptr, uint8_t idx, uint8_t init_instr_idx)
465 {
466  ptr->CTRL[idx].ENGINE.PTR_CFG = (ptr->CTRL[idx].ENGINE.PTR_CFG & ~SEI_CTRL_ENGINE_PTR_CFG_POINTER_INIT_MASK)
468 }
469 
476 static inline void sei_set_engine_wdg_instr_idx(SEI_Type *ptr, uint8_t idx, uint8_t wdg_instr_idx)
477 {
478  ptr->CTRL[idx].ENGINE.PTR_CFG = (ptr->CTRL[idx].ENGINE.PTR_CFG & ~SEI_CTRL_ENGINE_PTR_CFG_POINTER_WDOG_MASK)
480 }
481 
488 static inline void sei_set_engine_data_base_idx(SEI_Type *ptr, uint8_t idx, uint8_t data_base_idx)
489 {
490  ptr->CTRL[idx].ENGINE.PTR_CFG = (ptr->CTRL[idx].ENGINE.PTR_CFG & ~SEI_CTRL_ENGINE_PTR_CFG_DAT_BASE_MASK)
491  | SEI_CTRL_ENGINE_PTR_CFG_DAT_BASE_SET(data_base_idx);
492 }
493 
502 static inline void sei_set_trig_input_in0_enable(SEI_Type *ptr, uint8_t idx, bool enable)
503 {
504  if (enable) {
505  ptr->CTRL[idx].TRG.IN_CFG |= SEI_CTRL_TRG_IN_CFG_IN0_EN_MASK;
506  } else {
507  ptr->CTRL[idx].TRG.IN_CFG &= ~SEI_CTRL_TRG_IN_CFG_IN0_EN_MASK;
508  }
509 }
510 
519 static inline void sei_set_trig_input_in1_enable(SEI_Type *ptr, uint8_t idx, bool enable)
520 {
521  if (enable) {
522  ptr->CTRL[idx].TRG.IN_CFG |= SEI_CTRL_TRG_IN_CFG_IN1_EN_MASK;
523  } else {
524  ptr->CTRL[idx].TRG.IN_CFG &= ~SEI_CTRL_TRG_IN_CFG_IN1_EN_MASK;
525  }
526 }
527 
536 static inline void sei_set_trig_input_period_enable(SEI_Type *ptr, uint8_t idx, bool enable)
537 {
538  if (enable) {
539  ptr->CTRL[idx].TRG.IN_CFG |= SEI_CTRL_TRG_IN_CFG_PRD_EN_MASK;
540  } else {
541  ptr->CTRL[idx].TRG.IN_CFG &= ~SEI_CTRL_TRG_IN_CFG_PRD_EN_MASK;
542  }
543 }
544 
552 static inline void sei_set_trig_input_soft_enable(SEI_Type *ptr, uint8_t idx)
553 {
554  ptr->CTRL[idx].TRG.SW |= SEI_CTRL_TRG_SW_SOFT_MASK;
555 }
556 
564 static inline void sei_set_trig_input_command_value(SEI_Type *ptr, uint8_t idx, sei_trig_in_type_t type, uint32_t data)
565 {
566  ptr->CTRL[idx].TRG_TABLE.CMD[type] = data;
567 }
568 
576 static inline uint32_t sei_get_trig_input_time(SEI_Type *ptr, uint8_t idx, sei_trig_in_type_t type)
577 {
578  return ptr->CTRL[idx].TRG_TABLE.TIME[type];
579 }
580 
592 static inline uint32_t sei_get_latch_time(SEI_Type *ptr, uint8_t idx, uint8_t latch_idx)
593 {
594  return ptr->CTRL[idx].LATCH[latch_idx].TIME;
595 }
596 
603  static inline uint16_t sei_get_xcvr_baud_div(SEI_Type *ptr, uint8_t idx)
604  {
605  return SEI_CTRL_XCVR_BAUD_CFG_BAUD_DIV_GET(ptr->CTRL[idx].XCVR.BAUD_CFG);
606  }
607 
614 static inline void sei_set_xcvr_rx_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
615 {
616  uint32_t tmp;
617 
618  assert(point > 0);
619  tmp = ptr->CTRL[idx].XCVR.DATA_CFG;
622  ptr->CTRL[idx].XCVR.DATA_CFG = tmp;
623 }
624 
631 static inline void sei_set_xcvr_tx_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
632 {
633  uint32_t tmp;
634 
635  assert(point > 0);
636  tmp = ptr->CTRL[idx].XCVR.DATA_CFG;
639  ptr->CTRL[idx].XCVR.DATA_CFG = tmp;
640 }
641 
648 static inline void sei_set_xcvr_ck0_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
649 {
650  uint32_t tmp;
651 
652  assert(point > 0);
653  tmp = ptr->CTRL[idx].XCVR.CLK_CFG;
656  ptr->CTRL[idx].XCVR.CLK_CFG = tmp;
657 }
658 
665 static inline void sei_set_xcvr_ck1_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
666 {
667  uint32_t tmp;
668 
669  assert(point > 0);
670  tmp = ptr->CTRL[idx].XCVR.CLK_CFG;
673  ptr->CTRL[idx].XCVR.CLK_CFG = tmp;
674 }
675 
682 static inline uint16_t sei_get_xcvr_ck0_point(SEI_Type *ptr, uint8_t idx)
683 {
684  return SEI_CTRL_XCVR_CLK_CFG_CK0_POINT_GET(ptr->CTRL[idx].XCVR.CLK_CFG);
685 }
686 
693 static inline uint16_t sei_get_xcvr_ck1_point(SEI_Type *ptr, uint8_t idx)
694 {
695  return SEI_CTRL_XCVR_CLK_CFG_CK1_POINT_GET(ptr->CTRL[idx].XCVR.CLK_CFG);
696 }
697 
704 static inline uint32_t sei_get_command_value(SEI_Type *ptr, uint8_t idx)
705 {
706  return ptr->CTRL[idx].CMD.CMD;
707 }
708 
714 static inline void sei_set_command_rewind(SEI_Type *ptr, uint8_t idx)
715 {
716  ptr->CTRL[idx].CMD.MODE |= SEI_CTRL_CMD_MODE_REWIND_MASK;
717 }
718 
719 #if defined(HPM_IP_FEATURE_SEI_LATCH_REWIND_CMD) && HPM_IP_FEATURE_SEI_LATCH_REWIND_CMD
727 static inline void sei_config_command_rewind_by_latch(SEI_Type *ptr, uint8_t idx, uint8_t latch_select, bool enable)
728 {
729  ptr->CTRL[idx].TRG.IN_CFG = (ptr->CTRL[idx].TRG.IN_CFG & ~(SEI_CTRL_TRG_IN_CFG_REWIND_EN_MASK | SEI_CTRL_TRG_IN_CFG_REWIND_SEL_MASK))
731 }
732 #endif
733 
740 static inline void sei_set_data_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
741 {
742  ptr->DAT[idx].DATA = data;
743 }
744 
751 static inline uint32_t sei_get_data_value(SEI_Type *ptr, uint8_t idx)
752 {
753  return ptr->DAT[idx].DATA;
754 }
755 
761 static inline void sei_set_data_rewind(SEI_Type *ptr, uint8_t idx)
762 {
763  ptr->DAT[idx].MODE |= SEI_DAT_MODE_REWIND_MASK;
764 }
765 
772 static inline void sei_set_sample_pos_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
773 {
774  ptr->CTRL[idx].POS.SMP_POS = data;
775 }
776 
783 static inline void sei_set_sample_rev_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
784 {
785  ptr->CTRL[idx].POS.SMP_REV = data;
786 }
787 
794 static inline void sei_set_sample_spd_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
795 {
796  ptr->CTRL[idx].POS.SMP_SPD = data;
797 }
798 
805 static inline void sei_set_sample_acc_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
806 {
807  ptr->CTRL[idx].POS.SMP_ACC = data;
808 }
809 
816 static inline void sei_set_update_pos_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
817 {
818  ptr->CTRL[idx].POS.UPD_POS = data;
819 }
820 
827 static inline void sei_set_update_rev_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
828 {
829  ptr->CTRL[idx].POS.UPD_REV = data;
830 }
831 
838 static inline void sei_set_update_spd_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
839 {
840  ptr->CTRL[idx].POS.UPD_SPD = data;
841 }
842 
849 static inline void sei_set_update_acc_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
850 {
851  ptr->CTRL[idx].POS.UPD_ACC = data;
852 }
853 
860 static inline void sei_set_update_time_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
861 {
862  ptr->CTRL[idx].POS.UPD_TIME = data;
863 }
864 
871 static inline void sei_set_irq_match_instr0_ptr(SEI_Type *ptr, uint8_t idx, uint8_t instr_idx)
872 {
873  ptr->CTRL[idx].IRQ.POINTER0 = SEI_CTRL_IRQ_POINTER0_POINTER_SET(instr_idx);
874 }
875 
882 static inline void sei_set_irq_match_instr1_ptr(SEI_Type *ptr, uint8_t idx, uint8_t instr_idx)
883 {
884  ptr->CTRL[idx].IRQ.POINTER1 = SEI_CTRL_IRQ_POINTER1_POINTER_SET(instr_idx);
885 }
886 
893 static inline void sei_set_irq_match_instr0_value(SEI_Type *ptr, uint8_t idx, uint32_t instr_value)
894 {
895  ptr->CTRL[idx].IRQ.INSTR0 = SEI_CTRL_IRQ_INSTR0_INSTR_SET(instr_value);
896 }
897 
904 static inline void sei_set_irq_match_instr1_value(SEI_Type *ptr, uint8_t idx, uint32_t instr_value)
905 {
906  ptr->CTRL[idx].IRQ.INSTR1 = SEI_CTRL_IRQ_INSTR1_INSTR_SET(instr_value);
907 }
908 
918 static inline void sei_set_irq_enable(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask, bool enable)
919 {
920  if (enable) {
921  ptr->CTRL[idx].IRQ.INT_EN |= irq_mask;
922  } else {
923  ptr->CTRL[idx].IRQ.INT_EN &= ~irq_mask;
924  }
925 }
926 
933 static inline uint32_t sei_get_irq_enable_status(SEI_Type *ptr, uint8_t idx)
934 {
935  return ptr->CTRL[idx].IRQ.INT_EN;
936 }
937 
946 static inline bool sei_get_irq_status(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask)
947 {
948  return ((ptr->CTRL[idx].IRQ.INT_FLAG & irq_mask) == irq_mask) ? true : false;
949 }
950 
958  static inline uint32_t sei_get_irq_flag(SEI_Type *ptr, uint8_t idx)
959  {
960  return ptr->CTRL[idx].IRQ.INT_FLAG;
961  }
962 
969 static inline void sei_clear_irq_flag(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask)
970 {
971  ptr->CTRL[idx].IRQ.INT_FLAG = irq_mask;
972 }
973 
983 static inline void sei_set_dma_req_enable(SEI_Type *ptr, uint8_t idx, uint32_t dma_en_mask, bool enable)
984 {
985  if (enable) {
986  ptr->CTRL[idx].DMA_EN |= dma_en_mask;
987  } else {
988  ptr->CTRL[idx].DMA_EN &= ~dma_en_mask;
989  }
990 }
991 
1000 
1011 hpm_stat_t sei_cmd_data_format_config_init(SEI_Type *ptr, bool cmd_data_select, uint8_t idx, sei_data_format_config_t *config);
1012 
1021 hpm_stat_t sei_cmd_table_config_init(SEI_Type *ptr, uint8_t idx, uint8_t table_idx, sei_command_table_config_t *config);
1022 
1040 hpm_stat_t sei_state_transition_config_init(SEI_Type *ptr, uint8_t idx, uint8_t latch_idx, uint8_t state, sei_state_transition_config_t *config);
1041 
1055 
1064 
1073 
1082 
1091 
1100 
1150 void sei_set_instr(SEI_Type *ptr, uint8_t idx, uint8_t op, uint8_t ck, uint8_t crc, uint8_t data, uint8_t opr);
1151 
1158 uint32_t sei_get_crc_value(SEI_Type *ptr, uint8_t idx);
1159 
1160 #if defined(__cplusplus)
1161 }
1162 #endif /* __cplusplus */
1166 #endif
#define SEI_CTRL_IRQ_INT_FLAG_TRX_ERR_MASK
Definition: hpm_sei_regs.h:2416
#define SEI_CTRL_XCVR_CLK_CFG_CK0_POINT_MASK
Definition: hpm_sei_regs.h:573
#define SEI_CTRL_CMD_MODE_REWIND_MASK
Definition: hpm_sei_regs.h:1073
#define SEI_CTRL_DMA_EN_TIMEOUT_MASK
Definition: hpm_sei_regs.h:2946
#define SEI_CTRL_XCVR_DATA_CFG_RXD_POINT_SET(x)
Definition: hpm_sei_regs.h:554
#define SEI_CTRL_DMA_EN_PTR1_ST_MASK
Definition: hpm_sei_regs.h:3026
#define SEI_CTRL_ENGINE_PTR_CFG_POINTER_INIT_MASK
Definition: hpm_sei_regs.h:254
#define SEI_CTRL_IRQ_INT_FLAG_LATCH2_MASK
Definition: hpm_sei_regs.h:2376
#define SEI_CTRL_IRQ_INT_FLAG_LATCH1_MASK
Definition: hpm_sei_regs.h:2386
#define SEI_CTRL_DMA_EN_PTR1_END_MASK
Definition: hpm_sei_regs.h:2986
#define SEI_CTRL_IRQ_INT_FLAG_PTR0_ST_MASK
Definition: hpm_sei_regs.h:2496
#define SEI_CTRL_IRQ_INSTR1_INSTR_SET(x)
Definition: hpm_sei_regs.h:2807
#define SEI_CTRL_IRQ_POINTER0_POINTER_SET(x)
Definition: hpm_sei_regs.h:2774
#define SEI_CTRL_IRQ_INT_FLAG_TRIGER1_MASK
Definition: hpm_sei_regs.h:2336
#define SEI_CTRL_XCVR_DATA_CFG_TXD_POINT_SET(x)
Definition: hpm_sei_regs.h:544
#define SEI_CTRL_ENGINE_CTRL_ENABLE_MASK
Definition: hpm_sei_regs.h:200
#define SEI_CTRL_TRG_IN_CFG_IN0_EN_MASK
Definition: hpm_sei_regs.h:790
#define SEI_CTRL_DMA_EN_INSTR1_ST_MASK
Definition: hpm_sei_regs.h:3006
#define SEI_CTRL_DMA_EN_TRIGER0_MASK
Definition: hpm_sei_regs.h:2886
#define SEI_CTRL_DMA_EN_LATCH0_MASK
Definition: hpm_sei_regs.h:2936
#define SEI_CTRL_DMA_EN_TRIGER1_MASK
Definition: hpm_sei_regs.h:2876
#define SEI_CTRL_IRQ_INT_FLAG_TRG_ERR2_MASK
Definition: hpm_sei_regs.h:2286
#define SEI_CTRL_IRQ_INT_FLAG_PTR1_ST_MASK
Definition: hpm_sei_regs.h:2486
#define SEI_CTRL_IRQ_INT_FLAG_PTR0_END_MASK
Definition: hpm_sei_regs.h:2456
#define SEI_CTRL_IRQ_INT_FLAG_SMP_ERR_MASK
Definition: hpm_sei_regs.h:2356
#define SEI_CTRL_DMA_EN_WDOG_MASK
Definition: hpm_sei_regs.h:3046
#define SEI_DAT_MODE_REWIND_MASK
Definition: hpm_sei_regs.h:3260
#define SEI_CTRL_IRQ_INT_FLAG_INSTR1_END_MASK
Definition: hpm_sei_regs.h:2426
#define SEI_CTRL_ENGINE_PTR_CFG_POINTER_INIT_SET(x)
Definition: hpm_sei_regs.h:256
#define SEI_CTRL_DMA_EN_LATCH2_MASK
Definition: hpm_sei_regs.h:2916
#define SEI_CTRL_IRQ_INT_FLAG_TRIGER0_MASK
Definition: hpm_sei_regs.h:2346
#define SEI_CTRL_IRQ_INT_FLAG_TIMEOUT_MASK
Definition: hpm_sei_regs.h:2406
#define SEI_CTRL_IRQ_INT_FLAG_EXCEPT_MASK
Definition: hpm_sei_regs.h:2516
#define SEI_CTRL_IRQ_POINTER1_POINTER_SET(x)
Definition: hpm_sei_regs.h:2785
#define SEI_CTRL_DMA_EN_SMP_ERR_MASK
Definition: hpm_sei_regs.h:2896
#define SEI_CTRL_DMA_EN_TRX_ERR_MASK
Definition: hpm_sei_regs.h:2956
#define SEI_CTRL_IRQ_INT_FLAG_STALL_MASK
Definition: hpm_sei_regs.h:2526
#define SEI_CTRL_DMA_EN_PTR0_ST_MASK
Definition: hpm_sei_regs.h:3036
#define SEI_CTRL_DMA_EN_TRG_ERR0_MASK
Definition: hpm_sei_regs.h:2846
#define SEI_CTRL_IRQ_INT_FLAG_WDOG_MASK
Definition: hpm_sei_regs.h:2506
#define SEI_CTRL_DMA_EN_INSTR0_END_MASK
Definition: hpm_sei_regs.h:2976
#define SEI_CTRL_IRQ_INT_FLAG_TRG_ERR1_MASK
Definition: hpm_sei_regs.h:2296
#define SEI_CTRL_IRQ_INT_FLAG_INSTR0_ST_MASK
Definition: hpm_sei_regs.h:2476
#define SEI_CTRL_DMA_EN_LATCH1_MASK
Definition: hpm_sei_regs.h:2926
#define SEI_CTRL_DMA_EN_PTR0_END_MASK
Definition: hpm_sei_regs.h:2996
#define SEI_CTRL_IRQ_INT_FLAG_PTR1_END_MASK
Definition: hpm_sei_regs.h:2446
#define SEI_CTRL_ENGINE_PTR_CFG_POINTER_WDOG_MASK
Definition: hpm_sei_regs.h:244
#define SEI_CTRL_IRQ_INSTR0_INSTR_SET(x)
Definition: hpm_sei_regs.h:2796
#define SEI_CTRL_DMA_EN_TRG_ERR3_MASK
Definition: hpm_sei_regs.h:2816
#define SEI_CTRL_ENGINE_CTRL_REWIND_MASK
Definition: hpm_sei_regs.h:188
#define SEI_CTRL_XCVR_CLK_CFG_CK1_POINT_GET(x)
Definition: hpm_sei_regs.h:566
#define SEI_CTRL_XCVR_DATA_CFG_RXD_POINT_MASK
Definition: hpm_sei_regs.h:552
#define SEI_CTRL_DMA_EN_TRIGER3_MASK
Definition: hpm_sei_regs.h:2856
#define SEI_CTRL_DMA_EN_TRIGER2_MASK
Definition: hpm_sei_regs.h:2866
#define SEI_CTRL_XCVR_DATA_CFG_TXD_POINT_MASK
Definition: hpm_sei_regs.h:542
#define SEI_CTRL_DMA_EN_INSTR1_END_MASK
Definition: hpm_sei_regs.h:2966
#define SEI_CTRL_IRQ_INT_FLAG_INSTR1_ST_MASK
Definition: hpm_sei_regs.h:2466
#define SEI_CTRL_XCVR_CLK_CFG_CK0_POINT_GET(x)
Definition: hpm_sei_regs.h:576
#define SEI_CTRL_XCVR_CLK_CFG_CK0_POINT_SET(x)
Definition: hpm_sei_regs.h:575
#define SEI_CTRL_TRG_IN_CFG_IN1_EN_MASK
Definition: hpm_sei_regs.h:764
#define SEI_CTRL_DMA_EN_EXCEPT_MASK
Definition: hpm_sei_regs.h:3056
#define SEI_CTRL_DMA_EN_TRG_ERR2_MASK
Definition: hpm_sei_regs.h:2826
#define SEI_CTRL_IRQ_INT_FLAG_LATCH3_MASK
Definition: hpm_sei_regs.h:2366
#define SEI_CTRL_XCVR_BAUD_CFG_BAUD_DIV_GET(x)
Definition: hpm_sei_regs.h:534
#define SEI_CTRL_DMA_EN_TRG_ERR1_MASK
Definition: hpm_sei_regs.h:2836
#define SEI_CTRL_IRQ_INT_FLAG_TRIGER3_MASK
Definition: hpm_sei_regs.h:2316
#define SEI_CTRL_IRQ_INT_FLAG_INSTR0_END_MASK
Definition: hpm_sei_regs.h:2436
#define SEI_CTRL_TRG_IN_CFG_PRD_EN_MASK
Definition: hpm_sei_regs.h:738
#define SEI_CTRL_XCVR_CLK_CFG_CK1_POINT_SET(x)
Definition: hpm_sei_regs.h:565
#define SEI_CTRL_TRG_SW_SOFT_MASK
Definition: hpm_sei_regs.h:817
#define SEI_CTRL_IRQ_INT_FLAG_TRG_ERR0_MASK
Definition: hpm_sei_regs.h:2306
#define SEI_CTRL_ENGINE_PTR_CFG_DAT_BASE_MASK
Definition: hpm_sei_regs.h:234
#define SEI_CTRL_ENGINE_PTR_CFG_DAT_BASE_SET(x)
Definition: hpm_sei_regs.h:236
#define SEI_CTRL_IRQ_INT_FLAG_TRIGER2_MASK
Definition: hpm_sei_regs.h:2326
#define SEI_CTRL_DMA_EN_INSTR0_ST_MASK
Definition: hpm_sei_regs.h:3016
#define SEI_CTRL_IRQ_INT_FLAG_TRG_ERR3_MASK
Definition: hpm_sei_regs.h:2276
#define SEI_CTRL_ENGINE_PTR_CFG_POINTER_WDOG_SET(x)
Definition: hpm_sei_regs.h:246
#define SEI_CTRL_DMA_EN_LATCH3_MASK
Definition: hpm_sei_regs.h:2906
#define SEI_CTRL_DMA_EN_STALL_MASK
Definition: hpm_sei_regs.h:3066
#define SEI_CTRL_IRQ_INT_FLAG_LATCH0_MASK
Definition: hpm_sei_regs.h:2396
#define SEI_CTRL_XCVR_CLK_CFG_CK1_POINT_MASK
Definition: hpm_sei_regs.h:563
#define SEI_CTRL_TRG_IN_CFG_REWIND_EN_MASK
Definition: hpm_sei_regs.h:736
#define SEI_CTRL_TRG_IN_CFG_REWIND_SEL_SET(x)
Definition: hpm_sei_regs.h:752
#define SEI_CTRL_TRG_IN_CFG_REWIND_EN_SET(x)
Definition: hpm_sei_regs.h:738
#define SEI_CTRL_TRG_IN_CFG_REWIND_SEL_MASK
Definition: hpm_sei_regs.h:750
uint32_t hpm_stat_t
Definition: hpm_common.h:135
hpm_stat_t sei_state_transition_latch_config_init(SEI_Type *ptr, uint8_t idx, uint8_t latch_idx, sei_state_transition_latch_config_t *config)
Init SEI state transition latch configuration.
Definition: hpm_sei_drv.c:242
static void sei_set_engine_data_base_idx(SEI_Type *ptr, uint8_t idx, uint8_t data_base_idx)
Set the SEI bias for data register access.
Definition: hpm_sei_drv.h:488
sei_irq_event_t
sei irq event
Definition: hpm_sei_drv.h:113
static uint32_t sei_get_data_value(SEI_Type *ptr, uint8_t idx)
Get the SEI data value.
Definition: hpm_sei_drv.h:751
sei_data_mode_t
sei data mode
Definition: hpm_sei_drv.h:68
hpm_stat_t sei_sample_config_init(SEI_Type *ptr, uint8_t idx, sei_sample_config_t *config)
Init SEI sample configuration.
Definition: hpm_sei_drv.c:254
hpm_stat_t sei_engine_config_init(SEI_Type *ptr, uint8_t idx, sei_engine_config_t *config)
Init SEI engine configuration.
Definition: hpm_sei_drv.c:358
static void sei_set_sample_rev_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI sample revolution (multiturn) override value.
Definition: hpm_sei_drv.h:783
static bool sei_get_irq_status(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask)
Get the SEI irq status.
Definition: hpm_sei_drv.h:946
sei_state_tran_condition_t
sei state transition condition
Definition: hpm_sei_drv.h:93
static void sei_set_xcvr_rx_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
Set the SEI transceiver rx point.
Definition: hpm_sei_drv.h:614
static void sei_set_irq_match_instr0_ptr(SEI_Type *ptr, uint8_t idx, uint8_t instr_idx)
Set the SEI irq match pointer0.
Definition: hpm_sei_drv.h:871
static uint16_t sei_get_xcvr_ck0_point(SEI_Type *ptr, uint8_t idx)
Get the SEI transceiver ck0 point.
Definition: hpm_sei_drv.h:682
static uint32_t sei_get_irq_flag(SEI_Type *ptr, uint8_t idx)
Get the SEI irq flag.
Definition: hpm_sei_drv.h:958
static void sei_set_engine_rewind(SEI_Type *ptr, uint8_t idx)
Rewind the SEI engine.
Definition: hpm_sei_drv.h:453
void sei_set_instr(SEI_Type *ptr, uint8_t idx, uint8_t op, uint8_t ck, uint8_t crc, uint8_t data, uint8_t opr)
Set SEI Intsructions.
Definition: hpm_sei_drv.c:378
static void sei_set_update_rev_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI update revolution (multiturn) override value.
Definition: hpm_sei_drv.h:827
sei_data_bit_order_t
sei data bit order
Definition: hpm_sei_drv.h:77
static void sei_clear_irq_flag(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask)
Clear the SEI irq flag.
Definition: hpm_sei_drv.h:969
static void sei_set_xcvr_ck0_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
Set the SEI transceiver ck0 point.
Definition: hpm_sei_drv.h:648
static void sei_set_sample_pos_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI sample position (singleturn) override value.
Definition: hpm_sei_drv.h:772
static uint32_t sei_get_irq_enable_status(SEI_Type *ptr, uint8_t idx)
Get the SEI irq enable status.
Definition: hpm_sei_drv.h:933
sei_arming_mode_t
sei arming action
Definition: hpm_sei_drv.h:27
static void sei_set_irq_match_instr0_value(SEI_Type *ptr, uint8_t idx, uint32_t instr_value)
Set the SEI irq match instr0.
Definition: hpm_sei_drv.h:893
hpm_stat_t sei_trigger_input_config_init(SEI_Type *ptr, uint8_t idx, sei_trigger_input_config_t *config)
Init SEI trigger input configuration.
Definition: hpm_sei_drv.c:302
sei_idle_state_t
sei ilde state
Definition: hpm_sei_drv.h:60
static void sei_set_sample_spd_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI sample speed override value.
Definition: hpm_sei_drv.h:794
static void sei_set_command_rewind(SEI_Type *ptr, uint8_t idx)
Rewind the SEI command.
Definition: hpm_sei_drv.h:714
static void sei_set_trig_input_in0_enable(SEI_Type *ptr, uint8_t idx, bool enable)
Set the SEI trigger input trig in0 enable or disable.
Definition: hpm_sei_drv.h:502
static void sei_set_xcvr_ck1_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
Set the SEI transceiver ck1 point.
Definition: hpm_sei_drv.h:665
static void sei_set_data_rewind(SEI_Type *ptr, uint8_t idx)
Rewind the SEI data.
Definition: hpm_sei_drv.h:761
sei_wdg_action_t
sei watchdog action
Definition: hpm_sei_drv.h:35
hpm_stat_t sei_cmd_table_config_init(SEI_Type *ptr, uint8_t idx, uint8_t table_idx, sei_command_table_config_t *config)
Init SEI command table configuration.
Definition: hpm_sei_drv.c:183
static void sei_set_xcvr_tx_point(SEI_Type *ptr, uint8_t idx, uint16_t point)
Set the SEI transceiver tx point.
Definition: hpm_sei_drv.h:631
static uint32_t sei_get_trig_input_time(SEI_Type *ptr, uint8_t idx, sei_trig_in_type_t type)
Get the SEI trigger input time.
Definition: hpm_sei_drv.h:576
static void sei_set_data_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI data value.
Definition: hpm_sei_drv.h:740
hpm_stat_t sei_transceiver_config_init(SEI_Type *ptr, uint8_t idx, sei_transceiver_config_t *config)
Init SEI transceiver configuration.
Definition: hpm_sei_drv.c:10
static uint16_t sei_get_xcvr_baud_div(SEI_Type *ptr, uint8_t idx)
Get the SEI transceiver baud div.
Definition: hpm_sei_drv.h:603
static void sei_set_irq_match_instr1_ptr(SEI_Type *ptr, uint8_t idx, uint8_t instr_idx)
Set the SEI irq match pointer1.
Definition: hpm_sei_drv.h:882
static void sei_set_update_time_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI update time override value.
Definition: hpm_sei_drv.h:860
static void sei_set_irq_match_instr1_value(SEI_Type *ptr, uint8_t idx, uint32_t instr_value)
Set the SEI irq match instr1.
Definition: hpm_sei_drv.h:904
hpm_stat_t sei_trigger_output_config_init(SEI_Type *ptr, uint8_t idx, sei_trigger_output_config_t *config)
Init SEI trigger output configuration.
Definition: hpm_sei_drv.c:333
uint32_t sei_get_crc_value(SEI_Type *ptr, uint8_t idx)
Get the SEI crc value.
Definition: hpm_sei_drv.c:397
static void sei_set_trig_input_command_value(SEI_Type *ptr, uint8_t idx, sei_trig_in_type_t type, uint32_t data)
Set the SEI trigger input command value.
Definition: hpm_sei_drv.h:564
static void sei_set_update_spd_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI update speed override value.
Definition: hpm_sei_drv.h:838
static uint32_t sei_get_latch_time(SEI_Type *ptr, uint8_t idx, uint8_t latch_idx)
Get the SEI latch time.
Definition: hpm_sei_drv.h:592
static uint32_t sei_get_command_value(SEI_Type *ptr, uint8_t idx)
Get the SEI command value.
Definition: hpm_sei_drv.h:704
hpm_stat_t sei_state_transition_config_init(SEI_Type *ptr, uint8_t idx, uint8_t latch_idx, uint8_t state, sei_state_transition_config_t *config)
Init SEI state transition configuration.
Definition: hpm_sei_drv.c:211
static void sei_set_engine_wdg_instr_idx(SEI_Type *ptr, uint8_t idx, uint8_t wdg_instr_idx)
Set the SEI instruction index which engine execution when watchdog active.
Definition: hpm_sei_drv.h:476
static void sei_set_sample_acc_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI sample acceleration override value.
Definition: hpm_sei_drv.h:805
static void sei_set_engine_init_instr_idx(SEI_Type *ptr, uint8_t idx, uint8_t init_instr_idx)
Set the SEI instruction index which engine start execution.
Definition: hpm_sei_drv.h:464
hpm_stat_t sei_cmd_data_format_config_init(SEI_Type *ptr, bool cmd_data_select, uint8_t idx, sei_data_format_config_t *config)
Init SEI command or data format configuration.
Definition: hpm_sei_drv.c:121
sei_dma_en_t
sei dma enable bit
Definition: hpm_sei_drv.h:145
static void sei_set_trig_input_soft_enable(SEI_Type *ptr, uint8_t idx)
Set the SEI trigger input soft enable or disable.
Definition: hpm_sei_drv.h:552
static void sei_set_dma_req_enable(SEI_Type *ptr, uint8_t idx, uint32_t dma_en_mask, bool enable)
Set the SEI DMA request enable or disable.
Definition: hpm_sei_drv.h:983
static uint16_t sei_get_xcvr_ck1_point(SEI_Type *ptr, uint8_t idx)
Get the SEI transceiver ck1 point.
Definition: hpm_sei_drv.h:693
sei_transceiver_mode_t
sei transfer mode
Definition: hpm_sei_drv.h:43
sei_trig_in_type_t
sei trig in type
Definition: hpm_sei_drv.h:103
static void sei_set_trig_input_in1_enable(SEI_Type *ptr, uint8_t idx, bool enable)
Set the SEI trigger input trig in1 enable or disable.
Definition: hpm_sei_drv.h:519
static void sei_set_trig_input_period_enable(SEI_Type *ptr, uint8_t idx, bool enable)
Set the SEI trigger input period enable or disable.
Definition: hpm_sei_drv.h:536
static void sei_set_update_acc_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI update acceleration override value.
Definition: hpm_sei_drv.h:849
sei_data_word_order_t
sei data word order
Definition: hpm_sei_drv.h:85
hpm_stat_t sei_update_config_init(SEI_Type *ptr, uint8_t idx, sei_update_config_t *config)
Init SEI update configuration.
Definition: hpm_sei_drv.c:278
static void sei_set_irq_enable(SEI_Type *ptr, uint8_t idx, uint32_t irq_mask, bool enable)
Set the SEI irq enable or disable.
Definition: hpm_sei_drv.h:918
sei_asynchronous_parity_t
sei asynchronous mode parity
Definition: hpm_sei_drv.h:52
static void sei_set_engine_enable(SEI_Type *ptr, uint8_t idx, bool enable)
Set the SEI engine enable or disable.
Definition: hpm_sei_drv.h:439
static void sei_set_update_pos_override_value(SEI_Type *ptr, uint8_t idx, uint32_t data)
Set the SEI update position (singleturn) override value.
Definition: hpm_sei_drv.h:816
@ sei_irq_trx_err_event
Definition: hpm_sei_drv.h:125
@ sei_irq_trig3_err_event
Definition: hpm_sei_drv.h:139
@ sei_irq_execpt_event
Definition: hpm_sei_drv.h:115
@ sei_irq_latch2_event
Definition: hpm_sei_drv.h:129
@ sei_irq_latch1_event
Definition: hpm_sei_drv.h:128
@ sei_irq_latch3_event
Definition: hpm_sei_drv.h:130
@ sei_irq_instr_ptr0_start_event
Definition: hpm_sei_drv.h:117
@ sei_irq_instr_ptr1_end_event
Definition: hpm_sei_drv.h:122
@ sei_irq_trig2_err_event
Definition: hpm_sei_drv.h:138
@ sei_irq_wdog_event
Definition: hpm_sei_drv.h:116
@ sei_irq_timeout_event
Definition: hpm_sei_drv.h:126
@ sei_irq_sample_err_event
Definition: hpm_sei_drv.h:131
@ sei_irq_trig2_event
Definition: hpm_sei_drv.h:134
@ sei_irq_instr_value1_start_event
Definition: hpm_sei_drv.h:120
@ sei_irq_instr_ptr0_end_event
Definition: hpm_sei_drv.h:121
@ sei_irq_trig3_event
Definition: hpm_sei_drv.h:135
@ sei_irq_trig1_event
Definition: hpm_sei_drv.h:133
@ sei_irq_trig1_err_event
Definition: hpm_sei_drv.h:137
@ sei_irq_latch0_event
Definition: hpm_sei_drv.h:127
@ sei_irq_instr_value0_start_event
Definition: hpm_sei_drv.h:119
@ sei_irq_instr_value1_end_event
Definition: hpm_sei_drv.h:124
@ sei_irq_instr_ptr1_start_event
Definition: hpm_sei_drv.h:118
@ sei_irq_stall_event
Definition: hpm_sei_drv.h:114
@ sei_irq_instr_value0_end_event
Definition: hpm_sei_drv.h:123
@ sei_irq_trig0_event
Definition: hpm_sei_drv.h:132
@ sei_irq_trig0_err_event
Definition: hpm_sei_drv.h:136
@ sei_data_mode
Definition: hpm_sei_drv.h:69
@ sei_crc_mode
Definition: hpm_sei_drv.h:71
@ sei_check_mode
Definition: hpm_sei_drv.h:70
@ sei_state_tran_condition_low_dismatch
Definition: hpm_sei_drv.h:95
@ sei_state_tran_condition_high_match
Definition: hpm_sei_drv.h:94
@ sei_state_tran_condition_rise_entry
Definition: hpm_sei_drv.h:96
@ sei_state_tran_condition_fall_leave
Definition: hpm_sei_drv.h:97
@ sei_bit_lsb_first
Definition: hpm_sei_drv.h:78
@ sei_bit_msb_first
Definition: hpm_sei_drv.h:79
@ sei_arming_direct_exec
Definition: hpm_sei_drv.h:28
@ sei_arming_wait_trigger
Definition: hpm_sei_drv.h:29
@ sei_idle_high_state
Definition: hpm_sei_drv.h:62
@ sei_idle_low_state
Definition: hpm_sei_drv.h:61
@ sei_wdg_exec_exception_instr
Definition: hpm_sei_drv.h:37
@ sei_wdg_exec_next_instr
Definition: hpm_sei_drv.h:36
@ sei_dma_en_instr_ptr1_start_event
Definition: hpm_sei_drv.h:150
@ sei_dma_en_latch2_event
Definition: hpm_sei_drv.h:161
@ sei_dma_en_latch1_event
Definition: hpm_sei_drv.h:160
@ sei_dma_en_timeout_event
Definition: hpm_sei_drv.h:158
@ sei_dma_en_instr_value0_start_event
Definition: hpm_sei_drv.h:151
@ sei_dma_en_latch3_event
Definition: hpm_sei_drv.h:162
@ sei_dma_en_stall_event
Definition: hpm_sei_drv.h:146
@ sei_dma_en_latch0_event
Definition: hpm_sei_drv.h:159
@ sei_dma_en_trig2_event
Definition: hpm_sei_drv.h:166
@ sei_dma_en_sample_err_event
Definition: hpm_sei_drv.h:163
@ sei_dma_en_instr_ptr0_start_event
Definition: hpm_sei_drv.h:149
@ sei_dma_en_instr_ptr0_end_event
Definition: hpm_sei_drv.h:153
@ sei_dma_en_instr_ptr1_end_event
Definition: hpm_sei_drv.h:154
@ sei_dma_en_trig1_err_event
Definition: hpm_sei_drv.h:169
@ sei_dma_en_trig2_err_event
Definition: hpm_sei_drv.h:170
@ sei_dma_en_instr_value0_end_event
Definition: hpm_sei_drv.h:155
@ sei_dma_en_trig0_err_event
Definition: hpm_sei_drv.h:168
@ sei_dma_en_trig1_event
Definition: hpm_sei_drv.h:165
@ sei_dma_en_wdog_event
Definition: hpm_sei_drv.h:148
@ sei_dma_en_trig0_event
Definition: hpm_sei_drv.h:164
@ sei_dma_en_execpt_event
Definition: hpm_sei_drv.h:147
@ sei_dma_en_trig3_event
Definition: hpm_sei_drv.h:167
@ sei_dma_en_instr_value1_start_event
Definition: hpm_sei_drv.h:152
@ sei_dma_en_instr_value1_end_event
Definition: hpm_sei_drv.h:156
@ sei_dma_en_trig3_err_event
Definition: hpm_sei_drv.h:171
@ sei_dma_en_trx_err_event
Definition: hpm_sei_drv.h:157
@ sei_synchronous_master_mode
Definition: hpm_sei_drv.h:44
@ sei_synchronous_slave_mode
Definition: hpm_sei_drv.h:45
@ sei_asynchronous_mode
Definition: hpm_sei_drv.h:46
@ sei_trig_in_soft
Definition: hpm_sei_drv.h:107
@ sei_trig_in_period
Definition: hpm_sei_drv.h:106
@ sei_trig_in1
Definition: hpm_sei_drv.h:105
@ sei_trig_in0
Definition: hpm_sei_drv.h:104
@ sei_word_reverse
Definition: hpm_sei_drv.h:87
@ sei_word_nonreverse
Definition: hpm_sei_drv.h:86
@ sei_asynchronous_parity_odd
Definition: hpm_sei_drv.h:54
@ sei_asynchronous_parity_even
Definition: hpm_sei_drv.h:53
Definition: hpm_sei_regs.h:12
__RW uint32_t CTRL
Definition: hpm_sei_regs.h:15
struct SEI_Type::@339 DAT[10]
__RW uint32_t DATA
Definition: hpm_sei_regs.h:132
__RW uint32_t MODE
Definition: hpm_sei_regs.h:52
sei command table config structure
Definition: hpm_sei_drv.h:358
uint32_t cmd_min_value
Definition: hpm_sei_drv.h:359
uint32_t cmd_mask_value
Definition: hpm_sei_drv.h:361
uint32_t cmd_max_value
Definition: hpm_sei_drv.h:360
sei data format config structure
Definition: hpm_sei_drv.h:337
uint8_t max_bit
Definition: hpm_sei_drv.h:348
sei_data_mode_t mode
Definition: hpm_sei_drv.h:338
bool crc_shift_mode
Definition: hpm_sei_drv.h:344
uint8_t crc_len
Definition: hpm_sei_drv.h:345
uint8_t last_bit
Definition: hpm_sei_drv.h:346
uint32_t crc_init_value
Definition: hpm_sei_drv.h:351
uint32_t gold_value
Definition: hpm_sei_drv.h:350
uint32_t crc_poly
Definition: hpm_sei_drv.h:352
bool signed_flag
Definition: hpm_sei_drv.h:339
uint8_t min_bit
Definition: hpm_sei_drv.h:349
sei_data_bit_order_t bit_order
Definition: hpm_sei_drv.h:340
bool crc_invert
Definition: hpm_sei_drv.h:343
uint8_t first_bit
Definition: hpm_sei_drv.h:347
sei_data_word_order_t word_order
Definition: hpm_sei_drv.h:341
uint8_t word_len
Definition: hpm_sei_drv.h:342
sei engine config structure
Definition: hpm_sei_drv.h:246
bool wdg_enable
Definition: hpm_sei_drv.h:251
sei_arming_mode_t arming_mode
Definition: hpm_sei_drv.h:247
uint8_t data_cdm_idx
Definition: hpm_sei_drv.h:248
uint8_t data_base_idx
Definition: hpm_sei_drv.h:249
uint8_t wdg_instr_idx
Definition: hpm_sei_drv.h:253
uint16_t wdg_time
Definition: hpm_sei_drv.h:254
sei_wdg_action_t wdg_action
Definition: hpm_sei_drv.h:252
uint8_t init_instr_idx
Definition: hpm_sei_drv.h:250
sei sample config structure
Definition: hpm_sei_drv.h:394
uint32_t data_register_select
Definition: hpm_sei_drv.h:406
uint8_t spd_data_idx
Definition: hpm_sei_drv.h:396
bool pos_data_use_rx
Definition: hpm_sei_drv.h:402
uint16_t sample_window
Definition: hpm_sei_drv.h:405
bool spd_data_use_rx
Definition: hpm_sei_drv.h:400
uint8_t latch_select
Definition: hpm_sei_drv.h:403
uint8_t acc_data_idx
Definition: hpm_sei_drv.h:395
bool acc_data_use_rx
Definition: hpm_sei_drv.h:399
uint8_t rev_data_idx
Definition: hpm_sei_drv.h:397
bool rev_data_use_rx
Definition: hpm_sei_drv.h:401
bool sample_once
Definition: hpm_sei_drv.h:404
uint8_t pos_data_idx
Definition: hpm_sei_drv.h:398
sei state transition config structure
Definition: hpm_sei_drv.h:368
uint8_t instr_ptr_value
Definition: hpm_sei_drv.h:371
sei_state_tran_condition_t txd_cfg
Definition: hpm_sei_drv.h:375
sei_state_tran_condition_t timeout_cfg
Definition: hpm_sei_drv.h:379
sei_state_tran_condition_t clk_cfg
Definition: hpm_sei_drv.h:373
bool disable_rxd_check
Definition: hpm_sei_drv.h:376
sei_state_tran_condition_t rxd_cfg
Definition: hpm_sei_drv.h:377
bool disable_clk_check
Definition: hpm_sei_drv.h:372
bool disable_txd_check
Definition: hpm_sei_drv.h:374
bool disable_timeout_check
Definition: hpm_sei_drv.h:378
sei_state_tran_condition_t instr_ptr_cfg
Definition: hpm_sei_drv.h:370
bool disable_instr_ptr_check
Definition: hpm_sei_drv.h:369
sei state transition latch config structure
Definition: hpm_sei_drv.h:385
uint16_t delay
Definition: hpm_sei_drv.h:388
uint8_t output_select
Definition: hpm_sei_drv.h:387
bool enable
Definition: hpm_sei_drv.h:386
sei transceiver asynchronous mode config structure
Definition: hpm_sei_drv.h:284
bool data_idle_high_z
Definition: hpm_sei_drv.h:289
uint32_t baudrate
Definition: hpm_sei_drv.h:291
bool parity_enable
Definition: hpm_sei_drv.h:287
uint8_t data_len
Definition: hpm_sei_drv.h:286
sei_asynchronous_parity_t parity
Definition: hpm_sei_drv.h:288
uint8_t wait_len
Definition: hpm_sei_drv.h:285
sei_idle_state_t data_idle_state
Definition: hpm_sei_drv.h:290
sei transceiver config structure
Definition: hpm_sei_drv.h:297
uint32_t src_clk_freq
Definition: hpm_sei_drv.h:300
sei_transceiver_synchronous_slave_config_t synchronous_slave_config
Definition: hpm_sei_drv.h:302
bool tri_sample
Definition: hpm_sei_drv.h:299
sei_transceiver_mode_t mode
Definition: hpm_sei_drv.h:298
sei_transceiver_synchronous_master_config_t synchronous_master_config
Definition: hpm_sei_drv.h:301
sei_transceiver_asynchronous_config_t asynchronous_config
Definition: hpm_sei_drv.h:303
sei transceiver synchronous master mode config structure
Definition: hpm_sei_drv.h:260
bool data_idle_high_z
Definition: hpm_sei_drv.h:261
bool clock_idle_high_z
Definition: hpm_sei_drv.h:263
sei_idle_state_t data_idle_state
Definition: hpm_sei_drv.h:262
uint32_t baudrate
Definition: hpm_sei_drv.h:265
sei_idle_state_t clock_idle_state
Definition: hpm_sei_drv.h:264
sei transceiver synchronous master mode config structure
Definition: hpm_sei_drv.h:271
bool data_idle_high_z
Definition: hpm_sei_drv.h:272
sei_idle_state_t clock_idle_state
Definition: hpm_sei_drv.h:275
sei_idle_state_t data_idle_state
Definition: hpm_sei_drv.h:273
bool clock_idle_high_z
Definition: hpm_sei_drv.h:274
uint16_t ck0_timeout_us
Definition: hpm_sei_drv.h:277
uint32_t max_baudrate
Definition: hpm_sei_drv.h:276
uint16_t ck1_timeout_us
Definition: hpm_sei_drv.h:278
sei trigger input config structure
Definition: hpm_sei_drv.h:309
bool trig_in1_enable
Definition: hpm_sei_drv.h:312
bool trig_period_sync_enable
Definition: hpm_sei_drv.h:316
uint8_t trig_in1_select
Definition: hpm_sei_drv.h:313
uint32_t trig_period_time
Definition: hpm_sei_drv.h:318
bool trig_period_enable
Definition: hpm_sei_drv.h:314
sei_arming_mode_t trig_period_arming_mode
Definition: hpm_sei_drv.h:315
uint8_t trig_period_sync_select
Definition: hpm_sei_drv.h:317
bool trig_in0_enable
Definition: hpm_sei_drv.h:310
uint8_t trig_in0_select
Definition: hpm_sei_drv.h:311
sei trigger output config structure
Definition: hpm_sei_drv.h:328
bool trig_out_enable
Definition: hpm_sei_drv.h:330
uint8_t src_latch_select
Definition: hpm_sei_drv.h:329
uint8_t trig_out_select
Definition: hpm_sei_drv.h:331
sei update config structure
Definition: hpm_sei_drv.h:412
bool pos_data_use_rx
Definition: hpm_sei_drv.h:420
bool acc_data_use_rx
Definition: hpm_sei_drv.h:417
bool rev_data_use_rx
Definition: hpm_sei_drv.h:419
uint8_t spd_data_idx
Definition: hpm_sei_drv.h:414
bool time_use_override
Definition: hpm_sei_drv.h:421
uint8_t latch_select
Definition: hpm_sei_drv.h:423
bool update_on_err
Definition: hpm_sei_drv.h:422
uint32_t data_register_select
Definition: hpm_sei_drv.h:424
uint8_t acc_data_idx
Definition: hpm_sei_drv.h:413
uint8_t rev_data_idx
Definition: hpm_sei_drv.h:415
bool spd_data_use_rx
Definition: hpm_sei_drv.h:418
uint8_t pos_data_idx
Definition: hpm_sei_drv.h:416