S32 SDK
flexcan_driver.h File Reference
#include "flexcan_hal.h"
#include "osif.h"

Go to the source code of this file.

Data Structures

struct  flexcan_mb_handle_t
 Information needed for internal handling of a given MB. Implements : flexcan_mb_handle_t_Class. More...
 
struct  FlexCANState
 Internal driver state information. More...
 
struct  flexcan_data_info_t
 FlexCAN data info from user Implements : flexcan_data_info_t_Class. More...
 
struct  flexcan_user_config_t
 FlexCAN configuration. More...
 

Typedefs

typedef struct FlexCANState flexcan_state_t
 Internal driver state information. More...
 
typedef void(* flexcan_callback_t) (uint8_t instance, flexcan_event_type_t eventType, flexcan_state_t *flexcanState)
 FlexCAN Driver callback function type Implements : flexcan_callback_t_Class. More...
 

Enumerations

enum  flexcan_rxfifo_transfer_type_t { FLEXCAN_RXFIFO_USING_INTERRUPTS, FLEXCAN_RXFIFO_USING_DMA }
 The type of the RxFIFO transfer (interrupts/DMA). Implements : flexcan_rxfifo_transfer_type_t_Class. More...
 
enum  flexcan_event_type_t { FLEXCAN_EVENT_RX_COMPLETE, FLEXCAN_EVENT_RXFIFO_COMPLETE, FLEXCAN_EVENT_TX_COMPLETE }
 The type of the event which occured when the callback was invoked. Implements : flexcan_event_type_t_Class. More...
 
enum  flexcan_mb_state_t { FLEXCAN_MB_IDLE, FLEXCAN_MB_RX_BUSY, FLEXCAN_MB_TX_BUSY }
 The state of a given MB (idle/Rx busy/Tx busy). Implements : flexcan_mb_state_t_Class. More...
 
enum  flexcan_rx_fifo_id_filter_num_t {
  FLEXCAN_RX_FIFO_ID_FILTERS_8 = 0x0, FLEXCAN_RX_FIFO_ID_FILTERS_16 = 0x1, FLEXCAN_RX_FIFO_ID_FILTERS_24 = 0x2, FLEXCAN_RX_FIFO_ID_FILTERS_32 = 0x3,
  FLEXCAN_RX_FIFO_ID_FILTERS_40 = 0x4, FLEXCAN_RX_FIFO_ID_FILTERS_48 = 0x5, FLEXCAN_RX_FIFO_ID_FILTERS_56 = 0x6, FLEXCAN_RX_FIFO_ID_FILTERS_64 = 0x7,
  FLEXCAN_RX_FIFO_ID_FILTERS_72 = 0x8, FLEXCAN_RX_FIFO_ID_FILTERS_80 = 0x9, FLEXCAN_RX_FIFO_ID_FILTERS_88 = 0xA, FLEXCAN_RX_FIFO_ID_FILTERS_96 = 0xB,
  FLEXCAN_RX_FIFO_ID_FILTERS_104 = 0xC, FLEXCAN_RX_FIFO_ID_FILTERS_112 = 0xD, FLEXCAN_RX_FIFO_ID_FILTERS_120 = 0xE, FLEXCAN_RX_FIFO_ID_FILTERS_128 = 0xF
}
 FlexCAN Rx FIFO filters number Implements : flexcan_rx_fifo_id_filter_num_t_Class. More...
 

Functions

void FLEXCAN_DRV_IRQHandler (uint8_t instance)
 Interrupt handler for a FlexCAN instance. More...
 
status_t FLEXCAN_DRV_GetTransferStatus (uint32_t instance, uint8_t mb_idx)
 Returns whether the previous FLEXCAN transfer has finished. More...
 
void FLEXCAN_DRV_InstallEventCallback (uint8_t instance, flexcan_callback_t callback, void *callbackParam)
 Installs a callback function for the IRQ handler. More...
 
Bit rate
void FLEXCAN_DRV_SetBitrate (uint8_t instance, const flexcan_time_segment_t *bitrate)
 Sets the FlexCAN bit rate. More...
 
Set baud rate for BRS FD
void FLEXCAN_DRV_SetBitrateCbt (uint8_t instance, const flexcan_time_segment_t *bitrate)
 Sets the FlexCAN bit rate for FD BRS. More...
 
void FLEXCAN_DRV_GetBitrate (uint8_t instance, flexcan_time_segment_t *bitrate)
 Gets the FlexCAN bit rate. More...
 
