Hardware abstraction layer for M_CAN Controller v3.2.1.
Go to the source code of this file.
Data Structures | |
struct | MCAN_BitTimingParams |
Structure for bit timing calculation. Bit timing related to data phase will be valid only if CAN-FD mode and bit rate switching are enabled and will be '0' otherwise. More... | |
struct | MCAN_TDCConfig |
Structure for MCAN Transmitter Delay Compensation parameters. More... | |
struct | MCAN_GlobalFiltConfig |
Structure for MCAN Global Filter Configuration parameters. More... | |
struct | MCAN_InitParams |
Structure for MCAN initialization parameters. More... | |
struct | MCAN_ConfigParams |
Structure for MCAN configuration parameters. More... | |
struct | MCAN_ErrCntStatus |
Structure for MCAN error logging counters status. More... | |
struct | MCAN_ProtocolStatus |
Structure for MCAN protocol status. More... | |
struct | MCAN_MsgRAMConfig |
Structure for MCAN Message RAM Configuration Parameters. Message RAM can contain following sections: Standard ID filters, Extended ID filters, RX FIFO0, RX FIFO1, RX Buffers, TX EventFIFO, TX Buffers, TX FIFO (or TX Q) More... | |
struct | MCAN_HighPriorityMsgInfo |
Structure for MCAN High Priority Message. More... | |
struct | MCAN_RxNewDataStatus |
Structure for MCAN new data flag for Rx buffer. More... | |
struct | MCAN_RxFIFOStatus |
Structure for MCAN Rx FIFO Status. More... | |
struct | MCAN_TxFIFOQStatus |
Structure for MCAN Tx FIFO/Queue Status. More... | |
struct | MCAN_TxEventFIFOStatus |
Structure for MCAN Tx Event FIFO Status. More... | |
struct | MCAN_TxBufElement |
Structure for MCAN Tx Buffer element. More... | |
struct | MCAN_TxBufElementNoCpy |
Structure for MCAN Tx Buffer element which takes data as a pointer. Please note that as the data field is a pointer so wrong value for payload size passed from application will lead to data corruption. More... | |
struct | MCAN_RxBufElement |
Structure for MCAN Rx Buffer element. More... | |
struct | MCAN_RxBufElementNoCpy |
Structure for MCAN Rx Buffer element which takes data as a pointer. Please note that as the data field is a pointer so wrong value for payload size passed from application will lead to data corruption. More... | |
struct | MCAN_TxEventFIFOElement |
Structure for MCAN Tx Event FIFO element. More... | |
struct | MCAN_StdMsgIDFilterElement |
Structure for MCAN Standard Message ID Filter Element. More... | |
struct | MCAN_ExtMsgIDFilterElement |
Structure for MCAN Extended Message ID Filter Element. More... | |
Macros | |
#define | MCAN_STATUS_SUCCESS ((int_fast16_t)0) |
Successful status code. More... | |
#define | MCAN_STATUS_ERROR ((int_fast16_t)-1) |
Generic error status code. More... | |
#define | MCAN_MAX_PAYLOAD_SIZE (64U) |
Maximum payload supported by CAN-FD protocol in bytes. More... | |
#define | MCAN_STD_ID_FILTER_ELEM_SIZE (4U) |
Standard Message ID filter element size in bytes. More... | |
#define | MCAN_EXT_ID_FILTER_ELEM_SIZE (8U) |
Extended Message ID filter element size in bytes. More... | |
#define | MCAN_TX_EVENT_ELEM_SIZE (8U) |
Tx Event FIFO element size in bytes. More... | |
#define | MCAN_TX_RX_ELEMENT_HEADER_SIZE (8U) |
Tx/Rx Element Header Size in bytes. More... | |
Functions | |
void | MCAN_writeReg (uint32_t offset, uint32_t value) |
void | MCAN_writeMsgRAM (uint32_t offset, const uint8_t *src, size_t numBytes) |
uint32_t | MCAN_readReg (uint32_t offset) |
void | MCAN_readMsgRAM (uint8_t *dst, uint32_t offset, size_t numBytes) |
uint32_t | MCAN_getMRAMOffset (void) |
int_fast16_t | MCAN_init (const MCAN_InitParams *initParams) |
Initializes MCAN module. More... | |
int_fast16_t | MCAN_config (const MCAN_ConfigParams *config) |
Configures MCAN module. More... | |
void | MCAN_setOpMode (MCAN_OperationMode mode) |
Sets MCAN module mode of operation. More... | |
MCAN_OperationMode | MCAN_getOpMode (void) |
Returns MCAN module mode of operation. More... | |
int_fast16_t | MCAN_setBitTime (const MCAN_BitTimingParams *bitTiming) |
Configures bit timings for MCAN module. More... | |
void | MCAN_configMsgRAM (const MCAN_MsgRAMConfig *msgRAMConfig) |
Configures the various sections of Message RAM. More... | |
void | MCAN_writeTxMsgNoCpy (uint32_t bufIdx, const MCAN_TxBufElementNoCpy *elem) |
Writes Tx message to message RAM. More... | |
void | MCAN_writeTxMsg (uint32_t bufIdx, const MCAN_TxBufElement *elem) |
Writes Tx message to message RAM. More... | |
void | MCAN_setTxBufAddReq (uint32_t bufIdx) |
Sets Tx Buffer Add Request. More... | |
void | MCAN_getNewDataStatus (MCAN_RxNewDataStatus *newDataStatus) |
Returns New Data Message Status. More... | |
void | MCAN_clearNewDataStatus (const MCAN_RxNewDataStatus *newDataStatus) |
Clears New Data Message Status. More... | |
void | MCAN_readRxMsgNoCpy (MCAN_MemType memType, uint32_t num, MCAN_RxBufElementNoCpy *elem) |
Reads received message from message RAM. More... | |
void | MCAN_readRxMsg (MCAN_MemType memType, uint32_t num, MCAN_RxBufElement *elem) |
Reads received message from message RAM. More... | |
void | MCAN_addStdMsgIDFilter (uint32_t filtNum, const MCAN_StdMsgIDFilterElement *elem) |
Adds Standard Message ID Filter Element. More... | |
void | MCAN_addExtMsgIDFilter (uint32_t filtNum, const MCAN_ExtMsgIDFilterElement *elem) |
Adds Extended Message ID Filter Element. More... | |
void | MCAN_enableLoopbackMode (MCAN_LpbkMode lpbkMode) |
Enables Loopback Test Mode for MCAN module. More... | |
void | MCAN_disableLoopbackMode (void) |
Disables Loopback Test Mode for MCAN module. More... | |
void | MCAN_getProtocolStatus (MCAN_ProtocolStatus *protStatus) |
Returns protocol status for MCAN module. More... | |
void | MCAN_enableInt (uint32_t intMask) |
Enables interrupts. More... | |
void | MCAN_disableInt (uint32_t intMask) |
Disables interrupts. More... | |
void | MCAN_setIntLineSel (uint32_t intMask, MCAN_IntLineNum lineNum) |
Sets interrupt line select. More... | |
void | MCAN_enableIntLine (MCAN_IntLineNum lineNum) |
Enables selected interrupt line. More... | |
void | MCAN_disableIntLine (MCAN_IntLineNum lineNum) |
Disables selected interrupt line. More... | |
uint32_t | MCAN_getIntStatus (void) |
Returns interrupt status. More... | |
void | MCAN_clearIntStatus (uint32_t intMask) |
Clears the interrupt status. More... | |
void | MCAN_getRxFIFOStatus (MCAN_RxFIFONum fifoNum, MCAN_RxFIFOStatus *fifoStatus) |
Reads Rx FIFO status. More... | |
void | MCAN_getTxFIFOQStatus (MCAN_TxFIFOQStatus *fifoQStatus) |
Reads Tx FIFO/Queue status. More... | |
int_fast16_t | MCAN_setRxFIFOAck (MCAN_RxFIFONum fifoNum, uint32_t idx) |
Sets Rx FIFO Acknowledgement. More... | |
uint32_t | MCAN_getTxBufReqPend (void) |
Returns Tx Buffer Request Pending status. More... | |
void | MCAN_cancelTxBufReq (uint32_t bufIdx) |
Cancels a Tx Buffer Request. More... | |
uint32_t | MCAN_getTxBufTransmissionStatus (void) |
Returns Tx Buffer Transmission Occurred status. More... | |
uint32_t | MCAN_getTxBufCancellationStatus (void) |
Returns Transmit Buffer Cancellation Finished status. More... | |
void | MCAN_enableTxBufTransInt (uint32_t bufMask) |
Enables Tx Buffer Transmission Interrupt. More... | |
void | MCAN_disableTxBufTransInt (uint32_t bufMask) |
Disables Tx Buffer Transmission Interrupt. More... | |
void | MCAN_readTxEventFIFO (MCAN_TxEventFIFOElement *txEventElem) |
Reads message from Tx Event FIFO. More... | |
uint32_t | MCAN_getClkStopAck (void) |
Returns clock stop acknowledgement for MCAN module. More... | |
MCAN Interrupt Line Number | |
#define | MCAN_INT_LINE_NUM_0 (0U) |
#define | MCAN_INT_LINE_NUM_1 (1U) |
typedef uint32_t | MCAN_IntLineNum |
Enum to select the MCAN interrupt lines. More... | |
MCAN Operation Mode | |
#define | MCAN_OPERATION_MODE_NORMAL (0U) |
#define | MCAN_OPERATION_MODE_SW_INIT (1U) |
typedef uint32_t | MCAN_OperationMode |
Enum to represent the MCAN mode of operation. More... | |
MCAN Mem type | |
#define | MCAN_MEM_TYPE_BUF (0U) |
#define | MCAN_MEM_TYPE_FIFO (1U) |
typedef uint32_t | MCAN_MemType |
Enum to represent the MCAN Message RAM type. More... | |
MCAN Rx FIFO Number | |
#define | MCAN_RX_FIFO_NUM_0 (0U) |
#define | MCAN_RX_FIFO_NUM_1 (1U) |
typedef uint32_t | MCAN_RxFIFONum |
Enum to represent the MCAN Rx FIFO number. More... | |
MCAN Element Size | |
#define | MCAN_ELEM_SIZE_8BYTES (0U) |
#define | MCAN_ELEM_SIZE_12BYTES (1U) |
#define | MCAN_ELEM_SIZE_16BYTES (2U) |
#define | MCAN_ELEM_SIZE_20BYTES (3U) |
#define | MCAN_ELEM_SIZE_24BYTES (4U) |
#define | MCAN_ELEM_SIZE_32BYTES (5U) |
#define | MCAN_ELEM_SIZE_48BYTES (6U) |
#define | MCAN_ELEM_SIZE_64BYTES (7U) |
typedef uint32_t | MCAN_ElemSize |
Enum to represent FIFO/Buffer element Size. More... | |
MCAN Timeout select | |
#define | MCAN_TIMEOUT_SELECT_CONT (0U) |
#define | MCAN_TIMEOUT_SELECT_TX_EVENT_FIFO (1U) |
#define | MCAN_TIMEOUT_SELECT_RX_FIFO0 (2U) |
#define | MCAN_TIMEOUT_SELECT_RX_FIFO1 (3U) |
typedef uint32_t | MCAN_TimeOutSelect |
Enum to represent the MCAN time-out counter configuration. More... | |
MCAN Loopback Mode | |
#define | MCAN_LPBK_MODE_INTERNAL (0U) |
#define | MCAN_LPBK_MODE_EXTERNAL (1U) |
typedef uint32_t | MCAN_LpbkMode |
Enum to select the MCAN Loopback mode. More... | |
MCAN Com State | |
#define | MCAN_COM_STATE_SYNCHRONIZING (0U) |
#define | MCAN_COM_STATE_IDLE (1U) |
#define | MCAN_COM_STATE_RECEIVER (2U) |
#define | MCAN_COM_STATE_TRANSMITTER (3U) |
typedef uint32_t | MCAN_ComState |
Enum to represent MCAN's communication state. More... | |
MCAN General Filter Control Non-Matching | |
#define | MCAN_GFC_NM_ACCEPT_INTO_RXFIFO0 (0U) |
#define | MCAN_GFC_NM_ACCEPT_INTO_RXFIFO1 (1U) |
#define | MCAN_GFC_NM_REJECT (3U) |
typedef uint32_t | MCAN_GFCNonMatching |
Enum to represent the MCAN general filter configuration for non-matching frames. More... | |
MCAN timestamp select | |
#define | MCAN_TSCC_COUNTER_ALWAYS_0 (0U) |
#define | MCAN_TSCC_COUNTER_USE_TCP (1U) |
#define | MCAN_TSCC_COUNTER_EXTERNAL (2U) |
typedef uint32_t | MCAN_TSCCTimestampSel |
Enum to represent the MCAN timestamp select. More... | |
MCAN Error Code | |
#define | MCAN_ERR_CODE_NO_ERROR (0U) |
#define | MCAN_ERR_CODE_STUFF_ERROR (1U) |
#define | MCAN_ERR_CODE_FORM_ERROR (2U) |
#define | MCAN_ERR_CODE_ACK_ERROR (3U) |
#define | MCAN_ERR_CODE_BIT1_ERROR (4U) |
#define | MCAN_ERR_CODE_BIT0_ERROR (5U) |
#define | MCAN_ERR_CODE_CRC_ERROR (6U) |
#define | MCAN_ERR_CODE_NO_CHANGE (7U) |
typedef uint32_t | MCAN_ErrCode |
Enum to represent MCAN's Error Code. More... | |
#define MCAN_STATUS_SUCCESS ((int_fast16_t)0) |
Successful status code.
Functions return MCAN_STATUS_SUCCESS if the function was executed successfully.
#define MCAN_STATUS_ERROR ((int_fast16_t)-1) |
Generic error status code.
Functions return MCAN_STATUS_ERROR if the function was not executed successfully and no more specific error is applicable.
#define MCAN_MAX_PAYLOAD_SIZE (64U) |
Maximum payload supported by CAN-FD protocol in bytes.
#define MCAN_STD_ID_FILTER_ELEM_SIZE (4U) |
Standard Message ID filter element size in bytes.
#define MCAN_EXT_ID_FILTER_ELEM_SIZE (8U) |
Extended Message ID filter element size in bytes.
#define MCAN_TX_EVENT_ELEM_SIZE (8U) |
Tx Event FIFO element size in bytes.
#define MCAN_TX_RX_ELEMENT_HEADER_SIZE (8U) |
Tx/Rx Element Header Size in bytes.
#define MCAN_INT_LINE_NUM_0 (0U) |
MCAN interrupt line 0
#define MCAN_INT_LINE_NUM_1 (1U) |
MCAN interrupt line 1
#define MCAN_OPERATION_MODE_NORMAL (0U) |
MCAN normal mode
#define MCAN_OPERATION_MODE_SW_INIT (1U) |
MCAN SW initialization mode
#define MCAN_MEM_TYPE_BUF (0U) |
MCAN Msg RAM buffers
#define MCAN_MEM_TYPE_FIFO (1U) |
MCAN Msg RAM FIFO/Queue
#define MCAN_RX_FIFO_NUM_0 (0U) |
MCAN Rx FIFO 0
#define MCAN_RX_FIFO_NUM_1 (1U) |
MCAN Rx FIFO 1
#define MCAN_ELEM_SIZE_8BYTES (0U) |
8 byte data field
#define MCAN_ELEM_SIZE_12BYTES (1U) |
12 byte data field
#define MCAN_ELEM_SIZE_16BYTES (2U) |
16 byte data field
#define MCAN_ELEM_SIZE_20BYTES (3U) |
20 byte data field
#define MCAN_ELEM_SIZE_24BYTES (4U) |
24 byte data field
#define MCAN_ELEM_SIZE_32BYTES (5U) |
32 byte data field
#define MCAN_ELEM_SIZE_48BYTES (6U) |
48 byte data field
#define MCAN_ELEM_SIZE_64BYTES (7U) |
64 byte data field
#define MCAN_TIMEOUT_SELECT_CONT (0U) |
Continuous operation Mode
#define MCAN_TIMEOUT_SELECT_TX_EVENT_FIFO (1U) |
Timeout controlled by Tx Event FIFO
#define MCAN_TIMEOUT_SELECT_RX_FIFO0 (2U) |
Timeout controlled by Rx FIFO 0
#define MCAN_TIMEOUT_SELECT_RX_FIFO1 (3U) |
Timeout controlled by Rx FIFO 1
#define MCAN_INT_SRC_RX_FIFO0_NEW_MSG (MCAN_IR_RF0N_MASK) |
Rx FIFO 0 New Message interrupt
#define MCAN_INT_SRC_RX_FIFO0_WATERMARK (MCAN_IR_RF0W_MASK) |
Rx FIFO 0 Watermark Reached interrupt
#define MCAN_INT_SRC_RX_FIFO0_FULL (MCAN_IR_RF0F_MASK) |
Rx FIFO 0 Full interrupt
#define MCAN_INT_SRC_RX_FIFO0_MSG_LOST (MCAN_IR_RF0L_MASK) |
Rx FIFO 0 Message Lost interrupt
#define MCAN_INT_SRC_RX_FIFO1_NEW_MSG (MCAN_IR_RF1N_MASK) |
Rx FIFO 1 New Message interrupt
#define MCAN_INT_SRC_RX_FIFO1_WATERMARK (MCAN_IR_RF1W_MASK) |
Rx FIFO 1 Watermark Reached interrupt
#define MCAN_INT_SRC_RX_FIFO1_FULL (MCAN_IR_RF1F_MASK) |
Rx FIFO 1 Full interrupt
#define MCAN_INT_SRC_RX_FIFO1_MSG_LOST (MCAN_IR_RF1L_MASK) |
Rx FIFO 1 Message Lost interrupt
#define MCAN_INT_SRC_HIGH_PRIO_MSG (MCAN_IR_HPM_MASK) |
High Priority Message interrupt
#define MCAN_INT_SRC_TRANS_COMPLETE (MCAN_IR_TC_MASK) |
Transmission Completed interrupt
#define MCAN_INT_SRC_TRANS_CANCEL_FINISH (MCAN_IR_TCF_MASK) |
Transmission Cancellation Finished interrupt
#define MCAN_INT_SRC_TX_FIFO_EMPTY (MCAN_IR_TFE_MASK) |
Tx FIFO Empty interrupt
#define MCAN_INT_SRC_TX_EVT_FIFO_NEW_ENTRY (MCAN_IR_TEFN_MASK) |
Tx Event FIFO New Entry interrupt
#define MCAN_INT_SRC_TX_EVT_FIFO_WATERMARK (MCAN_IR_TEFW_MASK) |
Tx Event FIFO Watermark Reached interrupt
#define MCAN_INT_SRC_TX_EVT_FIFO_FULL (MCAN_IR_TEFF_MASK) |
Tx Event FIFO Full interrupt
#define MCAN_INT_SRC_TX_EVT_FIFO_ELEM_LOST (MCAN_IR_TEFL_MASK) |
Tx Event FIFO Element Lost interrupt
#define MCAN_INT_SRC_TIMESTAMP_WRAPAROUND (MCAN_IR_TSW_MASK) |
Timestamp Wraparound interrupt
#define MCAN_INT_SRC_MSG_RAM_ACCESS_FAILURE (MCAN_IR_MRAF_MASK) |
Message RAM Access Failure interrupt
#define MCAN_INT_SRC_TIMEOUT (MCAN_IR_TOO_MASK) |
Timeout Occurred interrupt
#define MCAN_INT_SRC_DEDICATED_RX_BUFF_MSG (MCAN_IR_DRX_MASK) |
Message stored to Dedicated Rx Buffer interrupt
#define MCAN_INT_SRC_BIT_ERR_CORRECTED (MCAN_IR_BEC_MASK) |
Bit Error Corrected interrupt
#define MCAN_INT_SRC_BIT_ERR_UNCORRECTED (MCAN_IR_BEU_MASK) |
Bit Error Uncorrected interrupt
#define MCAN_INT_SRC_ERR_LOG_OVERFLOW (MCAN_IR_ELO_MASK) |
Error Logging Overflow interrupt
#define MCAN_INT_SRC_ERR_PASSIVE (MCAN_IR_EP_MASK) |
Error Passive interrupt
#define MCAN_INT_SRC_WARNING_STATUS (MCAN_IR_EW_MASK) |
Warning Status interrupt
#define MCAN_INT_SRC_BUS_OFF_STATUS (MCAN_IR_BO_MASK) |
Bus_Off Status interrupt
#define MCAN_INT_SRC_WATCHDOG (MCAN_IR_WDI_MASK) |
Watchdog Interrupt interrupt
#define MCAN_INT_SRC_PROTOCOL_ERR_ARB (MCAN_IR_PEA_MASK) |
Protocol Error in Arbitration Phase interrupt
#define MCAN_INT_SRC_PROTOCOL_ERR_DATA (MCAN_IR_PED_MASK) |
Protocol Error in Data Phase interrupt
#define MCAN_INT_SRC_RES_ADDR_ACCESS (MCAN_IR_ARA_MASK) |
Access to Reserved Address interrupt
#define MCAN_LPBK_MODE_INTERNAL (0U) |
Internal Loop Back Mode This mode can be used for hot self-test and this mode will not affect bus state.
#define MCAN_LPBK_MODE_EXTERNAL (1U) |
External Loop Back Mode In this mode, MCAN the M_CAN treats its own transmitted messages as received messages and stores them (if they pass acceptance filtering) into an Rx Buffer or an Rx FIFO. This mode will affect bus state
#define MCAN_COM_STATE_SYNCHRONIZING (0U) |
MCAN is synchronizing on CAN communication
#define MCAN_COM_STATE_IDLE (1U) |
MCAN is neither receiver nor transmitter
#define MCAN_COM_STATE_RECEIVER (2U) |
MCAN is operating as receiver
#define MCAN_COM_STATE_TRANSMITTER (3U) |
MCAN is operating as transmitter
#define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO0 (0U) |
Accept non-matching frames into RXFIFO0
#define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO1 (1U) |
Accept non-matching frames into RXFIFO0
#define MCAN_GFC_NM_REJECT (3U) |
Reject non-matching frames
#define MCAN_TSCC_COUNTER_ALWAYS_0 (0U) |
Timestamp counter value always 0x0000
#define MCAN_TSCC_COUNTER_USE_TCP (1U) |
Timestamp counter value incremented according to Timestamp Counter Pre-scaler
#define MCAN_TSCC_COUNTER_EXTERNAL (2U) |
External timestamp counter value used - req'd for CAN FD
#define MCAN_ERR_CODE_NO_ERROR (0U) |
No error occurred since LEC has been reset by successful reception or transmission.
#define MCAN_ERR_CODE_STUFF_ERROR (1U) |
More than 5 equal bits in a sequence have occurred in a part of a received message where this is not allowed.
#define MCAN_ERR_CODE_FORM_ERROR (2U) |
A fixed format part of a received frame has the wrong format.
#define MCAN_ERR_CODE_ACK_ERROR (3U) |
The message transmitted by the M_CAN was not acknowledged by another node.
#define MCAN_ERR_CODE_BIT1_ERROR (4U) |
During the transmission of a message (with the exception of the arbitration field), the device wanted to send a recessive level (bit of logical value 1)) but the monitored bus value was dominant.
#define MCAN_ERR_CODE_BIT0_ERROR (5U) |
During the transmission of a message (or acknowledge bit, or active error flag, or overload flag), the device wanted to send a dominant level (data or identifier bit logical value 0), but the monitored bus value was recessive. During Bus_Off recovery this status is set each time a sequence of 11 recessive bits has been monitored. This enables the CPU to monitor the proceeding of the Bus_Off recovery sequence (indicating the bus is not stuck at dominant or continuously disturbed).
#define MCAN_ERR_CODE_CRC_ERROR (6U) |
The CRC check sum of a received message was incorrect. The CRC of an incoming message does not match with the CRC calculated from the received data.
#define MCAN_ERR_CODE_NO_CHANGE (7U) |
typedef uint32_t MCAN_IntLineNum |
Enum to select the MCAN interrupt lines.
typedef uint32_t MCAN_OperationMode |
Enum to represent the MCAN mode of operation.
typedef uint32_t MCAN_MemType |
Enum to represent the MCAN Message RAM type.
typedef uint32_t MCAN_RxFIFONum |
Enum to represent the MCAN Rx FIFO number.
typedef uint32_t MCAN_ElemSize |
Enum to represent FIFO/Buffer element Size.
typedef uint32_t MCAN_TimeOutSelect |
Enum to represent the MCAN time-out counter configuration.
typedef uint32_t MCAN_IntSrc |
Enum for MCAN interrupts.
typedef uint32_t MCAN_LpbkMode |
Enum to select the MCAN Loopback mode.
typedef uint32_t MCAN_ComState |
Enum to represent MCAN's communication state.
typedef uint32_t MCAN_GFCNonMatching |
Enum to represent the MCAN general filter configuration for non-matching frames.
typedef uint32_t MCAN_TSCCTimestampSel |
Enum to represent the MCAN timestamp select.
typedef uint32_t MCAN_ErrCode |
Enum to represent MCAN's Error Code.
void MCAN_writeReg | ( | uint32_t | offset, |
uint32_t | value | ||
) |
void MCAN_writeMsgRAM | ( | uint32_t | offset, |
const uint8_t * | src, | ||
size_t | numBytes | ||
) |
uint32_t MCAN_readReg | ( | uint32_t | offset | ) |
void MCAN_readMsgRAM | ( | uint8_t * | dst, |
uint32_t | offset, | ||
size_t | numBytes | ||
) |
uint32_t MCAN_getMRAMOffset | ( | void | ) |
int_fast16_t MCAN_init | ( | const MCAN_InitParams * | initParams | ) |
Initializes MCAN module.
initParams | Pointer to initialization parameters. Refer struct MCAN_InitParams. |
MCAN_STATUS_SUCCESS | if successful. |
MCAN_STATUS_ERROR | if config has invalid time delay compensation or WDT preload. |
int_fast16_t MCAN_config | ( | const MCAN_ConfigParams * | config | ) |
Configures MCAN module.
config | Pointer to configuration parameters. Refer struct MCAN_ConfigParams. |
MCAN_STATUS_SUCCESS | if successful. |
MCAN_STATUS_ERROR | if config has invalid prescalar or timeout preload. |
void MCAN_setOpMode | ( | MCAN_OperationMode | mode | ) |
Sets MCAN module mode of operation.
mode | Mode of operation. Refer enum MCAN_OperationMode. |
MCAN_OperationMode MCAN_getOpMode | ( | void | ) |
Returns MCAN module mode of operation.
int_fast16_t MCAN_setBitTime | ( | const MCAN_BitTimingParams * | bitTiming | ) |
Configures bit timings for MCAN module.
bitTiming | Pointer to MCAN bit timing parameters. Refer struct MCAN_BitTimingParams. |
MCAN_STATUS_SUCCESS | if successful. |
MCAN_STATUS_ERROR | if config has invalid timing values. |
void MCAN_configMsgRAM | ( | const MCAN_MsgRAMConfig * | msgRAMConfig | ) |
Configures the various sections of Message RAM.
msgRAMConfig | Pointer to Message RAM configuration. Refer struct MCAN_MsgRAMConfig. |
void MCAN_writeTxMsgNoCpy | ( | uint32_t | bufIdx, |
const MCAN_TxBufElementNoCpy * | elem | ||
) |
Writes Tx message to message RAM.
This uses the MCAN_TxBufElementNoCpy structure element which has data as a pointer instead of an array. Note that as the data is a pointer here hence corruption of data is possible when the payload size is exceeded.
bufIdx | Tx Buffer index [0-31] where message to write. Must be valid per the message RAM configuration. |
elem | Pointer to Tx element. Refer struct MCAN_TxBufElementNoCpy. |
void MCAN_writeTxMsg | ( | uint32_t | bufIdx, |
const MCAN_TxBufElement * | elem | ||
) |
Writes Tx message to message RAM.
bufIdx | Tx Buffer index [0-31] where message to write. Must be valid per the message RAM configuration. |
elem | Pointer to Tx element. Refer struct MCAN_TxBufElement. |
void MCAN_setTxBufAddReq | ( | uint32_t | bufIdx | ) |
Sets Tx Buffer Add Request.
bufIdx | Tx Buffer index [0-31] for which request is to be added. Must be valid per the message RAM configuration. |
void MCAN_getNewDataStatus | ( | MCAN_RxNewDataStatus * | newDataStatus | ) |
Returns New Data Message Status.
newDataStatus | Pointer to Rx Buffer new data status. Refer struct MCAN_RxNewDataStatus. |
void MCAN_clearNewDataStatus | ( | const MCAN_RxNewDataStatus * | newDataStatus | ) |
Clears New Data Message Status.
newDataStatus | Pointer to Rx Buffer new data status. Refer struct MCAN_RxNewDataStatus. |
void MCAN_readRxMsgNoCpy | ( | MCAN_MemType | memType, |
uint32_t | num, | ||
MCAN_RxBufElementNoCpy * | elem | ||
) |
Reads received message from message RAM.
This uses the MCAN_RxBufElementNoCpy structure element which has data as pointer instead of an array. Note that as the data is a pointer here hence corruption of data is possible when the payload size is exceeded.
memType | Part of message ram to which given message to write. Refer enum MCAN_MemType. |
num | Buffer number or FIFO number from where message is to read. Refer enum MCAN_RxFIFONum if FIFO number. Must be valid per the message RAM configuration. |
elem | Pointer to Rx element. Refer struct MCAN_RxBufElementNoCpy. |
void MCAN_readRxMsg | ( | MCAN_MemType | memType, |
uint32_t | num, | ||
MCAN_RxBufElement * | elem | ||
) |
Reads received message from message RAM.
memType | Part of message ram to which given message to write. Refer enum MCAN_MemType. |
num | Buffer number or FIFO number from where message is to read. Refer enum MCAN_RxFIFONum if FIFO number. Must be valid per the message RAM configuration. |
elem | Pointer to Rx element. Refer struct MCAN_RxBufElement. |
void MCAN_addStdMsgIDFilter | ( | uint32_t | filtNum, |
const MCAN_StdMsgIDFilterElement * | elem | ||
) |
Adds Standard Message ID Filter Element.
filtNum | Filter number (0-based). |
elem | Pointer to standard ID Filter Object. Refer struct MCAN_StdMsgIDFilterElement. |
void MCAN_addExtMsgIDFilter | ( | uint32_t | filtNum, |
const MCAN_ExtMsgIDFilterElement * | elem | ||
) |
Adds Extended Message ID Filter Element.
filtNum | Filter number (0-based). |
elem | Pointer to extended ID Filter Object. Refer struct MCAN_ExtMsgIDFilterElement. |
void MCAN_enableLoopbackMode | ( | MCAN_LpbkMode | lpbkMode | ) |
Enables Loopback Test Mode for MCAN module.
lpbkMode | Loopback mode for MCAN. Refer enum MCAN_LpbkMode. |
void MCAN_disableLoopbackMode | ( | void | ) |
Disables Loopback Test Mode for MCAN module.
void MCAN_getProtocolStatus | ( | MCAN_ProtocolStatus * | protStatus | ) |
Returns protocol status for MCAN module.
protStatus | Pointer to Protocol Status. Refer struct MCAN_ProtocolStatus. |
void MCAN_enableInt | ( | uint32_t | intMask | ) |
Enables interrupts.
intMask | Bit mask of interrupts to enable. Refer enum MCAN_IntSrc. |
void MCAN_disableInt | ( | uint32_t | intMask | ) |
Disables interrupts.
intMask | Bit mask of interrupts to disable. Refer enum MCAN_IntSrc. |
void MCAN_setIntLineSel | ( | uint32_t | intMask, |
MCAN_IntLineNum | lineNum | ||
) |
Sets interrupt line select.
intMask | Interrupt Number for which interrupt line is to be selected. Refer enum MCAN_IntSrc. |
lineNum | Interrupt Line to select. Refer enum MCAN_IntLineNum, |
void MCAN_enableIntLine | ( | MCAN_IntLineNum | lineNum | ) |
Enables selected interrupt line.
lineNum | Interrupt Line to enable. Refer enum MCAN_IntLineNum, |
void MCAN_disableIntLine | ( | MCAN_IntLineNum | lineNum | ) |
Disables selected interrupt line.
lineNum | Interrupt Line to disable. Refer enum MCAN_IntLineNum, |
uint32_t MCAN_getIntStatus | ( | void | ) |
Returns interrupt status.
void MCAN_clearIntStatus | ( | uint32_t | intMask | ) |
Clears the interrupt status.
intMask | Interrupts to clear status. |
void MCAN_getRxFIFOStatus | ( | MCAN_RxFIFONum | fifoNum, |
MCAN_RxFIFOStatus * | fifoStatus | ||
) |
Reads Rx FIFO status.
fifoNum | Rx FIFO number Refer enum MCAN_RxFIFONum |
fifoStatus | Rx FIFO Status. Refer struct MCAN_RxFIFOStatus. |
void MCAN_getTxFIFOQStatus | ( | MCAN_TxFIFOQStatus * | fifoQStatus | ) |
Reads Tx FIFO/Queue status.
fifoQStatus | Pointer to Tx FIFO/Queue Status. Refer struct MCAN_TxFIFOQStatus. |
int_fast16_t MCAN_setRxFIFOAck | ( | MCAN_RxFIFONum | fifoNum, |
uint32_t | idx | ||
) |
Sets Rx FIFO Acknowledgement.
fifoNum | FIFO Number. Refer enum MCAN_RxFIFONum. |
idx | Rx FIFO Acknowledge Index |
MCAN_STATUS_SUCCESS | if successful. |
MCAN_STATUS_ERROR | if fifoNum or idx is invalid. |
uint32_t MCAN_getTxBufReqPend | ( | void | ) |
Returns Tx Buffer Request Pending status.
void MCAN_cancelTxBufReq | ( | uint32_t | bufIdx | ) |
Cancels a Tx Buffer Request.
bufIdx | Tx Buffer index [0-31] for which request is to be cancelled. |
uint32_t MCAN_getTxBufTransmissionStatus | ( | void | ) |
Returns Tx Buffer Transmission Occurred status.
uint32_t MCAN_getTxBufCancellationStatus | ( | void | ) |
Returns Transmit Buffer Cancellation Finished status.
void MCAN_enableTxBufTransInt | ( | uint32_t | bufMask | ) |
Enables Tx Buffer Transmission Interrupt.
bufMask | Tx Buffer mask for which interrupt(s) to enable. |
void MCAN_disableTxBufTransInt | ( | uint32_t | bufMask | ) |
Disables Tx Buffer Transmission Interrupt.
bufMask | Tx Buffer mask for which interrupt(s) to disable. |
void MCAN_readTxEventFIFO | ( | MCAN_TxEventFIFOElement * | txEventElem | ) |
Reads message from Tx Event FIFO.
txEventElem | Pointer to Tx Event FIFO Message Object. Refer struct MCAN_TxEventFIFOElement. |
uint32_t MCAN_getClkStopAck | ( | void | ) |
Returns clock stop acknowledgement for MCAN module.