HPM SDK
HPMicro Software Development Kit
MCAN driver APIs

MCAN driver APIs. More...

Data Structures

struct  mcan_bit_timing_param_struct
 CAN Bit Timing Parameters. More...
 
struct  mcan_tx_message_struct
 CAN Transmit Message Frame. More...
 
struct  mcan_rx_message_struct
 CAN Receive Message Frame. More...
 
union  mcan_tx_event_fifo_elem_struct
 TX Event Fifo Element Structure. More...
 
union  mcan_filter_config_struct
 MCAN Filter Configuration. More...
 
union  mcan_rxfifo_config_struct
 MCAN RXFIFO Configuration. More...
 
struct  mcan_rxbuf_config_t
 MCAN RXBUF Configuration. More...
 
union  mcan_rx_fifo_or_buf_elem_config_struct
 MCAN RXBUF or RXFIFO Element Configuration. More...
 
union  mcan_txbuf_config_struct
 
struct  mcan_txbuf_elem_config_struct
 
union  mcan_tx_evt_fifo_config_t
 MCAN TX Event FIFO Structure. More...
 
struct  mcan_ram_flexible_config_struct
 MCAN RAM Flexible Configuration. More...
 
struct  mcan_ram_config_struct
 MCAN RAM configuration. More...
 
struct  mcan_global_filter_config_struct
 MCAN Global CAN configuration. More...
 
struct  mcan_std_id_filter_elem_struct
 MCAN Filter Element definitions. More...
 
struct  mcan_filter_elem_list_struct
 MCAN Filter Element List structure. More...
 
struct  mcan_all_filters_config_struct
 MCAN Configuration for all filters. More...
 
struct  mcan_timestamp_value_struct
 MCAN Timestamp Value. More...
 
struct  mcan_tsu_config_struct
 MCAN TSU Configuration. More...
 
struct  mcan_internal_timestamp_config_struct
 MCAN Internal timestamp configuration. More...
 
struct  mcan_timeout_config_struct
 MCAN Timeout configuration structure. More...
 
struct  mcan_tdc_config_t
 MCAN Transmitter Delay Compensation Configuration. More...
 
struct  mcan_config_struct
 MCAN Configuration Structure. More...
 
struct  mcan_timeout_counter_config_struct
 MCAN Timeout Counter Configuration. More...
 
struct  mcan_error_count_struct
 MCAN Error Count Information. More...
 
struct  mcan_protocol_status
 MCAN Protocol Status. More...
 
struct  mcan_high_priority_message_status_struct
 MCAN High Priority Message Status Information. More...
 

Macros

#define MCAN_INT_ACCESS_TO_RESERVED_ADDR   MCAN_IR_ARA_MASK
 CAN Interrupt Mask. More...
 
#define MCAN_INT_PROTOCOL_ERR_IN_DATA_PHASE   MCAN_IR_PED_MASK
 
#define MCAN_INT_PROTOCOL_ERR_IN_ARB_PHASE   MCAN_IR_PEA_MASK
 
#define MCAN_INT_WATCHDOG_INT   MCAN_IR_WDI_MASK
 
#define MCAN_INT_BUS_OFF_STATUS   MCAN_IR_BO_MASK
 
#define MCAN_INT_WARNING_STATUS   MCAN_IR_EW_MASK
 
#define MCAN_INT_ERROR_PASSIVE   MCAN_IR_EP_MASK
 
#define MCAN_INT_ERROR_LOGGING_OVERFLOW   MCAN_IR_ELO_MASK
 
#define MCAN_INT_BIT_ERROR_UNCORRECTED   MCAN_IR_BEU_MASK
 
#define MCAN_INT_BIT_ERROR_CORRECTED   MCAN_IR_BEC_MASK
 
#define MCAN_INT_MSG_STORE_TO_RXBUF   MCAN_IR_DRX_MASK
 
#define MCAN_INT_TIMEOUT_OCCURRED   MCAN_IR_TOO_MASK
 
#define MCAN_INT_MSG_RAM_ACCESS_FAILURE   MCAN_IR_MRAF_MASK
 
#define MCAN_INT_TIMESTAMP_WRAPAROUND   MCAN_IR_TSW_MASK
 
#define MCAN_INT_TX_EVT_FIFO_EVT_LOST   MCAN_IR_TEFL_MASK
 
#define MCAN_INT_TX_EVT_FIFO_FULL   MCAN_IR_TEFF_MASK
 
#define MCAN_INT_TX_EVT_FIFO_WMK_REACHED   MCAN_IR_TEFW_MASK
 
#define MCAN_INT_TX_EVT_FIFO_NEW_ENTRY   MCAN_IR_TEFN_MASK
 
#define MCAN_INT_TXFIFO_EMPTY   MCAN_IR_TFE_MASK
 
#define MCAN_INT_TX_CANCEL_FINISHED   MCAN_IR_TCF_MASK
 
#define MCAN_INT_TX_COMPLETED   MCAN_IR_TC_MASK
 
#define MCAN_INT_HIGH_PRIORITY_MSG   MCAN_IR_HPM_MASK
 
#define MCAN_INT_RXFIFO1_MSG_LOST   MCAN_IR_RF1L_MASK
 
#define MCAN_INT_RXFIFO1_FULL   MCAN_IR_RF1F_MASK
 
#define MCAN_INT_RXFIFO1_WMK_REACHED   MCAN_IR_RF1W_MASK
 
#define MCAN_INT_RXFIFO1_NEW_MSG   MCAN_IR_RF1N_MASK
 
#define MCAN_INT_RXFIFO0_MSG_LOST   MCAN_IR_RF0L_MASK
 
#define MCAN_INT_RXFIFO0_FULL   MCAN_IR_RF0F_MASK
 
#define MCAN_INT_RXFIFO0_WMK_REACHED   MCAN_IR_RF0W_MASK
 
#define MCAN_INT_RXFIFO0_NEW_MSG   MCAN_IR_RF0N_MASK
 
#define MCAN_EVENT_RECEIVE   (MCAN_INT_RXFIFO0_NEW_MSG | MCAN_INT_RXFIFO1_NEW_MSG | MCAN_INT_MSG_STORE_TO_RXBUF)
 MCAN Receive Event Flags. More...
 
#define MCAN_EVENT_TRANSMIT   (MCAN_INT_TX_COMPLETED)
 MCAN Transmit Event Flags. More...
 
#define MCAN_EVENT_ERROR
 MCAN Error Event Flags. More...
 
#define MCAN_TX_RETRY_COUNT_MAX   (10000000UL)
 Maximum Transmission Retry Count. More...
 
#define MCAN_RX_RETRY_COUNT_MAX   (80000000UL)
 Maximum Receive Wait Retry Count. More...
 
#define MCAN_RAM_WORD_SIZE   (640U)
 
#define MCAN_FILTER_ELEM_STD_ID_SIZE   (4U)
 
#define MCAN_FILTER_ELEM_EXT_ID_SIZE   (8U)
 
#define MCAN_STD_FILTER_ELEM_SIZE_MAX   (128U)
 
#define MCAN_EXT_FILTER_ELEM_SIZE_MAX   (64U)
 
#define MCAN_TXRX_ELEM_SIZE_CAN_MAX   (4U * sizeof(uint32_t))
 
#define MCAN_FILTER_SIZE_CAN_DEFAULT   (32U)
 
#define MCAN_TXBUF_SIZE_CAN_DEFAULT   (32U)
 
#define MCAN_RXFIFO_SIZE_CAN_DEFAULT   (32U)
 
#define MCAN_RXBUF_SIZE_CAN_DEFAULT   (16U)
 
#define MCAN_TXRX_ELEM_SIZE_CANFD_MAX   (18U * sizeof(uint32_t))
 
#define MCAN_FILTER_SIZE_CANFD_DEFAULT   (16U)
 
#define MCAN_TXBUF_SIZE_CANFD_DEFAULT   (8U)
 
#define MCAN_RXFIFO_SIZE_CANFD_DEFAULT   (8U)
 
#define MCAN_RXBUF_SIZE_CANFD_DEFAULT   (4U)
 
#define MCAN_TXEVT_ELEM_SIZE   (8U)
 
#define MCAN_MESSAGE_HEADER_SIZE_IN_BYTES   (8U)
 CAN Message Header Size. More...
 
#define MCAN_MESSAGE_HEADER_SIZE_IN_WORDS   (2U)
 
#define MCAN_CAN_ID_TYPE_STANDARD   (0U)
 CAN Identifier Types. More...
 
#define MCAN_CAN_ID_TYPE_EXTENDED   (1U)
 
#define MCAN_DATA_FIELD_SIZE_8BYTES   (0U)
 MCAN Data Field Size Definitions. More...
 
#define MCAN_DATA_FIELD_SIZE_12BYTES   (1U)
 
#define MCAN_DATA_FIELD_SIZE_16BYTES   (2U)
 
#define MCAN_DATA_FIELD_SIZE_20BYTES   (3U)
 
#define MCAN_DATA_FIELD_SIZE_24BYTES   (4U)
 
#define MCAN_DATA_FIELD_SIZE_32BYTES   (5U)
 
#define MCAN_DATA_FIELD_SIZE_48BYTES   (6U)
 
#define MCAN_DATA_FIELD_SIZE_64BYTES   (7U)
 
#define MCAN_FIFO_OPERATION_MODE_BLOCKING   (0U)
 MCAN FIFO Operation Mode types. More...
 
#define MCAN_FIFO_OPERATION_MODE_OVERWRITE   (1U)
 
#define MCAN_TXBUF_OPERATION_MODE_FIFO   (0U)
 MCAN TXBUF operation mode types. More...
 
#define MCAN_TXBUF_OPERATION_MODE_QUEUE   (1U)
 
#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO0   (0U)
 MCAN Accept Non-Matching Frame options. More...
 
#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO1   (1U)
 
#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_REJECT   (2U)
 
#define MCAN_FILTER_TYPE_RANGE_FILTER   (0U)
 MCAN Filter type definitions. More...
 
#define MCAN_FILTER_TYPE_SPECIFIED_ID_FILTER   (1U)
 
#define MCAN_FILTER_TYPE_CLASSIC_FILTER   (2U)
 
#define MCAN_FILTER_TYPE_FILTER_DISABLED   (3U)
 
#define MCAN_FILTER_TYPE_DUAL_ID_EXT_FILTER_IGNORE_MASK
 
#define MCAN_FILTER_ELEM_CFG_DISABLED   (0)
 MCAN Filter Configuration Options. More...
 
#define MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO0_IF_MATCH   (1U)
 
#define MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO1_IF_MATCH   (2U)
 
#define MCAN_FILTER_ELEM_CFG_REJECT_ID_IF_MATCH   (3U)
 
#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_IF_MATCH   (4U)
 
#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO0_IF_MATCH   (5U)
 
#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO1_IF_MATCH   (6U)
 
