60 extern void MCAN_writeMsgRAM(uint32_t offset,
const uint8_t *src,
size_t numBytes);
62 extern void MCAN_readMsgRAM(uint8_t *dst, uint32_t offset,
size_t numBytes);
71 #define MCAN_STATUS_SUCCESS ((int_fast16_t)0) 79 #define MCAN_STATUS_ERROR ((int_fast16_t)-1) 82 #define MCAN_MAX_PAYLOAD_SIZE (64U) 85 #define MCAN_STD_ID_FILTER_ELEM_SIZE (4U) 88 #define MCAN_EXT_ID_FILTER_ELEM_SIZE (8U) 91 #define MCAN_TX_EVENT_ELEM_SIZE (8U) 94 #define MCAN_TX_RX_ELEMENT_HEADER_SIZE (8U) 106 #define MCAN_INT_LINE_NUM_0 (0U) 108 #define MCAN_INT_LINE_NUM_1 (1U) 122 #define MCAN_OPERATION_MODE_NORMAL (0U) 124 #define MCAN_OPERATION_MODE_SW_INIT (1U) 138 #define MCAN_MEM_TYPE_BUF (0U) 140 #define MCAN_MEM_TYPE_FIFO (1U) 154 #define MCAN_RX_FIFO_NUM_0 (0U) 156 #define MCAN_RX_FIFO_NUM_1 (1U) 170 #define MCAN_ELEM_SIZE_8BYTES (0U) 172 #define MCAN_ELEM_SIZE_12BYTES (1U) 174 #define MCAN_ELEM_SIZE_16BYTES (2U) 176 #define MCAN_ELEM_SIZE_20BYTES (3U) 178 #define MCAN_ELEM_SIZE_24BYTES (4U) 180 #define MCAN_ELEM_SIZE_32BYTES (5U) 182 #define MCAN_ELEM_SIZE_48BYTES (6U) 184 #define MCAN_ELEM_SIZE_64BYTES (7U) 198 #define MCAN_TIMEOUT_SELECT_CONT (0U) 200 #define MCAN_TIMEOUT_SELECT_TX_EVENT_FIFO (1U) 202 #define MCAN_TIMEOUT_SELECT_RX_FIFO0 (2U) 204 #define MCAN_TIMEOUT_SELECT_RX_FIFO1 (3U) 218 #define MCAN_INT_SRC_RX_FIFO0_NEW_MSG (MCAN_IR_RF0N_MASK) 220 #define MCAN_INT_SRC_RX_FIFO0_WATERMARK (MCAN_IR_RF0W_MASK) 222 #define MCAN_INT_SRC_RX_FIFO0_FULL (MCAN_IR_RF0F_MASK) 224 #define MCAN_INT_SRC_RX_FIFO0_MSG_LOST (MCAN_IR_RF0L_MASK) 226 #define MCAN_INT_SRC_RX_FIFO1_NEW_MSG (MCAN_IR_RF1N_MASK) 228 #define MCAN_INT_SRC_RX_FIFO1_WATERMARK (MCAN_IR_RF1W_MASK) 230 #define MCAN_INT_SRC_RX_FIFO1_FULL (MCAN_IR_RF1F_MASK) 232 #define MCAN_INT_SRC_RX_FIFO1_MSG_LOST (MCAN_IR_RF1L_MASK) 234 #define MCAN_INT_SRC_HIGH_PRIO_MSG (MCAN_IR_HPM_MASK) 236 #define MCAN_INT_SRC_TRANS_COMPLETE (MCAN_IR_TC_MASK) 238 #define MCAN_INT_SRC_TRANS_CANCEL_FINISH (MCAN_IR_TCF_MASK) 240 #define MCAN_INT_SRC_TX_FIFO_EMPTY (MCAN_IR_TFE_MASK) 242 #define MCAN_INT_SRC_TX_EVT_FIFO_NEW_ENTRY (MCAN_IR_TEFN_MASK) 244 #define MCAN_INT_SRC_TX_EVT_FIFO_WATERMARK (MCAN_IR_TEFW_MASK) 246 #define MCAN_INT_SRC_TX_EVT_FIFO_FULL (MCAN_IR_TEFF_MASK) 248 #define MCAN_INT_SRC_TX_EVT_FIFO_ELEM_LOST (MCAN_IR_TEFL_MASK) 250 #define MCAN_INT_SRC_TIMESTAMP_WRAPAROUND (MCAN_IR_TSW_MASK) 252 #define MCAN_INT_SRC_MSG_RAM_ACCESS_FAILURE (MCAN_IR_MRAF_MASK) 254 #define MCAN_INT_SRC_TIMEOUT (MCAN_IR_TOO_MASK) 256 #define MCAN_INT_SRC_DEDICATED_RX_BUFF_MSG (MCAN_IR_DRX_MASK) 258 #define MCAN_INT_SRC_BIT_ERR_CORRECTED (MCAN_IR_BEC_MASK) 260 #define MCAN_INT_SRC_BIT_ERR_UNCORRECTED (MCAN_IR_BEU_MASK) 262 #define MCAN_INT_SRC_ERR_LOG_OVERFLOW (MCAN_IR_ELO_MASK) 264 #define MCAN_INT_SRC_ERR_PASSIVE (MCAN_IR_EP_MASK) 266 #define MCAN_INT_SRC_WARNING_STATUS (MCAN_IR_EW_MASK) 268 #define MCAN_INT_SRC_BUS_OFF_STATUS (MCAN_IR_BO_MASK) 270 #define MCAN_INT_SRC_WATCHDOG (MCAN_IR_WDI_MASK) 272 #define MCAN_INT_SRC_PROTOCOL_ERR_ARB (MCAN_IR_PEA_MASK) 274 #define MCAN_INT_SRC_PROTOCOL_ERR_DATA (MCAN_IR_PED_MASK) 276 #define MCAN_INT_SRC_RES_ADDR_ACCESS (MCAN_IR_ARA_MASK) 290 #define MCAN_LPBK_MODE_INTERNAL (0U) 295 #define MCAN_LPBK_MODE_EXTERNAL (1U) 313 #define MCAN_COM_STATE_SYNCHRONIZING (0U) 315 #define MCAN_COM_STATE_IDLE (1U) 317 #define MCAN_COM_STATE_RECEIVER (2U) 319 #define MCAN_COM_STATE_TRANSMITTER (3U) 333 #define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO0 (0U) 335 #define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO1 (1U) 337 #define MCAN_GFC_NM_REJECT (3U) 351 #define MCAN_TSCC_COUNTER_ALWAYS_0 (0U) 353 #define MCAN_TSCC_COUNTER_USE_TCP (1U) 355 #define MCAN_TSCC_COUNTER_EXTERNAL (2U) 369 #define MCAN_ERR_CODE_NO_ERROR (0U) 373 #define MCAN_ERR_CODE_STUFF_ERROR (1U) 377 #define MCAN_ERR_CODE_FORM_ERROR (2U) 379 #define MCAN_ERR_CODE_ACK_ERROR (3U) 383 #define MCAN_ERR_CODE_BIT1_ERROR (4U) 389 #define MCAN_ERR_CODE_BIT0_ERROR (5U) 399 #define MCAN_ERR_CODE_CRC_ERROR (6U) 404 #define MCAN_ERR_CODE_NO_CHANGE (7U) uint32_t id
Definition: MCAN.h:1049
void MCAN_enableLoopbackMode(MCAN_LpbkMode lpbkMode)
Enables Loopback Test Mode for MCAN module.
uint8_t dlc
Definition: MCAN.h:1068
uint8_t fidx
Definition: MCAN.h:1084
void MCAN_clearIntStatus(uint32_t intMask)
Clears the interrupt status.
uint32_t statusLow
Definition: MCAN.h:815
void MCAN_enableTxBufTransInt(uint32_t bufMask)
Enables Tx Buffer Transmission Interrupt.
MCAN_GFCNonMatching anfe
Definition: MCAN.h:490
uint8_t xtd
Definition: MCAN.h:1058
Structure for MCAN Tx Buffer element which takes data as a pointer. Please note that as the data fiel...
Definition: MCAN.h:941
MCAN_TSCCTimestampSel tsSelect
Definition: MCAN.h:574
Structure for MCAN Rx Buffer element which takes data as a pointer. Please note that as the data fiel...
Definition: MCAN.h:1047
uint32_t rrfs
Definition: MCAN.h:485
uint32_t rxFIFO1StartAddr
Definition: MCAN.h:725
uint32_t efid2
Definition: MCAN.h:1188
uint32_t sfec
Definition: MCAN.h:1158
void MCAN_disableIntLine(MCAN_IntLineNum lineNum)
Disables selected interrupt line.
uint32_t darEnable
Definition: MCAN.h:532
uint32_t dataSynchJumpWidth
Definition: MCAN.h:453
uint32_t monEnable
Definition: MCAN.h:558
uint32_t efec
Definition: MCAN.h:1190
uint32_t timeoutPreload
Definition: MCAN.h:582
uint32_t sfid1
Definition: MCAN.h:1156
uint32_t id
Definition: MCAN.h:1102
uint32_t brs
Definition: MCAN.h:917
uint32_t xtd
Definition: MCAN.h:950
uint32_t nomTimeSeg1
Definition: MCAN.h:423
void MCAN_getRxFIFOStatus(MCAN_RxFIFONum fifoNum, MCAN_RxFIFOStatus *fifoStatus)
Reads Rx FIFO status.
Structure for MCAN Standard Message ID Filter Element.
Definition: MCAN.h:1152
uint8_t fidx
Definition: MCAN.h:1033
uint32_t statusHigh
Definition: MCAN.h:817
uint32_t fillLvl
Definition: MCAN.h:826
void MCAN_writeTxMsgNoCpy(uint32_t bufIdx, const MCAN_TxBufElementNoCpy *elem)
Writes Tx message to message RAM.
uint32_t pxe
Definition: MCAN.h:666
void MCAN_getTxFIFOQStatus(MCAN_TxFIFOQStatus *fifoQStatus)
Reads Tx FIFO/Queue status.
uint32_t MCAN_ErrCode
Enum to represent MCAN's Error Code.
Definition: MCAN.h:367
uint8_t xtd
Definition: MCAN.h:1111
uint32_t fillLvl
Definition: MCAN.h:866
uint32_t MCAN_getTxBufReqPend(void)
Returns Tx Buffer Request Pending status.
uint32_t id
Definition: MCAN.h:943
uint32_t sfid2
Definition: MCAN.h:1154
uint32_t brsEnable
Definition: MCAN.h:510
uint32_t rtr
Definition: MCAN.h:945
uint8_t dlc
Definition: MCAN.h:1017
void MCAN_readMsgRAM(uint8_t *dst, uint32_t offset, size_t numBytes)
MCAN_ComState act
Definition: MCAN.h:626
uint32_t fdf
Definition: MCAN.h:922
Structure for MCAN Extended Message ID Filter Element.
Definition: MCAN.h:1184
uint32_t eleLost
Definition: MCAN.h:877
void MCAN_readRxMsg(MCAN_MemType memType, uint32_t num, MCAN_RxBufElement *elem)
Reads received message from message RAM.
uint32_t sidFilterListSize
Definition: MCAN.h:695
Structure for MCAN Rx FIFO Status.
Definition: MCAN.h:824
uint32_t dlc
Definition: MCAN.h:960
MCAN_OperationMode MCAN_getOpMode(void)
Returns MCAN module mode of operation.
uint32_t fdf
Definition: MCAN.h:971
void MCAN_readRxMsgNoCpy(MCAN_MemType memType, uint32_t num, MCAN_RxBufElementNoCpy *elem)
Reads received message from message RAM.
uint32_t txBufElemSize
Definition: MCAN.h:781
Structure for MCAN High Priority Message.
Definition: MCAN.h:788
void MCAN_setOpMode(MCAN_OperationMode mode)
Sets MCAN module mode of operation.
uint8_t fdf
Definition: MCAN.h:1079
uint32_t tdcf
Definition: MCAN.h:465
int_fast16_t MCAN_setBitTime(const MCAN_BitTimingParams *bitTiming)
Configures bit timings for MCAN module.
uint32_t rbrs
Definition: MCAN.h:655
uint32_t esi
Definition: MCAN.h:955
uint32_t txFIFOQSize
Definition: MCAN.h:771
uint32_t rxBufStartAddr
Definition: MCAN.h:742
void MCAN_setTxBufAddReq(uint32_t bufIdx)
Sets Tx Buffer Add Request.
uint32_t sft
Definition: MCAN.h:1172
uint8_t et
Definition: MCAN.h:1137
uint8_t esi
Definition: MCAN.h:1012
uint32_t fifoFull
Definition: MCAN.h:854
void MCAN_setIntLineSel(uint32_t intMask, MCAN_IntLineNum lineNum)
Sets interrupt line select.
uint32_t rxFIFO1OpMode
Definition: MCAN.h:737
int_fast16_t MCAN_config(const MCAN_ConfigParams *config)
Configures MCAN module.
uint8_t fdf
Definition: MCAN.h:1132
uint32_t xtd
Definition: MCAN.h:901
uint32_t asmEnable
Definition: MCAN.h:563
uint32_t txEventFIFOWatermark
Definition: MCAN.h:758
uint32_t nomTimeSeg2
Definition: MCAN.h:428
uint32_t putIdx
Definition: MCAN.h:852
uint32_t recErrCnt
Definition: MCAN.h:606
uint32_t txEventFIFOStartAddr
Definition: MCAN.h:751
uint8_t rtr
Definition: MCAN.h:1106
uint32_t MCAN_getTxBufTransmissionStatus(void)
Returns Tx Buffer Transmission Occurred status.
uint32_t tsPrescalar
Definition: MCAN.h:569
Structure for MCAN error logging counters status.
Definition: MCAN.h:602
void MCAN_writeReg(uint32_t offset, uint32_t value)
uint32_t efid1
Definition: MCAN.h:1186
uint32_t dataRatePrescalar
Definition: MCAN.h:438
uint32_t brs
Definition: MCAN.h:966
int_fast16_t MCAN_init(const MCAN_InitParams *initParams)
Initializes MCAN module.
uint32_t dataTimeSeg2
Definition: MCAN.h:448
uint8_t anmf
Definition: MCAN.h:1035
uint8_t esi
Definition: MCAN.h:1116
void MCAN_getNewDataStatus(MCAN_RxNewDataStatus *newDataStatus)
Returns New Data Message Status.
void MCAN_enableInt(uint32_t intMask)
Enables interrupts.
void MCAN_clearNewDataStatus(const MCAN_RxNewDataStatus *newDataStatus)
Clears New Data Message Status.
uint32_t tdcv
Definition: MCAN.h:671
const uint8_t * data
Definition: MCAN.h:983
uint32_t errPassive
Definition: MCAN.h:630
uint32_t freeLvl
Definition: MCAN.h:846
MCAN_ErrCode lastErrCode
Definition: MCAN.h:622
uint32_t MCAN_TSCCTimestampSel
Enum to represent the MCAN timestamp select.
Definition: MCAN.h:349
uint32_t getIdx
Definition: MCAN.h:848
uint32_t id
Definition: MCAN.h:894
void MCAN_enableIntLine(MCAN_IntLineNum lineNum)
Enables selected interrupt line.
Structure for bit timing calculation. Bit timing related to data phase will be valid only if CAN-FD m...
Definition: MCAN.h:416
uint32_t id
Definition: MCAN.h:998
uint8_t rtr
Definition: MCAN.h:1002
uint32_t putIdx
Definition: MCAN.h:870
void MCAN_writeTxMsg(uint32_t bufIdx, const MCAN_TxBufElement *elem)
Writes Tx message to message RAM.
uint32_t rxFIFO1Watermark
Definition: MCAN.h:732
uint32_t fifoFull
Definition: MCAN.h:872
uint32_t MCAN_getClkStopAck(void)
Returns clock stop acknowledgement for MCAN module.
uint8_t anmf
Definition: MCAN.h:1086
M_CAN controller v3.2.1 register definitions.
uint32_t rxFIFO0Watermark
Definition: MCAN.h:715
uint32_t rpStatus
Definition: MCAN.h:608
Structure for MCAN initialization parameters.
Definition: MCAN.h:503
MCAN_TimeOutSelect timeoutSelect
Definition: MCAN.h:578
uint32_t MCAN_OperationMode
Enum to represent the MCAN mode of operation.
Definition: MCAN.h:120
uint32_t MCAN_ElemSize
Enum to represent FIFO/Buffer element Size.
Definition: MCAN.h:168
Structure for MCAN protocol status.
Definition: MCAN.h:620
MCAN_ErrCode dlec
Definition: MCAN.h:646
uint32_t eft
Definition: MCAN.h:1204
uint32_t dlc
Definition: MCAN.h:911
uint32_t rxFIFO1ElemSize
Definition: MCAN.h:748
uint32_t canErrLogCnt
Definition: MCAN.h:613
uint32_t rtr
Definition: MCAN.h:896
void MCAN_cancelTxBufReq(uint32_t bufIdx)
Cancels a Tx Buffer Request.
uint32_t resi
Definition: MCAN.h:650
uint8_t brs
Definition: MCAN.h:1023
uint32_t warningStatus
Definition: MCAN.h:635
uint32_t rxFIFO0OpMode
Definition: MCAN.h:720
uint32_t nomRatePrescalar
Definition: MCAN.h:418
uint32_t bufIdx
Definition: MCAN.h:790
uint32_t MCAN_MemType
Enum to represent the MCAN Message RAM type.
Definition: MCAN.h:136
void MCAN_getProtocolStatus(MCAN_ProtocolStatus *protStatus)
Returns protocol status for MCAN module.
uint32_t efbi
Definition: MCAN.h:521
uint32_t MCAN_LpbkMode
Enum to select the MCAN Loopback mode.
Definition: MCAN.h:288
uint32_t sidFilterStartAddr
Definition: MCAN.h:693
uint32_t getIdx
Definition: MCAN.h:868
uint32_t MCAN_IntSrc
Enum for MCAN interrupts.
Definition: MCAN.h:216
uint8_t dlc
Definition: MCAN.h:1121
int_fast16_t MCAN_setRxFIFOAck(MCAN_RxFIFONum fifoNum, uint32_t idx)
Sets Rx FIFO Acknowledgement.
void MCAN_configMsgRAM(const MCAN_MsgRAMConfig *msgRAMConfig)
Configures the various sections of Message RAM.
uint32_t wdcPreload
Definition: MCAN.h:538
uint8_t mm
Definition: MCAN.h:1145
MCAN_GFCNonMatching anfs
Definition: MCAN.h:494
uint8_t brs
Definition: MCAN.h:1127
uint32_t rxFIFO0Size
Definition: MCAN.h:710
uint32_t nomSynchJumpWidth
Definition: MCAN.h:433
uint32_t tdcEnable
Definition: MCAN.h:546
uint32_t msgLost
Definition: MCAN.h:837
uint32_t transErrLogCnt
Definition: MCAN.h:604
void MCAN_writeMsgRAM(uint32_t offset, const uint8_t *src, size_t numBytes)
uint32_t dataTimeSeg1
Definition: MCAN.h:443
uint16_t txts
Definition: MCAN.h:1104
uint32_t txBufStartAddr
Definition: MCAN.h:764
MCAN_GlobalFiltConfig filterConfig
Definition: MCAN.h:593
uint32_t timeoutCntEnable
Definition: MCAN.h:588
uint32_t txFIFOQMode
Definition: MCAN.h:776
uint32_t xidFilterStartAddr
Definition: MCAN.h:700
uint32_t msi
Definition: MCAN.h:794
uint32_t xidFilterListSize
Definition: MCAN.h:702
uint32_t rrfe
Definition: MCAN.h:480
Structure for MCAN new data flag for Rx buffer.
Definition: MCAN.h:813
Structure for MCAN Global Filter Configuration parameters.
Definition: MCAN.h:478
Structure for MCAN Tx Event FIFO Status.
Definition: MCAN.h:864
uint32_t mm
Definition: MCAN.h:932
uint32_t busOffStatus
Definition: MCAN.h:641
uint32_t efc
Definition: MCAN.h:927
MCAN_TDCConfig tdcConfig
Definition: MCAN.h:542
uint32_t txEventFIFOSize
Definition: MCAN.h:753
uint32_t filterList
Definition: MCAN.h:803
void MCAN_disableLoopbackMode(void)
Disables Loopback Test Mode for MCAN module.
uint32_t MCAN_IntLineNum
Enum to select the MCAN interrupt lines.
Definition: MCAN.h:104
uint8_t rtr
Definition: MCAN.h:1053
uint32_t rfdf
Definition: MCAN.h:660
uint32_t rxFIFO1Size
Definition: MCAN.h:727
uint8_t * data
Definition: MCAN.h:1091
Structure for MCAN Tx Buffer element.
Definition: MCAN.h:888
uint8_t xtd
Definition: MCAN.h:1007
uint32_t pxhDisable
Definition: MCAN.h:527
uint32_t rxBufElemSize
Definition: MCAN.h:744
uint32_t mm
Definition: MCAN.h:981
void MCAN_disableInt(uint32_t intMask)
Disables interrupts.
uint32_t txBufNum
Definition: MCAN.h:766
Structure for MCAN Tx FIFO/Queue Status.
Definition: MCAN.h:844
uint32_t rxFIFO0ElemSize
Definition: MCAN.h:746
uint32_t rxFIFO0StartAddr
Definition: MCAN.h:708
uint32_t putIdx
Definition: MCAN.h:830
uint32_t MCAN_GFCNonMatching
Enum to represent the MCAN general filter configuration for non-matching frames.
Definition: MCAN.h:331
uint32_t MCAN_getMRAMOffset(void)
#define MCAN_MAX_PAYLOAD_SIZE
Maximum payload supported by CAN-FD protocol in bytes.
Definition: MCAN.h:82
void MCAN_addStdMsgIDFilter(uint32_t filtNum, const MCAN_StdMsgIDFilterElement *elem)
Adds Standard Message ID Filter Element.
Structure for MCAN Tx Event FIFO element.
Definition: MCAN.h:1100
uint32_t esi
Definition: MCAN.h:906
uint32_t MCAN_getIntStatus(void)
Returns interrupt status.
void MCAN_readTxEventFIFO(MCAN_TxEventFIFOElement *txEventElem)
Reads message from Tx Event FIFO.
uint32_t fdMode
Definition: MCAN.h:505
uint8_t esi
Definition: MCAN.h:1063
uint16_t rxts
Definition: MCAN.h:1051
uint32_t MCAN_ComState
Enum to represent MCAN's communication state.
Definition: MCAN.h:311
uint32_t filterIdx
Definition: MCAN.h:801
Structure for MCAN configuration parameters.
Definition: MCAN.h:556
Structure for MCAN Rx Buffer element.
Definition: MCAN.h:992
uint32_t txpEnable
Definition: MCAN.h:516
uint8_t brs
Definition: MCAN.h:1074
uint32_t efc
Definition: MCAN.h:976
uint32_t MCAN_TimeOutSelect
Enum to represent the MCAN time-out counter configuration.
Definition: MCAN.h:196
uint16_t rxts
Definition: MCAN.h:1000
uint32_t MCAN_getTxBufCancellationStatus(void)
Returns Transmit Buffer Cancellation Finished status.
uint32_t getIdx
Definition: MCAN.h:828
void MCAN_disableTxBufTransInt(uint32_t bufMask)
Disables Tx Buffer Transmission Interrupt.
uint32_t MCAN_readReg(uint32_t offset)
Structure for MCAN Message RAM Configuration Parameters. Message RAM can contain following sections: ...
Definition: MCAN.h:691
Structure for MCAN Transmitter Delay Compensation parameters.
Definition: MCAN.h:463
uint32_t fifoFull
Definition: MCAN.h:832
uint32_t tdco
Definition: MCAN.h:469
void MCAN_addExtMsgIDFilter(uint32_t filtNum, const MCAN_ExtMsgIDFilterElement *elem)
Adds Extended Message ID Filter Element.
uint8_t fdf
Definition: MCAN.h:1028
uint32_t MCAN_RxFIFONum
Enum to represent the MCAN Rx FIFO number.
Definition: MCAN.h:152