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:1055
void MCAN_enableLoopbackMode(MCAN_LpbkMode lpbkMode)
Enables Loopback Test Mode for M_CAN controller.
uint8_t dlc
Definition: MCAN.h:1074
uint32_t getIdx
Definition: MCAN.h:876
uint8_t fidx
Definition: MCAN.h:1090
void MCAN_clearIntStatus(uint32_t intMask)
Clears the interrupt status.
uint32_t statusLow
Definition: MCAN.h:823
void MCAN_enableTxBufTransInt(uint32_t bufMask)
Enables Tx Buffer Transmission Interrupt.
MCAN_GFCNonMatching anfe
Definition: MCAN.h:505
uint32_t fifoFull
Definition: MCAN.h:880
uint8_t xtd
Definition: MCAN.h:1064
Structure for MCAN Tx Buffer element which takes data as a pointer.
Definition: MCAN.h:947
MCAN_TSCCTimestampSel tsSelect
Definition: MCAN.h:582
Structure for MCAN Rx Buffer element which takes data as a pointer. Please note that as the data fiel...
Definition: MCAN.h:1053
uint32_t rxFifo0Size
Definition: MCAN.h:718
uint32_t rrfs
Definition: MCAN.h:500
uint32_t efid2
Definition: MCAN.h:1244
uint32_t sfec
Definition: MCAN.h:1160
void MCAN_disableIntLine(MCAN_IntLineNum lineNum)
Disables selected interrupt line.
uint32_t darEnable
Definition: MCAN.h:547
uint32_t dataSynchJumpWidth
Definition: MCAN.h:479
uint32_t txEventFifoWatermark
Definition: MCAN.h:766
uint32_t monEnable
Definition: MCAN.h:564
uint32_t efec
Definition: MCAN.h:1215
uint32_t txBufElemSize
Definition: MCAN.h:789
uint32_t nomRatePrescaler
Definition: MCAN.h:443
uint32_t fillLvl
Definition: MCAN.h:834
uint32_t timeoutPreload
Definition: MCAN.h:590
uint32_t txBufStartAddr
Definition: MCAN.h:772
uint32_t txEventFifoStartAddr
Definition: MCAN.h:759
uint32_t eleLost
Definition: MCAN.h:885
uint32_t sfid1
Definition: MCAN.h:1181
uint32_t brs
Definition: MCAN.h:925
uint32_t xtd
Definition: MCAN.h:956
uint32_t nomTimeSeg1
Definition: MCAN.h:448
Structure for MCAN Standard Message ID Filter Element.
Definition: MCAN.h:1158
uint32_t getIdx
Definition: MCAN.h:836
uint8_t fidx
Definition: MCAN.h:1039
uint32_t statusHigh
Definition: MCAN.h:825
uint8_t dlc
Definition: MCAN.h:1127
void MCAN_writeTxMsgNoCpy(uint32_t bufIdx, const MCAN_TxBufElementNoCpy *elem)
Writes Tx message to message RAM.
uint32_t pxe
Definition: MCAN.h:674
uint32_t MCAN_ErrCode
Enum to represent M_CAN Error Code.
Definition: MCAN.h:367
uint32_t MCAN_getTxBufReqPend(void)
Returns Tx Buffer Request Pending status.
uint32_t id
Definition: MCAN.h:949
uint32_t sfid2
Definition: MCAN.h:1188
uint32_t brsEnable
Definition: MCAN.h:525
uint32_t rtr
Definition: MCAN.h:951
uint8_t dlc
Definition: MCAN.h:1023
MCAN_ComState act
Definition: MCAN.h:634
uint32_t fdf
Definition: MCAN.h:930
Structure for MCAN Extended Message ID Filter Element.
Definition: MCAN.h:1213
void MCAN_readRxMsg(MCAN_MemType memType, uint32_t num, MCAN_RxBufElement *elem)
Reads received message from message RAM.
int_fast16_t MCAN_setRxFifoAck(MCAN_RxFifoNum fifoNum, uint32_t idx)
Sets Rx FIFO Acknowledgement.
uint32_t dlc
Definition: MCAN.h:966
uint32_t getIdx
Definition: MCAN.h:856
MCAN_OperationMode MCAN_getOpMode(void)
Returns M_CAN controller mode of operation.
uint32_t fdf
Definition: MCAN.h:977
void MCAN_readRxMsgNoCpy(MCAN_MemType memType, uint32_t num, MCAN_RxBufElementNoCpy *elem)
Reads received message from message RAM.
Structure for MCAN High Priority Message.
Definition: MCAN.h:796
void MCAN_setOpMode(MCAN_OperationMode mode)
Sets M_CAN controller mode of operation.
uint8_t fdf
Definition: MCAN.h:1085
uint32_t tdcf
Definition: MCAN.h:416
int_fast16_t MCAN_setBitTime(const MCAN_BitTimingParams *bitTiming)
Sets M_CAN controller bit timings.
uint32_t rbrs
Definition: MCAN.h:663
uint32_t txEventFifoSize
Definition: MCAN.h:761
uint32_t esi
Definition: MCAN.h:961
void MCAN_setTxBufAddReq(uint32_t bufIdx)
Sets Tx Buffer Add Request.
uint32_t rxFifo0StartAddr
Definition: MCAN.h:716
uint16_t MCAN_getTimestampCounter(void)
Returns the 16-bit timestamp counter value.
uint32_t sft
Definition: MCAN.h:1174
uint8_t esi
Definition: MCAN.h:1018
void MCAN_setIntLineSel(uint32_t intMask, MCAN_IntLineNum lineNum)
Sets interrupt line select.
uint16_t txts
Definition: MCAN.h:1110
int_fast16_t MCAN_config(const MCAN_ConfigParams *config)
Configures M_CAN controller.
uint32_t xtd
Definition: MCAN.h:909
uint32_t asmEnable
Definition: MCAN.h:569
uint32_t nomTimeSeg2
Definition: MCAN.h:453
uint32_t xidFilterListSize
Definition: MCAN.h:710
uint32_t recErrCnt
Definition: MCAN.h:614
uint32_t msgLost
Definition: MCAN.h:845
uint32_t tsPrescaler
Definition: MCAN.h:575
uint32_t txFifoQSize
Definition: MCAN.h:779
uint32_t MCAN_getTxBufTransmissionStatus(void)
Returns Tx Buffer Transmission Occurred status.
uint32_t rxBufStartAddr
Definition: MCAN.h:750
Structure for MCAN error logging counters status.
Definition: MCAN.h:610
void MCAN_writeReg(uint32_t offset, uint32_t value)
uint32_t efid1
Definition: MCAN.h:1237
uint32_t rxFifo1StartAddr
Definition: MCAN.h:733
uint32_t brs
Definition: MCAN.h:972
int_fast16_t MCAN_init(const MCAN_InitParams *initParams)
Initializes M_CAN controller.
uint8_t fdf
Definition: MCAN.h:1138
uint32_t dataTimeSeg2
Definition: MCAN.h:474
uint8_t anmf
Definition: MCAN.h:1041
uint32_t rxFifo1ElemSize
Definition: MCAN.h:756
void MCAN_getNewDataStatus(MCAN_RxNewDataStatus *newDataStatus)
Reads 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:679
const uint8_t * data
Definition: MCAN.h:989
uint32_t putIdx
Definition: MCAN.h:878
uint32_t errPassive
Definition: MCAN.h:638
MCAN_ErrCode lastErrCode
Definition: MCAN.h:630
uint32_t MCAN_TSCCTimestampSel
Enum to represent the MCAN timestamp select.
Definition: MCAN.h:349
void MCAN_getBitTime(MCAN_BitTimingParams *bitTiming)
Reads the M_CAN controller bit timings.
uint32_t dataRatePrescaler
Definition: MCAN.h:463
void MCAN_getRxFifoStatus(MCAN_RxFifoNum fifoNum, MCAN_RxFifoStatus *fifoStatus)
Reads Rx FIFO status.
uint32_t id
Definition: MCAN.h:902
void MCAN_enableIntLine(MCAN_IntLineNum lineNum)
Enables selected interrupt line.
Structure for bit timing parameters.
Definition: MCAN.h:441
uint32_t id
Definition: MCAN.h:1004
uint32_t rxFifo0OpMode
Definition: MCAN.h:728
uint8_t rtr
Definition: MCAN.h:1112
uint32_t rxFifo1Watermark
Definition: MCAN.h:740
uint8_t rtr
Definition: MCAN.h:1008
void MCAN_writeTxMsg(uint32_t bufIdx, const MCAN_TxBufElement *elem)
Writes Tx message to message RAM.
uint8_t brs
Definition: MCAN.h:1133
uint32_t MCAN_getClkStopAck(void)
Returns clock stop acknowledgement for M_CAN controller.
Structure for MCAN Tx Event FIFO element.
Definition: MCAN.h:1106
uint8_t anmf
Definition: MCAN.h:1092
M_CAN controller v3.2.1 register definitions.
void MCAN_writeMsgRam(uint32_t offset, const uint8_t *src, size_t numBytes)
uint32_t txFifoQMode
Definition: MCAN.h:784
uint32_t rpStatus
Definition: MCAN.h:616
Structure for MCAN initialization parameters.
Definition: MCAN.h:518
MCAN_TimeOutSelect timeoutSelect
Definition: MCAN.h:586
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:628
MCAN_ErrCode dlec
Definition: MCAN.h:654
uint32_t eft
Definition: MCAN.h:1229
uint32_t dlc
Definition: MCAN.h:919
uint8_t mm
Definition: MCAN.h:1151
uint32_t canErrLogCnt
Definition: MCAN.h:621
uint32_t fillLvl
Definition: MCAN.h:874
uint32_t rtr
Definition: MCAN.h:904
Structure for MCAN Rx FIFO Status.
Definition: MCAN.h:832
void MCAN_cancelTxBufReq(uint32_t bufIdx)
Cancels a Tx Buffer Request.
uint32_t resi
Definition: MCAN.h:658
uint8_t brs
Definition: MCAN.h:1029
uint32_t warningStatus
Definition: MCAN.h:643
Structure for MCAN Tx FIFO/Queue Status.
Definition: MCAN.h:852
uint32_t bufIdx
Definition: MCAN.h:798
uint32_t MCAN_MemType
Enum to represent the MCAN Message RAM type.
Definition: MCAN.h:136
void MCAN_getProtocolStatus(MCAN_ProtocolStatus *protStatus)
Reads protocol status for M_CAN controller.
uint32_t freeLvl
Definition: MCAN.h:854
uint32_t efbi
Definition: MCAN.h:536
uint32_t MCAN_LpbkMode
Enum to select the MCAN Loopback mode.
Definition: MCAN.h:288
int_fast16_t MCAN_readTxEventFifo(MCAN_TxEventFifoElement *elem)
Reads next available element from Tx Event FIFO.
uint32_t MCAN_IntSrc
Enum for MCAN interrupts.
Definition: MCAN.h:216
uint32_t sidFilterStartAddr
Definition: MCAN.h:701
uint32_t wdcPreload
Definition: MCAN.h:553
MCAN_GFCNonMatching anfs
Definition: MCAN.h:509
uint32_t nomSynchJumpWidth
Definition: MCAN.h:458
uint32_t xidFilterStartAddr
Definition: MCAN.h:708
uint32_t transErrLogCnt
Definition: MCAN.h:612
uint32_t fifoFull
Definition: MCAN.h:862
uint32_t dataTimeSeg1
Definition: MCAN.h:469
void MCAN_getTxFifoQStatus(MCAN_TxFifoQStatus *fifoQStatus)
Reads Tx FIFO/Queue status.
uint8_t et
Definition: MCAN.h:1143
MCAN_GlobalFiltConfig filterConfig
Definition: MCAN.h:601
uint32_t rxFifo0ElemSize
Definition: MCAN.h:754
uint32_t timeoutCntEnable
Definition: MCAN.h:596
uint32_t msi
Definition: MCAN.h:802
uint32_t putIdx
Definition: MCAN.h:838
uint32_t rrfe
Definition: MCAN.h:495
Structure for MCAN new data flag for Rx buffer.
Definition: MCAN.h:821
uint8_t xtd
Definition: MCAN.h:1117
Structure for MCAN Global Filter Configuration parameters.
Definition: MCAN.h:493
uint32_t MCAN_RxFifoNum
Enum to represent the MCAN Rx FIFO number.
Definition: MCAN.h:152
uint32_t mm
Definition: MCAN.h:940
uint32_t fifoFull
Definition: MCAN.h:840
uint32_t rxFifo1Size
Definition: MCAN.h:735
uint32_t busOffStatus
Definition: MCAN.h:649
uint32_t efc
Definition: MCAN.h:935
uint32_t filterList
Definition: MCAN.h:811
void MCAN_disableLoopbackMode(void)
Disables Loopback Test Mode for M_CAN controller.
uint32_t MCAN_IntLineNum
Enum to select the MCAN interrupt lines.
Definition: MCAN.h:104
uint8_t rtr
Definition: MCAN.h:1059
uint32_t rfdf
Definition: MCAN.h:668
uint8_t * data
Definition: MCAN.h:1097
void MCAN_readMsgRam(uint8_t *dst, uint32_t offset, size_t numBytes)
Structure for MCAN Tx Buffer element.
Definition: MCAN.h:896
uint8_t xtd
Definition: MCAN.h:1013
uint32_t pxhDisable
Definition: MCAN.h:542
uint32_t txBufNum
Definition: MCAN.h:774
uint32_t mm
Definition: MCAN.h:987
void MCAN_disableInt(uint32_t intMask)
Disables interrupts.
uint32_t MCAN_GFCNonMatching
Enum to represent the MCAN general filter configuration for non-matching frames.
Definition: MCAN.h:331
MCAN_TDCConfig tdcConfig
Definition: MCAN.h:484
Structure for MCAN Tx Event FIFO Status.
Definition: MCAN.h:872
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.
uint32_t esi
Definition: MCAN.h:914
uint32_t rxFifo0Watermark
Definition: MCAN.h:723
uint32_t MCAN_getIntStatus(void)
Returns interrupt status.
uint32_t fdMode
Definition: MCAN.h:520
uint8_t esi
Definition: MCAN.h:1069
uint8_t esi
Definition: MCAN.h:1122
uint16_t rxts
Definition: MCAN.h:1057
uint32_t MCAN_ComState
Enum to represent MCAN communication state.
Definition: MCAN.h:311
uint32_t filterIdx
Definition: MCAN.h:809
Structure for MCAN configuration parameters.
Definition: MCAN.h:562
Structure for MCAN Rx Buffer element.
Definition: MCAN.h:998
uint32_t rxFifo1OpMode
Definition: MCAN.h:745
uint32_t txpEnable
Definition: MCAN.h:531
uint32_t sidFilterListSize
Definition: MCAN.h:703
uint8_t brs
Definition: MCAN.h:1080
uint32_t efc
Definition: MCAN.h:982
uint32_t MCAN_TimeOutSelect
Enum to represent the MCAN time-out counter configuration.
Definition: MCAN.h:196
void MCAN_getTxEventFifoStatus(MCAN_TxEventFifoStatus *fifoStatus)
Reads Tx Event FIFO status.
uint32_t putIdx
Definition: MCAN.h:860
uint16_t rxts
Definition: MCAN.h:1006
uint32_t MCAN_getTxBufCancellationStatus(void)
Returns Transmit Buffer Cancellation Finished status.
void MCAN_configMsgRam(const MCAN_MsgRamConfig *msgRamConfig)
Configures the various sections of Message RAM.
void MCAN_disableTxBufTransInt(uint32_t bufMask)
Disables Tx Buffer Transmission Interrupt.
Structure for MCAN Message RAM Configuration Parameters.
Definition: MCAN.h:699
uint32_t MCAN_readReg(uint32_t offset)
Structure for MCAN Transmitter Delay Compensation parameters.
Definition: MCAN.h:414
uint32_t rxBufElemSize
Definition: MCAN.h:752
uint32_t tdco
Definition: MCAN.h:424
void MCAN_addExtMsgIDFilter(uint32_t filtNum, const MCAN_ExtMsgIDFilterElement *elem)
Adds Extended Message ID Filter Element.
uint8_t fdf
Definition: MCAN.h:1034
uint32_t id
Definition: MCAN.h:1108