#define MCAN_FILTER_ELEM_CFG_STORE_INTO_RX_BUFFER_OR_AS_DBG_MSG   (7U)
 
#define MCAN_TIMESTAMP_SEL_MIN   (0U)
 MCAN Timestamp Select. More...
 
#define MCAN_TIMESTAMP_SEL_VALUE_ALWAYS_ZERO   (0U)
 
#define MCAN_TIMESTAMP_SEL_VALUE_INCREMENT   (1U)
 
#define MCAN_TIMESTAMP_SEL_EXT_TS_VAL_USED   (2U)
 
#define MCAN_TIMESTAMP_SEL_MAX   (MCAN_TIMESTAMP_SEL_EXT_TS_VAL_USED)
 
#define MCAN_TIMEOUT_SEL_TYPE_CONTINUOUS_OPERATION   (0U)
 MCAN Timeout Selection Options. More...
 
#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_TX_EVT_FIFO   (1U)
 
#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO0   (2U)
 
#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO1   (3U)
 
#define MCAN_MESSAGE_STORAGE_INDICATOR_NO_FIFO_SELECTED   (0U)
 MCAN Message Storage Indicator Types. More...
 
#define MCAN_MESSAGE_STORAGE_INDICATOR_FIFO_MESSAGE_LOST   (1U)
 
#define MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO0   (2U)
 
#define MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO1   (3U)
 

Typedefs

typedef enum mcan_last_error_code mcan_last_err_code_t
 MCAN Last Error Code. More...
 
typedef enum mcan_activity_enum mcan_activity_state_t
 MCAN Communication State. More...
 
typedef struct mcan_bit_timing_param_struct mcan_bit_timing_param_t
 CAN Bit Timing Parameters. More...
 
typedef enum mcan_bit_timing_option mcan_bit_timing_option_t
 CAN Bit Timing Options. More...
 
typedef struct mcan_tx_message_struct mcan_tx_frame_t
 CAN Transmit Message Frame. More...
 
typedef struct mcan_rx_message_struct mcan_rx_message_t
 CAN Receive Message Frame. More...
 
typedef union mcan_tx_event_fifo_elem_struct mcan_tx_event_fifo_elem_t
 TX Event Fifo Element Structure. More...
 
typedef union mcan_filter_config_struct mcan_filter_config_t
 MCAN Filter Configuration. More...
 
typedef union mcan_rxfifo_config_struct mcan_rxfifo_config_t
 MCAN RXFIFO Configuration. More...
 
typedef union mcan_rx_fifo_or_buf_elem_config_struct mcan_rx_fifo_or_buf_elem_config_t
 MCAN RXBUF or RXFIFO Element Configuration. More...
 
typedef union mcan_txbuf_config_struct mcan_txbuf_config_t
 
typedef struct mcan_txbuf_elem_config_struct mcan_txbuf_elem_config_t
 
typedef struct mcan_ram_flexible_config_struct mcan_ram_flexible_config_t
 MCAN RAM Flexible Configuration. More...
 
typedef struct mcan_ram_config_struct mcan_ram_config_t
 MCAN RAM configuration. More...
 
typedef struct mcan_global_filter_config_struct mcan_global_filter_config_t
 MCAN Global CAN configuration. More...
 
typedef struct mcan_std_id_filter_elem_struct mcan_filter_elem_t
 MCAN Filter Element definitions. More...
 
typedef struct mcan_filter_elem_list_struct mcan_filter_elem_list_t
 MCAN Filter Element List structure. More...
 
typedef struct mcan_all_filters_config_struct mcan_all_filters_config_t
 MCAN Configuration for all filters. More...
 
typedef enum mcan_node_mode_enum mcan_node_mode_t
 CAN Node Mode types. More...
 
typedef struct mcan_timestamp_value_struct mcan_timestamp_value_t
 MCAN Timestamp Value. More...
 
typedef struct mcan_tsu_config_struct mcan_tsu_config_t
 MCAN TSU Configuration. More...
 
typedef struct mcan_internal_timestamp_config_struct mcan_internal_timestamp_config_t
 MCAN Internal timestamp configuration. More...
 
typedef enum mcan_timeout_sel_enum mcan_timeout_sel_t
 MCAN Timeout Selection Options. More...
 
typedef struct mcan_timeout_config_struct mcan_timeout_config_t
 MCAN Timeout configuration structure. More...
 
typedef struct mcan_tdc_config_t mcan_tdc_config_t
 MCAN Transmitter Delay Compensation Configuration. More...
 
typedef struct mcan_config_struct mcan_config_t
 MCAN Configuration Structure. More...
 
typedef struct mcan_timeout_counter_config_struct mcan_timeout_counter_config_t
 MCAN Timeout Counter Configuration. More...
 
typedef struct mcan_error_count_struct mcan_error_count_t
 MCAN Error Count Information. More...
 
typedef struct mcan_protocol_status mcan_protocol_status_t
 MCAN Protocol Status. More...
 
typedef struct mcan_high_priority_message_status_struct mcan_high_priority_message_status_t
 MCAN High Priority Message Status Information. More...
 

Enumerations

enum  {
  status_mcan_filter_index_out_of_range = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 0 )) , status_mcan_rxfifo_empty = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 1 )) , status_mcan_rxfifo_full = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 2 )) , status_mcan_txbuf_full = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 3 )) ,
  status_mcan_txfifo_full = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 4 )) , status_mcan_rxfifo0_busy = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 5 )) , status_mcan_rxfifo1_busy = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 6 )) , status_mcan_txbuf_index_out_of_range = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 7 )) ,
  status_mcan_rxbuf_index_out_of_range = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 8 )) , status_mcan_rxbuf_empty = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 9 )) , status_mcan_tx_evt_fifo_empty = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 10 )) , status_mcan_timestamp_not_exist = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 11 )) ,
  status_mcan_ram_out_of_range = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 12 )) , status_mcan_timeout = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 13 )) , status_mcan_invalid_bit_timing = ((uint32_t)( status_group_mcan )*1000U + (uint32_t)( 14 ))
}
 
enum  mcan_last_error_code {
  mcan_last_error_code_no_error = 0 , mcan_last_error_code_stuff_error , mcan_last_error_code_format_error , mcan_last_error_code_ack_error ,
  mcan_last_error_code_bit1_error , mcan_last_error_code_bit0_error , mcan_last_error_code_crc_error , mcan_last_error_code_no_change
}
 MCAN Last Error Code. More...
 
enum  mcan_activity_enum { mcan_activity_sync = 0 , mcan_activity_idle , mcan_activity_receiver , mcan_activity_transmitter }
 MCAN Communication State. More...
 
enum  mcan_bit_timing_option { mcan_bit_timing_can2_0 , mcan_bit_timing_canfd_nominal , mcan_bit_timing_canfd_data }
 CAN Bit Timing Options. More...
 
enum  mcan_node_mode_enum { mcan_mode_normal = 0 , mcan_mode_loopback_internal = 1 , mcan_mode_loopback_external = 2 , mcan_mode_listen_only = 3 }
 CAN Node Mode types. More...
 
enum  mcan_timeout_sel_enum { mcan_timeout_continuous_operation = 0 , mcan_timeout_triggered_by_tx_evt_fifo = 1 , mcan_timeout_triggered_by_rx_fifo0 = 2 , mcan_timeout_triggered_by_rx_fifo1 = 3 }
 MCAN Timeout Selection Options. More...
 

Functions

static void mcan_enable_transmit_pause (MCAN_Type *ptr)
 Enable Transmit Pause. More...
 
static void mcan_disable_transmit_pause (MCAN_Type *ptr)
 Disable Transmit Pause. More...
 
static void mcan_enable_edge_filtering (MCAN_Type *ptr)
 Enable Edge Filtering. More...
 
static void mcan_disable_edge_filtering (MCAN_Type *ptr)
 Disable Edge Filtering. More...
 
static void mcan_enable_protocol_exception_handling (MCAN_Type *ptr)
 Enable Protocol Exception Handling. More...
 
static void mcan_disable_protocol_exception_handling (MCAN_Type *ptr)
 Disable Protocol Exception Handling. More...
 
static void mcan_enable_wide_message_marker (MCAN_Type *ptr)
 Enable Wide Message Marker. More...
 
static void mcan_disable_wide_message_marker (MCAN_Type *ptr)
 Disable Wide Message Marker. More...
 
static void mcan_enable_tsu (MCAN_Type *ptr)
 Enable External Timestamp Unit. More...
 
static void mcan_disable_tsu (MCAN_Type *ptr)
 Disable External Timestamp Unit. More...
 
static bool mcan_is_tsu_used (MCAN_Type *ptr)
 Check whether TSU is used. More...
 
static bool mcan_is_64bit_tsu_timestamp_used (MCAN_Type *ptr)
 Check whether 64-bit TSU timestamp is used. More...
 
static void mcan_enable_bitrate_switch (MCAN_Type *ptr)
 Enable Bit Rate Switch. More...
 
static void mcan_disable_bitrate_switch (MCAN_Type *ptr)
 Disable Bit Rate Switch. More...
 
static void mcan_enable_auto_retransmission (MCAN_Type *ptr)
 Enable Auto Retransmission. More...
 
static void mcan_disable_auto_retransmission (MCAN_Type *ptr)
 Disable Auto Transmission. More...
 
static void mcan_enable_bus_monitoring_mode (MCAN_Type *ptr)
 Enable Bus monitoring Mode. More...
 
static void mcan_stop_clock (MCAN_Type *ptr)
 Stop MCAN clock. More...
 
static void mcan_enable_clock (MCAN_Type *ptr)
 Enable MCAN clock. More...
 
static bool mcan_is_clock_enabled (MCAN_Type *ptr)
 
static void mcan_disable_bus_monitoring_mode (MCAN_Type *ptr)
 Disable Bus monitoring Mode. More...
 
static bool mcan_is_clock_stopped (MCAN_Type *ptr)
 Check whether CAN clock is stopped or not. More...
 
static void mcan_enable_restricted_operation_mode (MCAN_Type *ptr)
 Enable Restricted Operation Mode. More...
 
static void mcan_disable_restricted_operation_mode (MCAN_Type *ptr)
 Disable Restricted Operation Mode. More...
 
static void mcan_enable_write_to_prot_config_registers (MCAN_Type *ptr)
 Enable Write Access to Protected Configuration Registers. More...
 
static void mcan_disable_write_to_prot_config_registers (MCAN_Type *ptr)
 Disable Write Access to Protected Configuration Registers. More...
 
static uint16_t mcan_get_timestamp_counter_value (MCAN_Type *ptr)
 Get Timestamp Counter Value. More...
 
static void mcan_enter_init_mode (MCAN_Type *ptr)
 Switch MCAN to Initialization mode. More...
 
static void mcan_enter_normal_mode (MCAN_Type *ptr)
 Switch MCAN to Normal mode. More...
 