Global mask
void FLEXCAN_DRV_SetRxMaskType (uint8_t instance, flexcan_rx_mask_type_t type)
 Sets the RX masking type. More...
 
void FLEXCAN_DRV_SetRxFifoGlobalMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint32_t mask)
 Sets the FlexCAN RX FIFO global standard or extended mask. More...
 
void FLEXCAN_DRV_SetRxMbGlobalMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint32_t mask)
 Sets the FlexCAN RX MB global standard or extended mask. More...
 
status_t FLEXCAN_DRV_SetRxIndividualMask (uint8_t instance, flexcan_msgbuff_id_type_t id_type, uint8_t mb_idx, uint32_t mask)
 Sets the FlexCAN RX individual standard or extended mask. More...
 
Initialization and Shutdown
status_t FLEXCAN_DRV_Init (uint32_t instance, flexcan_state_t *state, const flexcan_user_config_t *data)
 Initializes the FlexCAN peripheral. More...
 
status_t FLEXCAN_DRV_Deinit (uint8_t instance)
 Shuts down a FlexCAN instance. More...
 
Send configuration
status_t FLEXCAN_DRV_ConfigTxMb (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id)
 FlexCAN transmit message buffer field configuration. More...
 
status_t FLEXCAN_DRV_SendBlocking (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id, const uint8_t *mb_data, uint32_t timeout_ms)
 Sends a CAN frame using the specified message buffer, in a blocking manner. More...
 
status_t FLEXCAN_DRV_Send (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *tx_info, uint32_t msg_id, const uint8_t *mb_data)
 Sends a CAN frame using the specified message buffer. More...
 
status_t FLEXCAN_DRV_AbortTransfer (uint32_t instance, uint8_t mb_idx)
 Ends a non-blocking FlexCAN transfer early. More...
 
Receive configuration
status_t FLEXCAN_DRV_ConfigRxMb (uint8_t instance, uint8_t mb_idx, const flexcan_data_info_t *rx_info, uint32_t msg_id)
 FlexCAN receive message buffer field configuration. More...
 
void FLEXCAN_DRV_ConfigRxFifo (uint8_t instance, flexcan_rx_fifo_id_element_format_t id_format, const flexcan_id_table_t *id_filter_table)
 FlexCAN RX FIFO field configuration. More...
 
status_t FLEXCAN_DRV_ReceiveBlocking (uint8_t instance, uint8_t mb_idx, flexcan_msgbuff_t *data, uint32_t timeout_ms)
 Receives a CAN frame using the specified message buffer, in a blocking manner. More...
 
status_t FLEXCAN_DRV_Receive (uint8_t instance, uint8_t mb_idx, flexcan_msgbuff_t *data)
 Receives a CAN frame using the specified message buffer. More...
 
status_t FLEXCAN_DRV_RxFifoBlocking (uint8_t instance, flexcan_msgbuff_t *data, uint32_t timeout_ms)
 Receives a CAN frame using the message FIFO, in a blocking manner. More...
 
status_t FLEXCAN_DRV_RxFifo (uint8_t instance, flexcan_msgbuff_t *data)
 Receives a CAN frame using the message FIFO. More...
 

Variables

CAN_Type *const g_flexcanBase [CAN_INSTANCE_COUNT]
 Table of base addresses for FlexCAN instances. More...
 
const IRQn_Type g_flexcanRxWarningIrqId [CAN_INSTANCE_COUNT]
 Table to save RX Warning IRQ numbers for FlexCAN instances. More...
 
const IRQn_Type g_flexcanTxWarningIrqId [CAN_INSTANCE_COUNT]
 Table to save TX Warning IRQ numbers for FlexCAN instances. More...
 
const IRQn_Type g_flexcanWakeUpIrqId [CAN_INSTANCE_COUNT]
 Table to save wakeup IRQ numbers for FlexCAN instances. More...
 
const IRQn_Type g_flexcanErrorIrqId [CAN_INSTANCE_COUNT]
 Table to save error IRQ numbers for FlexCAN instances. More...
 
const IRQn_Type g_flexcanBusOffIrqId [CAN_INSTANCE_COUNT]
 Table to save Bus off IRQ numbers for FlexCAN instances. More...
 
const IRQn_Type g_flexcanOredMessageBufferIrqId [CAN_INSTANCE_COUNT][FEATURE_CAN_MB_IRQS_MAX_COUNT]
 Table to save message buffer IRQ numbers for FlexCAN instances. More...