static uint16_t mcan_get_timeout_counter_value (MCAN_Type *ptr)
 Get Timeout value. More...
 
static void mcan_reset_timeout_counter_value (MCAN_Type *ptr)
 Reset Timeout counter value. More...
 
static void mcan_get_error_counter (MCAN_Type *ptr, mcan_error_count_t *err_cnt)
 Get Error Counter Information. More...
 
static uint8_t mcan_get_last_error_code (MCAN_Type *ptr)
 Get Last Error Code. More...
 
static uint8_t mcan_get_last_data_error_code (MCAN_Type *ptr)
 Get Last Data Phase Error Code. More...
 
static uint8_t mcan_get_activity (MCAN_Type *ptr)
 Get CAN Activity. More...
 
static bool mcan_is_in_err_passive_state (MCAN_Type *ptr)
 Check whether the CAN node is under error passive state. More...
 
static bool mcan_is_in_error_warning_state (MCAN_Type *ptr)
 Check whether the CAN mode is under Warning State. More...
 
static bool mcan_is_in_busoff_state (MCAN_Type *ptr)
 Check whether the CAN node is under Bus-off state. More...
 
static uint8_t mcan_get_data_phase_last_error_code (MCAN_Type *ptr)
 Get the Last Data Phase Error. More...
 
static bool mcan_is_error_state_indicator_flag_set_in_last_received_canfd_msg (MCAN_Type *ptr)
 Check Whether the Error Status Indicator Flag is set in the last received CANFD message. More...
 
static bool mcan_is_bitrate_switch_flag_set_in_last_received_canfd_msg (MCAN_Type *ptr)
 Check whether the Bitrate Switch Flag is set in the last received CANFD message. More...
 
static bool mcan_is_canfd_message_received (MCAN_Type *ptr)
 Check whether CANFD messages were received. More...
 
static bool mcan_is_protocol_exception_event_occurred (MCAN_Type *ptr)
 Check whether Protocol Exception Events were occurred. More...
 
static uint8_t mcan_get_transmitter_delay_compensation_value (MCAN_Type *ptr)
 Get the Transmitter Delay Compensation Value. More...
 
static uint32_t mcan_get_interrupt_flags (MCAN_Type *ptr)
 Get Interrupt Flags. More...
 
static void mcan_clear_interrupt_flags (MCAN_Type *ptr, uint32_t mask)
 Clear Interrupt Flags. More...
 
static void mcan_enable_interrupts (MCAN_Type *ptr, uint32_t mask)
 Enable Interrupts. More...
 
static void mcan_enable_txbuf_interrupt (MCAN_Type *ptr, uint32_t mask)
 Enable TXBUF Interrupt. More...
 
static void mcan_disable_txbuf_interrupt (MCAN_Type *ptr, uint32_t mask)
 Disable TXBUF Interrupt. More...
 
static void mcan_disable_interrupts (MCAN_Type *ptr, uint32_t mask)
 Disable Interrupts. More...
 
static void mcan_enable_txbuf_transmission_interrupt (MCAN_Type *ptr, uint32_t mask)
 Enable TXBUF Transmission interrupt. More...
 
static void mcan_disable_txbuf_transmission_interrupt (MCAN_Type *ptr, uint32_t mask)
 Disable TXBUF Transmission interrupt. More...
 
static void mcan_enable_txbuf_cancel_finish_interrupt (MCAN_Type *ptr, uint32_t mask)
 Enable TXBUF Cancellation Finish interrupt. More...
 
static void mcan_disable_txbuf_cancel_finish_interrupt (MCAN_Type *ptr, uint32_t mask)
 Disable TXBUF Cancellation Finish interrupt. More...
 
static void mcan_interrupt_line_select (MCAN_Type *ptr, uint32_t mask, uint8_t line_index)
 Select Interrupt Line. More...
 
static bool mcan_is_transmit_request_pending (MCAN_Type *ptr, uint32_t index)
 Check whether a TXFIFO/TXBUF transmission request is pending. More...
 
static bool mcan_is_txfifo_full (MCAN_Type *ptr)
 Check whether TXFIFO is full. More...
 
static uint32_t mcan_get_txfifo_put_index (MCAN_Type *ptr)
 Get the TXFIFO Put Index. More...
 
static void mcan_send_add_request (MCAN_Type *ptr, uint32_t index)
 Request A Transmission via specified TXBUF Index. More...
 
static void mcan_send_add_multiple_requests (MCAN_Type *ptr, uint32_t index_bitmask)
 Request several transmission via specified TXBUF/FIFO Bit masks MCAN IP will transmit data in the buffer if corresponding bit in index_bitmask is asserted. More...
 
static void mcan_cancel_tx_buf_send_request (MCAN_Type *ptr, uint32_t index)
 Cancel the TXBUF Send request. More...
 
static bool mcan_is_transmit_occurred (MCAN_Type *ptr, uint32_t index)
 Check whether the Transmission completed via specified TXBUF/TXFIFO. More...
 
static bool mcan_is_rxbuf_data_available (MCAN_Type *ptr, uint32_t index)
 Check Whether there are data available in specified RXBUF. More...
 
static void mcan_clear_rxbuf_data_available_flag (MCAN_Type *ptr, uint32_t index)
 Clear RXBUF Data available Flag for specified RXBUF. More...
 
static bool mcan_is_interrupt_flag_set (MCAN_Type *ptr, uint32_t mask)
 Check whether specified Interrupt is set. More...
 
static bool mcan_is_tsu_timestamp_available (MCAN_Type *ptr, uint32_t index)
 Check whether the TSU timestamp is available. More...
 
uint32_t mcan_read_32bit_tsu_timestamp (MCAN_Type *ptr, uint32_t index)
 Read 32bit Timestamp value from TSU. More...
 
uint64_t mcan_read_64bit_tsu_timestamp (MCAN_Type *ptr, uint32_t index)
 Read 64bit Timestamp value from TSU. More...
 
void mcan_get_high_priority_message_status (MCAN_Type *ptr, mcan_high_priority_message_status_t *status)
 Get High Priority Message Status. More...
 
void mcan_get_default_config (MCAN_Type *ptr, mcan_config_t *config)
 Get Default CAN configuration. More...
 
uint8_t mcan_get_message_size_from_dlc (uint8_t dlc)
 Get message Size from Data Length Code. More...
 
uint8_t mcan_get_data_field_size (uint8_t data_field_size_option)
 Get the Data field size from data field size option. More...
 
void mcan_get_default_ram_flexible_config (MCAN_Type *ptr, mcan_ram_flexible_config_t *ram_config, bool enable_canfd)
 Get Default Full MCAN RAM configuration If the device is configured as classic CAN node, the default CAN RAM settings are as below: More...
 
void mcan_get_default_ram_config (MCAN_Type *ptr, mcan_ram_config_t *simple_config, bool enable_canfd)
 Get Default MCAN RAM configuration If the device is configured as classic CAN node, the default CAN RAM settings are as below: More...
 
hpm_stat_t mcan_init (MCAN_Type *ptr, mcan_config_t *config, uint32_t src_clk_freq)
 Initialize CAN controller. More...
 
void mcan_deinit (MCAN_Type *ptr)
 De-Initialize CAN controller. More...
 
hpm_stat_t mcan_config_ram_with_flexible_config (MCAN_Type *ptr, mcan_ram_flexible_config_t *config)
 Configure MCAN RAM will Full RAM configuration. More...
 
hpm_stat_t mcan_config_ram (MCAN_Type *ptr, mcan_ram_config_t *config)
 Configure MCAN RAM will Simplified RAM configuration. More...
 
hpm_stat_t mcan_config_all_filters (MCAN_Type *ptr, mcan_all_filters_config_t *config)
 Configure All CAN filters. More...
 
hpm_stat_t mcan_config_transmitter_delay_compensation (MCAN_Type *ptr, mcan_tdc_config_t *config)
 Configure Transmitter Delay Compensation. More...
 
hpm_stat_t mcan_set_global_filter_config (MCAN_Type *ptr, mcan_global_filter_config_t *filter_config)
 Configure Global Filter. More...
 
hpm_stat_t mcan_set_filter_element (MCAN_Type *ptr, const mcan_filter_elem_t *filter_elem, uint32_t index)
 Set CAN filter element. More...
 
hpm_stat_t mcan_write_txbuf (MCAN_Type *ptr, uint32_t index, mcan_tx_frame_t *tx_frame)
 Write Frame to CAN TX Buffer. More...
 
hpm_stat_t mcan_write_txfifo (MCAN_Type *ptr, mcan_tx_frame_t *tx_frame)
 Write Frame CAN to TXFIFO. More...
 
hpm_stat_t mcan_read_rxbuf (MCAN_Type *ptr, uint32_t index, mcan_rx_message_t *rx_frame)
 Read message from CAN RXBUF. More...
 
hpm_stat_t mcan_read_rxfifo (MCAN_Type *ptr, uint32_t fifo_index, mcan_rx_message_t *rx_frame)
 Read message from CAN RXBUF. More...
 
hpm_stat_t mcan_read_tx_evt_fifo (MCAN_Type *ptr, mcan_tx_event_fifo_elem_t *tx_evt)
 Read TX Event from CAN TX EVENT FIFO. More...
 
hpm_stat_t mcan_transmit_blocking (MCAN_Type *ptr, mcan_tx_frame_t *tx_frame)
 Transmit CAN message in blocking way. More...
 
hpm_stat_t mcan_request_and_fill_txfifo (MCAN_Type *ptr, mcan_tx_frame_t *tx_frame, uint32_t *fifo_index)
 Request TXFIFO and fill data into TXFIFO. More...
 
hpm_stat_t mcan_transmit_via_txfifo_nonblocking (MCAN_Type *ptr, mcan_tx_frame_t *tx_frame, uint32_t *fifo_index)
 Transmit CAN message via TX FIFO in non-blocking way. More...
 
hpm_stat_t mcan_transmit_via_txbuf_nonblocking (MCAN_Type *ptr, uint32_t index, mcan_tx_frame_t *tx_frame)
 Transmit CAN message via TX in non-blocking way. More...
 
hpm_stat_t mcan_receive_from_buf_blocking (MCAN_Type *ptr, uint32_t index, mcan_rx_message_t *rx_frame)
 Receive CAN Frame from RXBUF in blocking way. More...
 
hpm_stat_t mcan_receive_from_fifo_blocking (MCAN_Type *ptr, uint32_t fifo_index, mcan_rx_message_t *rx_frame)
 Receive CAN Frame from RXFIFO in blocking way. More...
 
hpm_stat_t mcan_get_timestamp_from_tx_event (MCAN_Type *ptr, const mcan_tx_event_fifo_elem_t *tx_evt, mcan_timestamp_value_t *timestamp)
 Get Timestamp from MCAN TX Event. More...
 
hpm_stat_t mcan_get_timestamp_from_received_message (MCAN_Type *ptr, const mcan_rx_message_t *rx_msg, mcan_timestamp_value_t *timestamp)
 Get Timestamp from MCAN RX frame. More...
 
hpm_stat_t mcan_parse_protocol_status (uint32_t psr, mcan_protocol_status_t *protocol_status)
 Parse the Protocol Status register value. More...
 
hpm_stat_t mcan_get_protocol_status (MCAN_Type *ptr, mcan_protocol_status_t *protocol_status)
 Get MCAN Protocol Status. More...
 

Detailed Description

MCAN driver APIs.

Macro Definition Documentation

◆ MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO0

#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO0   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Accept Non-Matching Frame options.

Save non-matching frame to RXFIFO0

◆ MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO1

#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_IN_RXFIFO1   (1U)

#include <drivers/inc/hpm_mcan_drv.h>

Save non-matching frame to RXFIFO1

◆ MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_REJECT

#define MCAN_ACCEPT_NON_MATCHING_FRAME_OPTION_REJECT   (2U)

#include <drivers/inc/hpm_mcan_drv.h>

Reject non-matching frame

◆ MCAN_CAN_ID_TYPE_EXTENDED

#define MCAN_CAN_ID_TYPE_EXTENDED   (1U)

#include <drivers/inc/hpm_mcan_drv.h>

Extended Identifier

◆ MCAN_CAN_ID_TYPE_STANDARD

#define MCAN_CAN_ID_TYPE_STANDARD   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

CAN Identifier Types.

Standard Identifier

◆ MCAN_DATA_FIELD_SIZE_12BYTES

#define MCAN_DATA_FIELD_SIZE_12BYTES   (1U)

◆ MCAN_DATA_FIELD_SIZE_16BYTES

#define MCAN_DATA_FIELD_SIZE_16BYTES   (2U)

◆ MCAN_DATA_FIELD_SIZE_20BYTES

#define MCAN_DATA_FIELD_SIZE_20BYTES   (3U)

◆ MCAN_DATA_FIELD_SIZE_24BYTES

#define MCAN_DATA_FIELD_SIZE_24BYTES   (4U)

◆ MCAN_DATA_FIELD_SIZE_32BYTES

#define MCAN_DATA_FIELD_SIZE_32BYTES   (5U)

◆ MCAN_DATA_FIELD_SIZE_48BYTES

#define MCAN_DATA_FIELD_SIZE_48BYTES   (6U)

◆ MCAN_DATA_FIELD_SIZE_64BYTES

#define MCAN_DATA_FIELD_SIZE_64BYTES   (7U)

◆ MCAN_DATA_FIELD_SIZE_8BYTES

#define MCAN_DATA_FIELD_SIZE_8BYTES   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Data Field Size Definitions.

◆ MCAN_EVENT_ERROR

#define MCAN_EVENT_ERROR

#include <drivers/inc/hpm_mcan_drv.h>

Value:
#define MCAN_INT_BUS_OFF_STATUS
Definition: hpm_mcan_drv.h:53
#define MCAN_INT_ERROR_PASSIVE
Definition: hpm_mcan_drv.h:55
#define MCAN_INT_PROTOCOL_ERR_IN_DATA_PHASE
Definition: hpm_mcan_drv.h:49
#define MCAN_INT_WARNING_STATUS
Definition: hpm_mcan_drv.h:54
#define MCAN_INT_BIT_ERROR_UNCORRECTED
Definition: hpm_mcan_drv.h:57
#define MCAN_INT_PROTOCOL_ERR_IN_ARB_PHASE
Definition: hpm_mcan_drv.h:50

MCAN Error Event Flags.

◆ MCAN_EVENT_RECEIVE

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Receive Event Flags.

◆ MCAN_EVENT_TRANSMIT

#define MCAN_EVENT_TRANSMIT   (MCAN_INT_TX_COMPLETED)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Transmit Event Flags.

◆ MCAN_EXT_FILTER_ELEM_SIZE_MAX

#define MCAN_EXT_FILTER_ELEM_SIZE_MAX   (64U)

#include <drivers/inc/hpm_mcan_drv.h>

Maximum Extended Filter Element Count

◆ MCAN_FIFO_OPERATION_MODE_BLOCKING

#define MCAN_FIFO_OPERATION_MODE_BLOCKING   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN FIFO Operation Mode types.

◆ MCAN_FIFO_OPERATION_MODE_OVERWRITE

#define MCAN_FIFO_OPERATION_MODE_OVERWRITE   (1U)

◆ MCAN_FILTER_ELEM_CFG_DISABLED

#define MCAN_FILTER_ELEM_CFG_DISABLED   (0)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Filter Configuration Options.

Disable Filter Element

◆ MCAN_FILTER_ELEM_CFG_REJECT_ID_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_REJECT_ID_IF_MATCH   (3U)

#include <drivers/inc/hpm_mcan_drv.h>

Reject ID if matching

◆ MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO0_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO0_IF_MATCH   (5U)

#include <drivers/inc/hpm_mcan_drv.h>

Set Priority and store into RXFIFO1 if matching

◆ MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO1_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_AND_STORE_IN_FIFO1_IF_MATCH   (6U)

◆ MCAN_FILTER_ELEM_CFG_SET_PRIORITY_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_SET_PRIORITY_IF_MATCH   (4U)

#include <drivers/inc/hpm_mcan_drv.h>

Set Priority if matching Set Priority and store into RXFIFO0 if matching

◆ MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO0_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO0_IF_MATCH   (1U)

#include <drivers/inc/hpm_mcan_drv.h>

Store data into RXFIFO0 if matching

◆ MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO1_IF_MATCH

#define MCAN_FILTER_ELEM_CFG_STORE_IN_RX_FIFO1_IF_MATCH   (2U)

#include <drivers/inc/hpm_mcan_drv.h>

Store data into RXFIFO1 if matching

◆ MCAN_FILTER_ELEM_CFG_STORE_INTO_RX_BUFFER_OR_AS_DBG_MSG

#define MCAN_FILTER_ELEM_CFG_STORE_INTO_RX_BUFFER_OR_AS_DBG_MSG   (7U)

#include <drivers/inc/hpm_mcan_drv.h>

Store into RXBUF if matching

◆ MCAN_FILTER_ELEM_EXT_ID_SIZE

#define MCAN_FILTER_ELEM_EXT_ID_SIZE   (8U)

#include <drivers/inc/hpm_mcan_drv.h>

Extended Filter Element SIze in Bytes

◆ MCAN_FILTER_ELEM_STD_ID_SIZE

#define MCAN_FILTER_ELEM_STD_ID_SIZE   (4U)

#include <drivers/inc/hpm_mcan_drv.h>

Standard Filter Element Size in Bytes

◆ MCAN_FILTER_SIZE_CAN_DEFAULT

#define MCAN_FILTER_SIZE_CAN_DEFAULT   (32U)

◆ MCAN_FILTER_SIZE_CANFD_DEFAULT

#define MCAN_FILTER_SIZE_CANFD_DEFAULT   (16U)

◆ MCAN_FILTER_TYPE_CLASSIC_FILTER

#define MCAN_FILTER_TYPE_CLASSIC_FILTER   (2U)

#include <drivers/inc/hpm_mcan_drv.h>

CAN classic filter

◆ MCAN_FILTER_TYPE_DUAL_ID_EXT_FILTER_IGNORE_MASK

#define MCAN_FILTER_TYPE_DUAL_ID_EXT_FILTER_IGNORE_MASK

#include <drivers/inc/hpm_mcan_drv.h>

CAN Identifier Range filter, ignoring extended ID mask

◆ MCAN_FILTER_TYPE_FILTER_DISABLED

#define MCAN_FILTER_TYPE_FILTER_DISABLED   (3U)

#include <drivers/inc/hpm_mcan_drv.h>

CAN filter disabled

◆ MCAN_FILTER_TYPE_RANGE_FILTER

#define MCAN_FILTER_TYPE_RANGE_FILTER   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Filter type definitions.

CAN Identifier Range filter

◆ MCAN_FILTER_TYPE_SPECIFIED_ID_FILTER

#define MCAN_FILTER_TYPE_SPECIFIED_ID_FILTER   (1U)

#include <drivers/inc/hpm_mcan_drv.h>

CAN Identifier ID filter

◆ MCAN_INT_ACCESS_TO_RESERVED_ADDR

#define MCAN_INT_ACCESS_TO_RESERVED_ADDR   MCAN_IR_ARA_MASK

#include <drivers/inc/hpm_mcan_drv.h>

CAN Interrupt Mask.

Access to Reserved Address

◆ MCAN_INT_BIT_ERROR_CORRECTED

#define MCAN_INT_BIT_ERROR_CORRECTED   MCAN_IR_BEC_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Bit Error was corrected

◆ MCAN_INT_BIT_ERROR_UNCORRECTED

#define MCAN_INT_BIT_ERROR_UNCORRECTED   MCAN_IR_BEU_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Bit Error was not corrected

◆ MCAN_INT_BUS_OFF_STATUS

#define MCAN_INT_BUS_OFF_STATUS   MCAN_IR_BO_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Bus-off State Change

◆ MCAN_INT_ERROR_LOGGING_OVERFLOW

#define MCAN_INT_ERROR_LOGGING_OVERFLOW   MCAN_IR_ELO_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Error Logging Overflow

◆ MCAN_INT_ERROR_PASSIVE

#define MCAN_INT_ERROR_PASSIVE   MCAN_IR_EP_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Error Passive State Change

◆ MCAN_INT_HIGH_PRIORITY_MSG

#define MCAN_INT_HIGH_PRIORITY_MSG   MCAN_IR_HPM_MASK

#include <drivers/inc/hpm_mcan_drv.h>

High Priority Message

◆ MCAN_INT_MSG_RAM_ACCESS_FAILURE

#define MCAN_INT_MSG_RAM_ACCESS_FAILURE   MCAN_IR_MRAF_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Message RAM Access Failure

◆ MCAN_INT_MSG_STORE_TO_RXBUF

#define MCAN_INT_MSG_STORE_TO_RXBUF   MCAN_IR_DRX_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Message was stored to RX Buffer

◆ MCAN_INT_PROTOCOL_ERR_IN_ARB_PHASE

#define MCAN_INT_PROTOCOL_ERR_IN_ARB_PHASE   MCAN_IR_PEA_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Protocol Error Happened at Arbitration Phase

◆ MCAN_INT_PROTOCOL_ERR_IN_DATA_PHASE

#define MCAN_INT_PROTOCOL_ERR_IN_DATA_PHASE   MCAN_IR_PED_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Protocol Error Happened at Data Phase

◆ MCAN_INT_RXFIFO0_FULL

#define MCAN_INT_RXFIFO0_FULL   MCAN_IR_RF0F_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO0 Full

◆ MCAN_INT_RXFIFO0_MSG_LOST

#define MCAN_INT_RXFIFO0_MSG_LOST   MCAN_IR_RF0L_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO0 Message Lost

◆ MCAN_INT_RXFIFO0_NEW_MSG

#define MCAN_INT_RXFIFO0_NEW_MSG   MCAN_IR_RF0N_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO0 New Message

◆ MCAN_INT_RXFIFO0_WMK_REACHED

#define MCAN_INT_RXFIFO0_WMK_REACHED   MCAN_IR_RF0W_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO0 Watermark Reached

◆ MCAN_INT_RXFIFO1_FULL

#define MCAN_INT_RXFIFO1_FULL   MCAN_IR_RF1F_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO1 Full

◆ MCAN_INT_RXFIFO1_MSG_LOST

#define MCAN_INT_RXFIFO1_MSG_LOST   MCAN_IR_RF1L_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO1 Message Lost

◆ MCAN_INT_RXFIFO1_NEW_MSG

#define MCAN_INT_RXFIFO1_NEW_MSG   MCAN_IR_RF1N_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO1 New Message

◆ MCAN_INT_RXFIFO1_WMK_REACHED

#define MCAN_INT_RXFIFO1_WMK_REACHED   MCAN_IR_RF1W_MASK

#include <drivers/inc/hpm_mcan_drv.h>

RX FIFO1 Watermark Reached

◆ MCAN_INT_TIMEOUT_OCCURRED

#define MCAN_INT_TIMEOUT_OCCURRED   MCAN_IR_TOO_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Timeout Interrupt

◆ MCAN_INT_TIMESTAMP_WRAPAROUND

#define MCAN_INT_TIMESTAMP_WRAPAROUND   MCAN_IR_TSW_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Timestamp Counter Wrap Around

◆ MCAN_INT_TX_CANCEL_FINISHED

#define MCAN_INT_TX_CANCEL_FINISHED   MCAN_IR_TCF_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Transmission Cancellation Finished

◆ MCAN_INT_TX_COMPLETED

#define MCAN_INT_TX_COMPLETED   MCAN_IR_TC_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Transmission Completed

◆ MCAN_INT_TX_EVT_FIFO_EVT_LOST

#define MCAN_INT_TX_EVT_FIFO_EVT_LOST   MCAN_IR_TEFL_MASK

#include <drivers/inc/hpm_mcan_drv.h>

TX Event FIFO Element Lost

◆ MCAN_INT_TX_EVT_FIFO_FULL

#define MCAN_INT_TX_EVT_FIFO_FULL   MCAN_IR_TEFF_MASK

#include <drivers/inc/hpm_mcan_drv.h>

TX Event FIFO Full

◆ MCAN_INT_TX_EVT_FIFO_NEW_ENTRY

#define MCAN_INT_TX_EVT_FIFO_NEW_ENTRY   MCAN_IR_TEFN_MASK

#include <drivers/inc/hpm_mcan_drv.h>

TX Event FIFO New Entry

◆ MCAN_INT_TX_EVT_FIFO_WMK_REACHED

#define MCAN_INT_TX_EVT_FIFO_WMK_REACHED   MCAN_IR_TEFW_MASK

#include <drivers/inc/hpm_mcan_drv.h>

TX Event FIFO Watermark Reached

◆ MCAN_INT_TXFIFO_EMPTY

#define MCAN_INT_TXFIFO_EMPTY   MCAN_IR_TFE_MASK

#include <drivers/inc/hpm_mcan_drv.h>

TX FIFO Empty

◆ MCAN_INT_WARNING_STATUS

#define MCAN_INT_WARNING_STATUS   MCAN_IR_EW_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Error Warning State Change

◆ MCAN_INT_WATCHDOG_INT

#define MCAN_INT_WATCHDOG_INT   MCAN_IR_WDI_MASK

#include <drivers/inc/hpm_mcan_drv.h>

Watchdog interrupt

◆ MCAN_MESSAGE_HEADER_SIZE_IN_BYTES

#define MCAN_MESSAGE_HEADER_SIZE_IN_BYTES   (8U)

#include <drivers/inc/hpm_mcan_drv.h>

CAN Message Header Size.

◆ MCAN_MESSAGE_HEADER_SIZE_IN_WORDS

#define MCAN_MESSAGE_HEADER_SIZE_IN_WORDS   (2U)

◆ MCAN_MESSAGE_STORAGE_INDICATOR_FIFO_MESSAGE_LOST

#define MCAN_MESSAGE_STORAGE_INDICATOR_FIFO_MESSAGE_LOST   (1U)

◆ MCAN_MESSAGE_STORAGE_INDICATOR_NO_FIFO_SELECTED

#define MCAN_MESSAGE_STORAGE_INDICATOR_NO_FIFO_SELECTED   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Message Storage Indicator Types.

◆ MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO0

#define MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO0   (2U)

◆ MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO1

#define MCAN_MESSAGE_STORAGE_INDICATOR_RXFIFO1   (3U)

◆ MCAN_RAM_WORD_SIZE

#define MCAN_RAM_WORD_SIZE   (640U)

#include <drivers/inc/hpm_mcan_drv.h>

RAM WORD Size

◆ MCAN_RX_RETRY_COUNT_MAX

#define MCAN_RX_RETRY_COUNT_MAX   (80000000UL)

#include <drivers/inc/hpm_mcan_drv.h>

Maximum Receive Wait Retry Count.

◆ MCAN_RXBUF_SIZE_CAN_DEFAULT

#define MCAN_RXBUF_SIZE_CAN_DEFAULT   (16U)

◆ MCAN_RXBUF_SIZE_CANFD_DEFAULT

#define MCAN_RXBUF_SIZE_CANFD_DEFAULT   (4U)

◆ MCAN_RXFIFO_SIZE_CAN_DEFAULT

#define MCAN_RXFIFO_SIZE_CAN_DEFAULT   (32U)

◆ MCAN_RXFIFO_SIZE_CANFD_DEFAULT

#define MCAN_RXFIFO_SIZE_CANFD_DEFAULT   (8U)

◆ MCAN_STD_FILTER_ELEM_SIZE_MAX

#define MCAN_STD_FILTER_ELEM_SIZE_MAX   (128U)

#include <drivers/inc/hpm_mcan_drv.h>

Maximum Standard Filter Element Count

◆ MCAN_TIMEOUT_SEL_TYPE_CONTINUOUS_OPERATION

#define MCAN_TIMEOUT_SEL_TYPE_CONTINUOUS_OPERATION   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timeout Selection Options.

◆ MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO0

#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO0   (2U)

◆ MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO1

#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_RX_FIFO1   (3U)

◆ MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_TX_EVT_FIFO

#define MCAN_TIMEOUT_SEL_TYPE_TIMEOUT_CTRL_BY_TX_EVT_FIFO   (1U)

◆ MCAN_TIMESTAMP_SEL_EXT_TS_VAL_USED

#define MCAN_TIMESTAMP_SEL_EXT_TS_VAL_USED   (2U)

#include <drivers/inc/hpm_mcan_drv.h>

External Timestamp value used

◆ MCAN_TIMESTAMP_SEL_MAX

#define MCAN_TIMESTAMP_SEL_MAX   (MCAN_TIMESTAMP_SEL_EXT_TS_VAL_USED)

◆ MCAN_TIMESTAMP_SEL_MIN

#define MCAN_TIMESTAMP_SEL_MIN   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timestamp Select.

◆ MCAN_TIMESTAMP_SEL_VALUE_ALWAYS_ZERO

#define MCAN_TIMESTAMP_SEL_VALUE_ALWAYS_ZERO   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

Timestamp value always equal to 0

◆ MCAN_TIMESTAMP_SEL_VALUE_INCREMENT

#define MCAN_TIMESTAMP_SEL_VALUE_INCREMENT   (1U)

#include <drivers/inc/hpm_mcan_drv.h>

Timestamp value increments according to prescaler

◆ MCAN_TX_RETRY_COUNT_MAX

#define MCAN_TX_RETRY_COUNT_MAX   (10000000UL)

#include <drivers/inc/hpm_mcan_drv.h>

Maximum Transmission Retry Count.

◆ MCAN_TXBUF_OPERATION_MODE_FIFO

#define MCAN_TXBUF_OPERATION_MODE_FIFO   (0U)

#include <drivers/inc/hpm_mcan_drv.h>

MCAN TXBUF operation mode types.

◆ MCAN_TXBUF_OPERATION_MODE_QUEUE

#define MCAN_TXBUF_OPERATION_MODE_QUEUE   (1U)

◆ MCAN_TXBUF_SIZE_CAN_DEFAULT

#define MCAN_TXBUF_SIZE_CAN_DEFAULT   (32U)

◆ MCAN_TXBUF_SIZE_CANFD_DEFAULT

#define MCAN_TXBUF_SIZE_CANFD_DEFAULT   (8U)

◆ MCAN_TXEVT_ELEM_SIZE

#define MCAN_TXEVT_ELEM_SIZE   (8U)

◆ MCAN_TXRX_ELEM_SIZE_CAN_MAX

#define MCAN_TXRX_ELEM_SIZE_CAN_MAX   (4U * sizeof(uint32_t))

◆ MCAN_TXRX_ELEM_SIZE_CANFD_MAX

#define MCAN_TXRX_ELEM_SIZE_CANFD_MAX   (18U * sizeof(uint32_t))

Typedef Documentation

◆ mcan_activity_state_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Communication State.

◆ mcan_all_filters_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Configuration for all filters.

Note
The MCAN RAM related settings are excluded

◆ mcan_bit_timing_option_t

#include <drivers/inc/hpm_mcan_drv.h>

CAN Bit Timing Options.

◆ mcan_bit_timing_param_t

#include <drivers/inc/hpm_mcan_drv.h>

CAN Bit Timing Parameters.

◆ mcan_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Configuration Structure.

◆ mcan_error_count_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Error Count Information.

◆ mcan_filter_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Filter Configuration.

◆ mcan_filter_elem_list_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Filter Element List structure.

◆ mcan_filter_elem_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Filter Element definitions.

◆ mcan_global_filter_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Global CAN configuration.

◆ mcan_high_priority_message_status_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN High Priority Message Status Information.

◆ mcan_internal_timestamp_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Internal timestamp configuration.

◆ mcan_last_err_code_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Last Error Code.

◆ mcan_node_mode_t

#include <drivers/inc/hpm_mcan_drv.h>

CAN Node Mode types.

◆ mcan_protocol_status_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Protocol Status.

◆ mcan_ram_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN RAM configuration.

Note
: This Configuration focuses on the minimum required information for MCAN RAM configuration The Start address of each BUF/FIFO will be automatically calculated by the MCAN Driver API This RAM configuration is recommended for the most developers

◆ mcan_ram_flexible_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN RAM Flexible Configuration.

Note
This Configuration provides the full MCAN RAM configuration, this configuration is recommended only for experienced developers who is skilled at the MCAN IP

◆ mcan_rx_fifo_or_buf_elem_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN RXBUF or RXFIFO Element Configuration.

◆ mcan_rx_message_t

#include <drivers/inc/hpm_mcan_drv.h>

CAN Receive Message Frame.

Note
Users need to pay attention to the CAN Identifier settings For standard identifier, the use_ext_id should be set to 0 and the std_id should be used For extended identifier, the use_ext_id should be set to 1 and the ext_id should be used

◆ mcan_rxfifo_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN RXFIFO Configuration.

◆ mcan_tdc_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Transmitter Delay Compensation Configuration.

◆ mcan_timeout_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timeout configuration structure.

◆ mcan_timeout_counter_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timeout Counter Configuration.

◆ mcan_timeout_sel_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timeout Selection Options.

◆ mcan_timestamp_value_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timestamp Value.

◆ mcan_tsu_config_t

#include <drivers/inc/hpm_mcan_drv.h>

MCAN TSU Configuration.

◆ mcan_tx_event_fifo_elem_t

#include <drivers/inc/hpm_mcan_drv.h>

TX Event Fifo Element Structure.

◆ mcan_tx_frame_t

#include <drivers/inc/hpm_mcan_drv.h>

CAN Transmit Message Frame.

Note
Users need to pay attention to the CAN Identifier settings For standard identifier, the use_ext_id should be set to 0 and the std_id should be used For extended identifier, the use_ext_id should be set to 1 and the ext_id should be used

◆ mcan_txbuf_config_t

◆ mcan_txbuf_elem_config_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#include <drivers/inc/hpm_mcan_drv.h>

Enumerator
status_mcan_filter_index_out_of_range 
status_mcan_rxfifo_empty 
status_mcan_rxfifo_full 
status_mcan_txbuf_full 
status_mcan_txfifo_full 
status_mcan_rxfifo0_busy 
status_mcan_rxfifo1_busy 
status_mcan_txbuf_index_out_of_range 
status_mcan_rxbuf_index_out_of_range 
status_mcan_rxbuf_empty 
status_mcan_tx_evt_fifo_empty 
status_mcan_timestamp_not_exist 
status_mcan_ram_out_of_range 
status_mcan_timeout 
status_mcan_invalid_bit_timing 

◆ mcan_activity_enum

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Communication State.

Enumerator
mcan_activity_sync 

Node is synchronizing on CAN communication

mcan_activity_idle 

Node is neither receiver nor transmitter

mcan_activity_receiver 

Node is operating as receiver

mcan_activity_transmitter 

Node is operating as transmitter

◆ mcan_bit_timing_option

#include <drivers/inc/hpm_mcan_drv.h>

CAN Bit Timing Options.

Enumerator
mcan_bit_timing_can2_0 

CAN 2.0 bit timing option

mcan_bit_timing_canfd_nominal 

CANFD nominal timing option

mcan_bit_timing_canfd_data 

CANFD data timing option

◆ mcan_last_error_code

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Last Error Code.

Enumerator
mcan_last_error_code_no_error 

No error happened

mcan_last_error_code_stuff_error 

Stuff Error

mcan_last_error_code_format_error 

Format Error

mcan_last_error_code_ack_error 

Acknowledge Error

mcan_last_error_code_bit1_error 

Sent logic 1 but monitored value is logic 0

mcan_last_error_code_bit0_error 

Sent logic 0 but monitored value is logic 1

mcan_last_error_code_crc_error 

CRC checksum for received message is wrong

mcan_last_error_code_no_change 

Error code was not changed

◆ mcan_node_mode_enum

#include <drivers/inc/hpm_mcan_drv.h>

CAN Node Mode types.

Enumerator
mcan_mode_normal 

CAN works in normal mode

mcan_mode_loopback_internal 

CAN works in internal loopback mode

mcan_mode_loopback_external 

CAN works in external loopback mode

mcan_mode_listen_only 

CAN works in listen-only mode

◆ mcan_timeout_sel_enum

#include <drivers/inc/hpm_mcan_drv.h>

MCAN Timeout Selection Options.

Enumerator
mcan_timeout_continuous_operation 

Continuously count down timeout after writing to TOCV register

mcan_timeout_triggered_by_tx_evt_fifo 

Count down if the TX EVT FIFO is not empty

mcan_timeout_triggered_by_rx_fifo0 

Count down if the RX FIFO0 is not empty

mcan_timeout_triggered_by_rx_fifo1 

Count down if the RX FIFO1 is not empty

Function Documentation

◆ mcan_cancel_tx_buf_send_request()

static void mcan_cancel_tx_buf_send_request ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Cancel the TXBUF Send request.

Parameters
[in]ptrMCAN Base
[in]indexTXBUF index

◆ mcan_clear_interrupt_flags()

static void mcan_clear_interrupt_flags ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Clear Interrupt Flags.

Parameters
[in]ptrMCAN base
[in]maskInterrupt Mask

◆ mcan_clear_rxbuf_data_available_flag()

static void mcan_clear_rxbuf_data_available_flag ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Clear RXBUF Data available Flag for specified RXBUF.

Parameters
[in]ptrMCAN base
[in]indexRXBUF index

◆ mcan_config_all_filters()

hpm_stat_t mcan_config_all_filters ( MCAN_Type ptr,
mcan_all_filters_config_t config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Configure All CAN filters.

Parameters
[in]ptrMCAN base
[in]configAll CAN Filter configuration
Returns
status_success if no errors reported

◆ mcan_config_ram()

hpm_stat_t mcan_config_ram ( MCAN_Type ptr,
mcan_ram_config_t config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Configure MCAN RAM will Simplified RAM configuration.

Parameters
[in]ptrMCAN base
[in]configMCAN RAM configuration
Returns
status_success if no errors reported

◆ mcan_config_ram_with_flexible_config()

hpm_stat_t mcan_config_ram_with_flexible_config ( MCAN_Type ptr,
mcan_ram_flexible_config_t config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Configure MCAN RAM will Full RAM configuration.

Parameters
[in]ptrMCAN base
[in]configMCAN RAM Full Configuration
Returns
status_success if no errors reported

◆ mcan_config_transmitter_delay_compensation()

hpm_stat_t mcan_config_transmitter_delay_compensation ( MCAN_Type ptr,
mcan_tdc_config_t config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Configure Transmitter Delay Compensation.

Parameters
[in]ptrMCAN base
[in]configTransmitter Delay compensation configure
Returns
status_success if no errors reported

◆ mcan_deinit()

void mcan_deinit ( MCAN_Type ptr)

#include <drivers/inc/hpm_mcan_drv.h>

De-Initialize CAN controller.

Parameters
[in]ptrMCAN base

◆ mcan_disable_auto_retransmission()

static void mcan_disable_auto_retransmission ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Auto Transmission.

Parameters
[in]ptrMCAN base

◆ mcan_disable_bitrate_switch()

static void mcan_disable_bitrate_switch ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Bit Rate Switch.

Parameters
[in]ptrMCAN base

◆ mcan_disable_bus_monitoring_mode()

static void mcan_disable_bus_monitoring_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Bus monitoring Mode.

Parameters
[in]ptrMCAN base

◆ mcan_disable_edge_filtering()

static void mcan_disable_edge_filtering ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Edge Filtering.

Parameters
[in]ptrMCAN base

◆ mcan_disable_interrupts()

static void mcan_disable_interrupts ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Interrupts.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_disable_protocol_exception_handling()

static void mcan_disable_protocol_exception_handling ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Protocol Exception Handling.

Parameters
[in]ptrMCAN base

◆ mcan_disable_restricted_operation_mode()

static void mcan_disable_restricted_operation_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Restricted Operation Mode.

Parameters
[in]ptrMCAN base

◆ mcan_disable_transmit_pause()

static void mcan_disable_transmit_pause ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Transmit Pause.

Parameters
[in]ptrMCAN base

◆ mcan_disable_tsu()

static void mcan_disable_tsu ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable External Timestamp Unit.

Parameters
[in]ptrMCAN base

◆ mcan_disable_txbuf_cancel_finish_interrupt()

static void mcan_disable_txbuf_cancel_finish_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable TXBUF Cancellation Finish interrupt.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_disable_txbuf_interrupt()

static void mcan_disable_txbuf_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable TXBUF Interrupt.

Deprecated:
This API is deprecated, will be removed in later SDK release
Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_disable_txbuf_transmission_interrupt()

static void mcan_disable_txbuf_transmission_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable TXBUF Transmission interrupt.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_disable_wide_message_marker()

static void mcan_disable_wide_message_marker ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Wide Message Marker.

Parameters
[in]ptrMCAN base

◆ mcan_disable_write_to_prot_config_registers()

static void mcan_disable_write_to_prot_config_registers ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Disable Write Access to Protected Configuration Registers.

Parameters
[in]ptrMCAN base

◆ mcan_enable_auto_retransmission()

static void mcan_enable_auto_retransmission ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Auto Retransmission.

Parameters
[in]ptrMCAN base

◆ mcan_enable_bitrate_switch()

static void mcan_enable_bitrate_switch ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Bit Rate Switch.

Parameters
[in]ptrMCAN base

◆ mcan_enable_bus_monitoring_mode()

static void mcan_enable_bus_monitoring_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Bus monitoring Mode.

Parameters
[in]ptrMCAN base

◆ mcan_enable_clock()

static void mcan_enable_clock ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable MCAN clock.

Parameters
[in]ptrMCAN base

◆ mcan_enable_edge_filtering()

static void mcan_enable_edge_filtering ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Edge Filtering.

Parameters
[in]ptrMCAN base

◆ mcan_enable_interrupts()

static void mcan_enable_interrupts ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Interrupts.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_enable_protocol_exception_handling()

static void mcan_enable_protocol_exception_handling ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Protocol Exception Handling.

Parameters
[in]ptrMCAN base

◆ mcan_enable_restricted_operation_mode()

static void mcan_enable_restricted_operation_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Restricted Operation Mode.

Parameters
[in]ptrMCAN base

◆ mcan_enable_transmit_pause()

static void mcan_enable_transmit_pause ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Transmit Pause.

Parameters
[in]ptrMCAN base

◆ mcan_enable_tsu()

static void mcan_enable_tsu ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable External Timestamp Unit.

Parameters
[in]ptrMCAN base

◆ mcan_enable_txbuf_cancel_finish_interrupt()

static void mcan_enable_txbuf_cancel_finish_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable TXBUF Cancellation Finish interrupt.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_enable_txbuf_interrupt()

static void mcan_enable_txbuf_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable TXBUF Interrupt.

Deprecated:
This API is deprecated, will be removed in later SDK release
Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_enable_txbuf_transmission_interrupt()

static void mcan_enable_txbuf_transmission_interrupt ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable TXBUF Transmission interrupt.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask

◆ mcan_enable_wide_message_marker()

static void mcan_enable_wide_message_marker ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Wide Message Marker.

Parameters
[in]ptrMCAN base

◆ mcan_enable_write_to_prot_config_registers()

static void mcan_enable_write_to_prot_config_registers ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Enable Write Access to Protected Configuration Registers.

Parameters
[in]ptrMCAN base

◆ mcan_enter_init_mode()

static void mcan_enter_init_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Switch MCAN to Initialization mode.

Parameters
[in]ptrMCAN base

◆ mcan_enter_normal_mode()

static void mcan_enter_normal_mode ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Switch MCAN to Normal mode.

Parameters
[in]ptrMCAN base

◆ mcan_get_activity()

static uint8_t mcan_get_activity ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get CAN Activity.

Parameters
[in]ptrMCAN base
Returns
CAN IP activity

◆ mcan_get_data_field_size()

uint8_t mcan_get_data_field_size ( uint8_t  data_field_size_option)

#include <drivers/inc/hpm_mcan_drv.h>

Get the Data field size from data field size option.

Parameters
[in]data_field_size_optionData size option
Returns
data field size in bytes

◆ mcan_get_data_phase_last_error_code()

static uint8_t mcan_get_data_phase_last_error_code ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get the Last Data Phase Error.

Parameters
[in]ptrMCAN base
Deprecated:
This API will be removed in later SDK release
Returns
The last Data Phase Error

◆ mcan_get_default_config()

void mcan_get_default_config ( MCAN_Type ptr,
mcan_config_t config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get Default CAN configuration.

Parameters
[in]ptrMCAN base
[out]configCAN configuration

< Default CAN2.0 baudrate:500 kbps

< Default CANFD baudrate: 2 Mbps

◆ mcan_get_default_ram_config()

void mcan_get_default_ram_config ( MCAN_Type ptr,
mcan_ram_config_t simple_config,
bool  enable_canfd 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get Default MCAN RAM configuration If the device is configured as classic CAN node, the default CAN RAM settings are as below:

  • Standard Identifier Filter Elements: 32
  • Extended Identifier Filter Elements: 32
  • TXBUF Elements Info:
    • Element Count:32
    • Dedicated TXBUF element count: 16
    • TXFIFO/QQueue element count: 16
    • Data Field Size: 8
  • RXFIFO0 Elements Info:
    • Element Count :32
    • Data Field Size: 8
  • RXFIFO1 Elements Info:
    • Element Count : 32
    • Data Field Size: 8
  • RXBUF Element Info:
    • Element Count: 16
    • Data Field Size : 8
  • TX Event FIFO Element Count: 32

If the device is configured as CANFD node, the default CAN RAM settings are as below:

  • Standard Identifier Filter Elements: 16
  • Extended Identifier Filter Elements: 16
  • TXBUF Elements Info:
    • Element Count:8
    • Dedicated TXBUF element count: 4
    • TXFIFO/QQueue element count: 4
    • Data Field Size: 64
  • RXFIFO0 Elements Info:
    • Element Count : 8
    • Data Field Size: 64
  • RXFIFO1 Elements Info:
    • Element Count : 8
    • Data Field Size: 64
  • RXBUF Element Info:
    • Element Count: 4
    • Data Field Size : 64
  • TX Event FIFO Element Count: 8
Parameters
[in]ptrMCAN base
[out]simple_configSimple CAN RAM Configuration
[in]enable_canfdCANFD enable flag

◆ mcan_get_default_ram_flexible_config()

void mcan_get_default_ram_flexible_config ( MCAN_Type ptr,
mcan_ram_flexible_config_t ram_config,
bool  enable_canfd 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get Default Full MCAN RAM configuration If the device is configured as classic CAN node, the default CAN RAM settings are as below:

  • Standard Identifier Filter Elements: 32
  • Extended Identifier Filter Elements: 32
  • TXBUF Elements Info:
    • Element Count:32
    • Dedicated TXBUF element count: 16
    • TXFIFO/QQueue element count: 16
    • Data Field Size: 8
  • RXFIFO0 Elements Info:
    • Element Count :32
    • Data Field Size: 8
  • RXFIFO1 Elements Info:
    • Element Count : 32
    • Data Field Size: 8
  • RXBUF Element Info:
    • Element Count: 16
    • Data Field Size : 8
  • TX Event FIFO Element Count: 32

If the device is configured as CANFD node, the default CAN RAM settings are as below:

  • Standard Identifier Filter Elements: 16
  • Extended Identifier Filter Elements: 16
  • TXBUF Elements Info:
    • Element Count:8
    • Dedicated TXBUF element count: 4
    • TXFIFO/QQueue element count: 4
    • Data Field Size: 64
  • RXFIFO0 Elements Info:
    • Element Count : 8
    • Data Field Size: 64
  • RXFIFO1 Elements Info:
    • Element Count : 8
    • Data Field Size: 64
  • RXBUF Element Info:
    • Element Count: 4
    • Data Field Size : 64
  • TX Event FIFO Element Count: 8
Parameters
[in]ptrMCAN base
[out]ram_configCAN RAM Configuration
[in]enable_canfdCANFD enable flag

◆ mcan_get_error_counter()

static void mcan_get_error_counter ( MCAN_Type ptr,
mcan_error_count_t err_cnt 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Error Counter Information.

Parameters
[in]ptrMCAN base
[out]err_cntError Count buffer

◆ mcan_get_high_priority_message_status()

void mcan_get_high_priority_message_status ( MCAN_Type ptr,
mcan_high_priority_message_status_t status 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get High Priority Message Status.

Parameters
[in]ptrMCAN base
[out]statusPointer to High Priority Message Status Buffer

◆ mcan_get_interrupt_flags()

static uint32_t mcan_get_interrupt_flags ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Interrupt Flags.

Parameters
[in]ptrMCAN base
Returns
Interrupt Flags

◆ mcan_get_last_data_error_code()

static uint8_t mcan_get_last_data_error_code ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Last Data Phase Error Code.

Parameters
[in]ptrMCAN base
Returns
Last Error Code in Data phase

◆ mcan_get_last_error_code()

static uint8_t mcan_get_last_error_code ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Last Error Code.

Parameters
[in]ptrMCAN base
Returns
Last Error code

◆ mcan_get_message_size_from_dlc()

uint8_t mcan_get_message_size_from_dlc ( uint8_t  dlc)

#include <drivers/inc/hpm_mcan_drv.h>

Get message Size from Data Length Code.

Parameters
[in]dlcData Length Code
Returns
Message Size in Bytes

◆ mcan_get_protocol_status()

hpm_stat_t mcan_get_protocol_status ( MCAN_Type ptr,
mcan_protocol_status_t protocol_status 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get MCAN Protocol Status.

Parameters
[in]ptrMCAN base
[out]protocol_statusTranslated Protocol status
Return values
status_invalid_argumentif any parameters are invalid
status_successif no errors happened

◆ mcan_get_timeout_counter_value()

static uint16_t mcan_get_timeout_counter_value ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Timeout value.

Parameters
[in]ptrMCAN base
Returns
timeout value

◆ mcan_get_timestamp_counter_value()

static uint16_t mcan_get_timestamp_counter_value ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get Timestamp Counter Value.

Parameters
[in]ptrMCAN base
Returns
timestamp value

◆ mcan_get_timestamp_from_received_message()

hpm_stat_t mcan_get_timestamp_from_received_message ( MCAN_Type ptr,
const mcan_rx_message_t rx_msg,
mcan_timestamp_value_t timestamp 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get Timestamp from MCAN RX frame.

Parameters
[in]ptrMCAN base
[in]rx_msgReceived message
[out]timestampTimestamp value
Return values
status_successif no errors happened
status_invalid_argumentif any parameters are invalid
status_mcan_timestamp_not_existif no timestamp information is available

◆ mcan_get_timestamp_from_tx_event()

hpm_stat_t mcan_get_timestamp_from_tx_event ( MCAN_Type ptr,
const mcan_tx_event_fifo_elem_t tx_evt,
mcan_timestamp_value_t timestamp 
)

#include <drivers/inc/hpm_mcan_drv.h>

Get Timestamp from MCAN TX Event.

Parameters
[in]ptrMCAN base
[in]tx_evtTX Event Element
[out]timestampTimestamp value
Return values
status_successif no errors happened
status_invalid_argumentif any parameters are invalid
status_mcan_timestamp_not_existif no timestamp information is available

◆ mcan_get_transmitter_delay_compensation_value()

static uint8_t mcan_get_transmitter_delay_compensation_value ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get the Transmitter Delay Compensation Value.

Parameters
[in]ptrMCAN base
Returns
Transmitter Delay Compensation value

◆ mcan_get_txfifo_put_index()

static uint32_t mcan_get_txfifo_put_index ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Get the TXFIFO Put Index.

Parameters
[in]ptrMCAN base
Returns
The TX FIFO Put Index

◆ mcan_init()

hpm_stat_t mcan_init ( MCAN_Type ptr,
mcan_config_t config,
uint32_t  src_clk_freq 
)

#include <drivers/inc/hpm_mcan_drv.h>

Initialize CAN controller.

Parameters
[in]ptrMCAN base
[in]configCAN configuration
[in]src_clk_freqCAN clock frequency
Return values
status_successif operation is successful
status_invalid_argumentif any parameters are invalid

◆ mcan_interrupt_line_select()

static void mcan_interrupt_line_select ( MCAN_Type ptr,
uint32_t  mask,
uint8_t  line_index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Select Interrupt Line.

Parameters
[in]ptrMCAN base
[in]maskInterrupt mask
[in]line_indexInterrupt Line Index

◆ mcan_is_64bit_tsu_timestamp_used()

static bool mcan_is_64bit_tsu_timestamp_used ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether 64-bit TSU timestamp is used.

Parameters
[in]ptrMCAN base
Return values
trueif 64-bit timestamp is used
falseif 32-bit timestamp is used

◆ mcan_is_bitrate_switch_flag_set_in_last_received_canfd_msg()

static bool mcan_is_bitrate_switch_flag_set_in_last_received_canfd_msg ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the Bitrate Switch Flag is set in the last received CANFD message.

Parameters
[in]ptrMCAN base
Returns
true if Bit rate switch flag is set in the last received CANFD message

◆ mcan_is_canfd_message_received()

static bool mcan_is_canfd_message_received ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether CANFD messages were received.

Parameters
[in]ptrMCAN base
Returns
true if a CANFD message was received

◆ mcan_is_clock_enabled()

static bool mcan_is_clock_enabled ( MCAN_Type ptr)
inlinestatic

◆ mcan_is_clock_stopped()

static bool mcan_is_clock_stopped ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether CAN clock is stopped or not.

Parameters
[in]ptrMCAN base

◆ mcan_is_error_state_indicator_flag_set_in_last_received_canfd_msg()

static bool mcan_is_error_state_indicator_flag_set_in_last_received_canfd_msg ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check Whether the Error Status Indicator Flag is set in the last received CANFD message.

Parameters
[in]ptrMCAN base
Returns
true if the Error Status Indicator Flag is set in the last received CANFD Message

◆ mcan_is_in_busoff_state()

static bool mcan_is_in_busoff_state ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the CAN node is under Bus-off state.

Parameters
[in]ptrMCAN base
Returns
true if the CAN node is under Bus-off state

◆ mcan_is_in_err_passive_state()

static bool mcan_is_in_err_passive_state ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the CAN node is under error passive state.

Parameters
[in]ptrMCAN base
Returns
true is CAN is under error passive state

◆ mcan_is_in_error_warning_state()

static bool mcan_is_in_error_warning_state ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the CAN mode is under Warning State.

Parameters
[in]ptrMCAN base
Returns
true if the CAN node is under Error Warning State

◆ mcan_is_interrupt_flag_set()

static bool mcan_is_interrupt_flag_set ( MCAN_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether specified Interrupt is set.

Parameters
[in]ptrMCAN Base
[in]maskInterrupt Flags
Return values
trueif corresponding bits are set

◆ mcan_is_protocol_exception_event_occurred()

static bool mcan_is_protocol_exception_event_occurred ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether Protocol Exception Events were occurred.

Parameters
[in]ptrMCAN base
Returns
true if Protocol Exception Events were occurred

◆ mcan_is_rxbuf_data_available()

static bool mcan_is_rxbuf_data_available ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check Whether there are data available in specified RXBUF.

Parameters
[in]ptrMCAN Base
[in]indexRXBUF index
Returns
True if there are data available

◆ mcan_is_transmit_occurred()

static bool mcan_is_transmit_occurred ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the Transmission completed via specified TXBUF/TXFIFO.

Parameters
[in]ptrMCAN base
[in]indexTXBUF Index
Returns
True is the Transmission completed via specified TXBUF

◆ mcan_is_transmit_request_pending()

static bool mcan_is_transmit_request_pending ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether a TXFIFO/TXBUF transmission request is pending.

Parameters
[in]ptrCAN Base
[in]indexTXBUF/TXFIFO Index
Returns
True is the specified TXFIFO/TXBUF Transmission request is pending

◆ mcan_is_tsu_timestamp_available()

static bool mcan_is_tsu_timestamp_available ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether the TSU timestamp is available.

Parameters
[in]ptrMCAN base
[in]indexTimestamp pointer
Return values
trueTSU Timestamp is available
falseTSU timestamp is unavailable

◆ mcan_is_tsu_used()

static bool mcan_is_tsu_used ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether TSU is used.

Parameters
[in]ptrMCAN base
Return values
trueif TSU is used
falseif TSU is not used

◆ mcan_is_txfifo_full()

static bool mcan_is_txfifo_full ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Check whether TXFIFO is full.

Parameters
[in]ptrMCAN base
Returns
true if TXFIFO is full

◆ mcan_parse_protocol_status()

hpm_stat_t mcan_parse_protocol_status ( uint32_t  psr,
mcan_protocol_status_t protocol_status 
)

#include <drivers/inc/hpm_mcan_drv.h>

Parse the Protocol Status register value.

Parameters
[in]psrProtocol Status Register Value
[out]protocol_statusTranslated Protocol Status
Return values
status_invalid_argumentif any parameters are invalid
status_successif no errors happened

◆ mcan_read_32bit_tsu_timestamp()

uint32_t mcan_read_32bit_tsu_timestamp ( MCAN_Type ptr,
uint32_t  index 
)

#include <drivers/inc/hpm_mcan_drv.h>

Read 32bit Timestamp value from TSU.

Parameters
[in]ptrMCAN Base
[in]indexTimestamp pointer
Returns
Timestamp value

◆ mcan_read_64bit_tsu_timestamp()

uint64_t mcan_read_64bit_tsu_timestamp ( MCAN_Type ptr,
uint32_t  index 
)

#include <drivers/inc/hpm_mcan_drv.h>

Read 64bit Timestamp value from TSU.

Parameters
[in]ptrMCAN Base
[in]indexTimestamp pointer
Returns
Timestamp value

◆ mcan_read_rxbuf()

hpm_stat_t mcan_read_rxbuf ( MCAN_Type ptr,
uint32_t  index,
mcan_rx_message_t rx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Read message from CAN RXBUF.

Parameters
[in]ptrMCAN base
[in]indexIndex of RXBUF
[out]rx_frameBuffer to hold RX frame
Returns
status_success if no errors reported

◆ mcan_read_rxfifo()

hpm_stat_t mcan_read_rxfifo ( MCAN_Type ptr,
uint32_t  fifo_index,
mcan_rx_message_t rx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Read message from CAN RXBUF.

Parameters
[in]ptrMCAN base
[in]fifo_indexRXFIFO index, 0 - RXFO0, 1 - RXFIFO1
[out]rx_frameBuffer to hold RX frame
Returns
status_success if no errors reported

◆ mcan_read_tx_evt_fifo()

hpm_stat_t mcan_read_tx_evt_fifo ( MCAN_Type ptr,
mcan_tx_event_fifo_elem_t tx_evt 
)

#include <drivers/inc/hpm_mcan_drv.h>

Read TX Event from CAN TX EVENT FIFO.

Parameters
[in]ptrMCAN base
[out]tx_evtTX Event Buffer
Return values
status_successif no errors happened
status_mcan_tx_evt_fifo_emptyif there are no TX events available
status_invalid_argumentif any parameters are invalid

◆ mcan_receive_from_buf_blocking()

hpm_stat_t mcan_receive_from_buf_blocking ( MCAN_Type ptr,
uint32_t  index,
mcan_rx_message_t rx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Receive CAN Frame from RXBUF in blocking way.

Parameters
[in]ptrMCAN base
[in]indexRXBUF index
[out]rx_frameBuffer to hold Received Frame
Returns
status_success if no errors reported

◆ mcan_receive_from_fifo_blocking()

hpm_stat_t mcan_receive_from_fifo_blocking ( MCAN_Type ptr,
uint32_t  fifo_index,
mcan_rx_message_t rx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Receive CAN Frame from RXFIFO in blocking way.

Parameters
[in]ptrMCAN base
[in]fifo_indexRXFIFO index, 0 - RXFIFO0, 1 - RXFIFO1
[out]rx_frameBuffer to hold Received Frame
Returns
status_success if no errors reported

◆ mcan_request_and_fill_txfifo()

hpm_stat_t mcan_request_and_fill_txfifo ( MCAN_Type ptr,
mcan_tx_frame_t tx_frame,
uint32_t *  fifo_index 
)

#include <drivers/inc/hpm_mcan_drv.h>

Request TXFIFO and fill data into TXFIFO.

Note
This API can be used to prepare the data for several CAN frames prior to transmission. After this operation, software can call mcan_send_add_request(ptr, *fifo_index) API to trigger a transmission or call mcan_send_add_requests(ptr, fifo_index_masks) to trigger several transmissions
Parameters
[in]ptrMCAN base
[in]tx_frameCAN Transmit Message buffer
[out]fifo_indexThe index of the element in FIFO assigned to the tx_frame
Returns
status_success if no errors reported

◆ mcan_reset_timeout_counter_value()

static void mcan_reset_timeout_counter_value ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Reset Timeout counter value.

Parameters
[in]ptrMCAN base

◆ mcan_send_add_multiple_requests()

static void mcan_send_add_multiple_requests ( MCAN_Type ptr,
uint32_t  index_bitmask 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Request several transmission via specified TXBUF/FIFO Bit masks MCAN IP will transmit data in the buffer if corresponding bit in index_bitmask is asserted.

Parameters
[in]ptrMCAN Base
[in]index_bitmaskTXFIFO/BUF bit masks

◆ mcan_send_add_request()

static void mcan_send_add_request ( MCAN_Type ptr,
uint32_t  index 
)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Request A Transmission via specified TXBUF Index.

Parameters
[in]ptrMCAN Base
[in]indexTXBUF index

◆ mcan_set_filter_element()

hpm_stat_t mcan_set_filter_element ( MCAN_Type ptr,
const mcan_filter_elem_t filter_elem,
uint32_t  index 
)

#include <drivers/inc/hpm_mcan_drv.h>

Set CAN filter element.

Parameters
[in]ptrMCAN base
[in]filter_elemCAN filter element
[in]indexCAN Filter element index
Returns
status_success if no errors reported

◆ mcan_set_global_filter_config()

hpm_stat_t mcan_set_global_filter_config ( MCAN_Type ptr,
mcan_global_filter_config_t filter_config 
)

#include <drivers/inc/hpm_mcan_drv.h>

Configure Global Filter.

Parameters
[in]ptrMCAN base
[in]filter_configGlobal Filter Configuration
Returns
status_success if no errors reported

◆ mcan_stop_clock()

static void mcan_stop_clock ( MCAN_Type ptr)
inlinestatic

#include <drivers/inc/hpm_mcan_drv.h>

Stop MCAN clock.

Parameters
[in]ptrMCAN base

◆ mcan_transmit_blocking()

hpm_stat_t mcan_transmit_blocking ( MCAN_Type ptr,
mcan_tx_frame_t tx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Transmit CAN message in blocking way.

Parameters
[in]ptrMCAN base
[in]tx_frameCAN Transmit Message buffer
Returns
status_success if no errors reported

◆ mcan_transmit_via_txbuf_nonblocking()

hpm_stat_t mcan_transmit_via_txbuf_nonblocking ( MCAN_Type ptr,
uint32_t  index,
mcan_tx_frame_t tx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Transmit CAN message via TX in non-blocking way.

Parameters
[in]ptrMCAN base
[in]indexIndex of TX Buffer
[in]tx_frameCAN Transmit Message buffer
Returns
status_success if no errors reported

◆ mcan_transmit_via_txfifo_nonblocking()

hpm_stat_t mcan_transmit_via_txfifo_nonblocking ( MCAN_Type ptr,
mcan_tx_frame_t tx_frame,
uint32_t *  fifo_index 
)

#include <drivers/inc/hpm_mcan_drv.h>

Transmit CAN message via TX FIFO in non-blocking way.

Parameters
[in]ptrMCAN base
[in]tx_frameCAN Transmit Message buffer
[out]fifo_indexThe index of the element in FIFO assigned to the tx_frame
Returns
status_success if no errors reported

◆ mcan_write_txbuf()

hpm_stat_t mcan_write_txbuf ( MCAN_Type ptr,
uint32_t  index,
mcan_tx_frame_t tx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Write Frame to CAN TX Buffer.

Parameters
[in]ptrMCAN base
[in]indexTX Buffer Index
[in]tx_frameTX frame
Returns
status_success if no errors reported

◆ mcan_write_txfifo()

hpm_stat_t mcan_write_txfifo ( MCAN_Type ptr,
mcan_tx_frame_t tx_frame 
)

#include <drivers/inc/hpm_mcan_drv.h>

Write Frame CAN to TXFIFO.

Parameters
[in]ptrMCAN base
[in]tx_frameTX frame
Returns
status_success if no errors reported