43 #ifndef ti_drivers_can_common_mcan__include 44 #define ti_drivers_can_common_mcan__include 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);
80 #define MCAN_STATUS_SUCCESS ((int_fast16_t)0) 88 #define MCAN_STATUS_ERROR ((int_fast16_t)-1) 91 #define MCAN_MAX_PAYLOAD_SIZE (64U) 94 #define MCAN_STD_ID_FILTER_ELEM_SIZE (4U) 97 #define MCAN_EXT_ID_FILTER_ELEM_SIZE (8U) 100 #define MCAN_TX_EVENT_ELEM_SIZE (8U) 103 #define MCAN_TX_RX_ELEMENT_HEADER_SIZE (8U) 115 #define MCAN_INTR_LINE_NUM_0 (0U) 117 #define MCAN_INTR_LINE_NUM_1 (1U) 131 #define MCAN_ID_TYPE_11_BIT (0U) 133 #define MCAN_ID_TYPE_29_BIT (1U) 147 #define MCAN_OPERATION_MODE_NORMAL (0U) 149 #define MCAN_OPERATION_MODE_SW_INIT (1U) 163 #define MCAN_MEM_TYPE_BUF (0U) 165 #define MCAN_MEM_TYPE_FIFO (1U) 179 #define MCAN_RX_FIFO_NUM_0 (0U) 181 #define MCAN_RX_FIFO_NUM_1 (1U) 195 #define MCAN_PIN_TYPE_RX (0U) 197 #define MCAN_PIN_TYPE_TX (1U) 211 #define MCAN_ELEM_SIZE_8BYTES (0U) 213 #define MCAN_ELEM_SIZE_12BYTES (1U) 215 #define MCAN_ELEM_SIZE_16BYTES (2U) 217 #define MCAN_ELEM_SIZE_20BYTES (3U) 219 #define MCAN_ELEM_SIZE_24BYTES (4U) 221 #define MCAN_ELEM_SIZE_32BYTES (5U) 223 #define MCAN_ELEM_SIZE_48BYTES (6U) 225 #define MCAN_ELEM_SIZE_64BYTES (7U) 239 #define MCAN_TIMEOUT_SELECT_CONT (0U) 241 #define MCAN_TIMEOUT_SELECT_TX_EVENT_FIFO (1U) 243 #define MCAN_TIMEOUT_SELECT_RX_FIFO0 (2U) 245 #define MCAN_TIMEOUT_SELECT_RX_FIFO1 (3U) 259 #define MCAN_INTR_SRC_RX_FIFO0_NEW_MSG (MCAN_IR_RF0N_MASK) 261 #define MCAN_INTR_SRC_RX_FIFO0_WATERMARK (MCAN_IR_RF0W_MASK) 263 #define MCAN_INTR_SRC_RX_FIFO0_FULL (MCAN_IR_RF0F_MASK) 265 #define MCAN_INTR_SRC_RX_FIFO0_MSG_LOST (MCAN_IR_RF0L_MASK) 267 #define MCAN_INTR_SRC_RX_FIFO1_NEW_MSG (MCAN_IR_RF1N_MASK) 269 #define MCAN_INTR_SRC_RX_FIFO1_WATERMARK (MCAN_IR_RF1W_MASK) 271 #define MCAN_INTR_SRC_RX_FIFO1_FULL (MCAN_IR_RF1F_MASK) 273 #define MCAN_INTR_SRC_RX_FIFO1_MSG_LOST (MCAN_IR_RF1L_MASK) 275 #define MCAN_INTR_SRC_HIGH_PRIO_MSG (MCAN_IR_HPM_MASK) 277 #define MCAN_INTR_SRC_TRANS_COMPLETE (MCAN_IR_TC_MASK) 279 #define MCAN_INTR_SRC_TRANS_CANCEL_FINISH (MCAN_IR_TCF_MASK) 281 #define MCAN_INTR_SRC_TX_FIFO_EMPTY (MCAN_IR_TFE_MASK) 283 #define MCAN_INTR_SRC_TX_EVT_FIFO_NEW_ENTRY (MCAN_IR_TEFN_MASK) 285 #define MCAN_INTR_SRC_TX_EVT_FIFO_WATERMARK (MCAN_IR_TEFW_MASK) 287 #define MCAN_INTR_SRC_TX_EVT_FIFO_FULL (MCAN_IR_TEFF_MASK) 289 #define MCAN_INTR_SRC_TX_EVT_FIFO_ELEM_LOST (MCAN_IR_TEFL_MASK) 291 #define MCAN_INTR_SRC_TIMESTAMP_WRAPAROUND (MCAN_IR_TSW_MASK) 293 #define MCAN_INTR_SRC_MSG_RAM_ACCESS_FAILURE (MCAN_IR_MRAF_MASK) 295 #define MCAN_INTR_SRC_TIMEOUT (MCAN_IR_TOO_MASK) 297 #define MCAN_INTR_SRC_DEDICATED_RX_BUFF_MSG (MCAN_IR_DRX_MASK) 299 #define MCAN_INTR_SRC_BIT_ERR_CORRECTED (MCAN_IR_BEC_MASK) 301 #define MCAN_INTR_SRC_BIT_ERR_UNCORRECTED (MCAN_IR_BEU_MASK) 303 #define MCAN_INTR_SRC_ERR_LOG_OVRFLW (MCAN_IR_ELO_MASK) 305 #define MCAN_INTR_SRC_ERR_PASSIVE (MCAN_IR_EP_MASK) 307 #define MCAN_INTR_SRC_WARNING_STATUS (MCAN_IR_EW_MASK) 309 #define MCAN_INTR_SRC_BUS_OFF_STATUS (MCAN_IR_BO_MASK) 311 #define MCAN_INTR_SRC_WATCHDOG (MCAN_IR_WDI_MASK) 313 #define MCAN_INTR_SRC_PROTOCOL_ERR_ARB (MCAN_IR_PEA_MASK) 315 #define MCAN_INTR_SRC_PROTOCOL_ERR_DATA (MCAN_IR_PED_MASK) 317 #define MCAN_INTR_SRC_RES_ADDR_ACCESS (MCAN_IR_ARA_MASK) 331 #define MCAN_ECC_ERR_TYPE_SEC (0U) 333 #define MCAN_ECC_ERR_TYPE_DED (1U) 347 #define MCAN_LPBK_MODE_INTERNAL (0U) 352 #define MCAN_LPBK_MODE_EXTERNAL (1U) 370 #define MCAN_COM_STATE_SYNCHRONIZING (0U) 372 #define MCAN_COM_STATE_IDLE (1U) 374 #define MCAN_COM_STATE_RECEIVER (2U) 376 #define MCAN_COM_STATE_TRANSMITTER (3U) 390 #define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO0 (0U) 392 #define MCAN_GFC_NM_ACCEPT_INTO_RXFIFO1 (1U) 394 #define MCAN_GFC_NM_REJECT (3U) 408 #define MCAN_TSCC_COUNTER_ALWAYS_0 (0U) 410 #define MCAN_TSCC_COUNTER_USE_TCP (1U) 412 #define MCAN_TSCC_COUNTER_EXTERNAL (2U) 426 #define MCAN_ERR_CODE_NO_ERROR (0U) 430 #define MCAN_ERR_CODE_STUFF_ERROR (1U) 434 #define MCAN_ERR_CODE_FORM_ERROR (2U) 436 #define MCAN_ERR_CODE_ACK_ERROR (3U) 440 #define MCAN_ERR_CODE_BIT1_ERROR (4U) 446 #define MCAN_ERR_CODE_BIT0_ERROR (5U) 456 #define MCAN_ERR_CODE_CRC_ERROR (6U) 461 #define MCAN_ERR_CODE_NO_CHANGE (7U) uint32_t id
Definition: MCAN.h:1106
uint8_t dlc
Definition: MCAN.h:1125
uint8_t fidx
Definition: MCAN.h:1141
uint32_t statusLow
Definition: MCAN.h:872
uint8_t xtd
Definition: MCAN.h:1115
Structure for MCAN Tx Buffer element which takes data as a pointer. Please note that as the data fiel...
Definition: MCAN.h:998
Structure for MCAN Rx Buffer element which takes data as a pointer. Please note that as the data fiel...
Definition: MCAN.h:1104
void MCAN_setIntrEnable(uint32_t intrMask, uint32_t enable)
Enables/disables interrupts.
uint32_t rrfs
Definition: MCAN.h:542
uint32_t rxFIFO1StartAddr
Definition: MCAN.h:782
void MCAN_setOpMode(uint32_t mode)
Sets MCAN module mode of operation.
uint32_t efid2
Definition: MCAN.h:1245
uint32_t sfec
Definition: MCAN.h:1215
uint32_t dlec
Definition: MCAN.h:703
uint32_t darEnable
Definition: MCAN.h:589
uint32_t dataSynchJumpWidth
Definition: MCAN.h:510
uint32_t monEnable
Definition: MCAN.h:615
uint32_t efec
Definition: MCAN.h:1247
uint32_t MCAN_getIntrStatus(void)
Returns interrupt status.
uint32_t timeoutPreload
Definition: MCAN.h:639
uint32_t sfid1
Definition: MCAN.h:1213
uint32_t id
Definition: MCAN.h:1159
uint32_t brs
Definition: MCAN.h:974
uint32_t xtd
Definition: MCAN.h:1007
uint32_t nomTimeSeg1
Definition: MCAN.h:480
Structure for MCAN Standard Message ID Filter Element.
Definition: MCAN.h:1209
uint8_t fidx
Definition: MCAN.h:1090
uint32_t statusHigh
Definition: MCAN.h:874
uint32_t fillLvl
Definition: MCAN.h:883
void MCAN_writeTxMsgNoCpy(uint32_t bufIdx, const MCAN_TxBufElementNoCpy *elem)
Writes Tx message to message RAM.
uint32_t pxe
Definition: MCAN.h:723
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:424
uint32_t MCAN_PinType
Enum to represent the MCAN pin type.
Definition: MCAN.h:193
uint8_t xtd
Definition: MCAN.h:1168
uint32_t fillLvl
Definition: MCAN.h:923
uint32_t MCAN_IdType
Enum to represent the MCAN Identifier Type.
Definition: MCAN.h:129
uint32_t MCAN_getTxBufReqPend(void)
Returns Tx Buffer Request Pending status.
uint32_t id
Definition: MCAN.h:1000
uint32_t lastErrCode
Definition: MCAN.h:679
uint32_t sfid2
Definition: MCAN.h:1211
uint32_t brsEnable
Definition: MCAN.h:567
uint32_t rtr
Definition: MCAN.h:1002
uint8_t dlc
Definition: MCAN.h:1074
void MCAN_readMsgRAM(uint8_t *dst, uint32_t offset, size_t numBytes)
uint32_t fdf
Definition: MCAN.h:979
Structure for MCAN Extended Message ID Filter Element.
Definition: MCAN.h:1241
uint32_t eleLost
Definition: MCAN.h:934
uint32_t sidFilterListSize
Definition: MCAN.h:752
Structure for MCAN Rx FIFO Status.
Definition: MCAN.h:881
uint32_t dlc
Definition: MCAN.h:1017
uint32_t fdf
Definition: MCAN.h:1028
uint32_t txBufElemSize
Definition: MCAN.h:838
Structure for MCAN High Priority Message.
Definition: MCAN.h:845
uint8_t fdf
Definition: MCAN.h:1136
uint32_t tdcf
Definition: MCAN.h:522
int_fast16_t MCAN_setBitTime(const MCAN_BitTimingParams *bitTiming)
Configures bit timings for MCAN module.
uint32_t rbrs
Definition: MCAN.h:712
uint32_t esi
Definition: MCAN.h:1012
uint32_t txFIFOQSize
Definition: MCAN.h:828
uint32_t rxBufStartAddr
Definition: MCAN.h:799
void MCAN_setTxBufAddReq(uint32_t bufIdx)
Sets Tx Buffer Add Request.
void MCAN_setTxBufTransIntrEnable(uint32_t bufMask, uint32_t enable)
Enables/disables Tx Buffer Transmission Interrupt.
uint32_t sft
Definition: MCAN.h:1229
uint8_t et
Definition: MCAN.h:1194
void MCAN_readRxMsg(uint32_t memType, uint32_t num, MCAN_RxBufElement *elem)
Reads received message from message RAM.
uint8_t esi
Definition: MCAN.h:1069
uint32_t fifoFull
Definition: MCAN.h:911
uint32_t rxFIFO1OpMode
Definition: MCAN.h:794
int_fast16_t MCAN_config(const MCAN_ConfigParams *config)
Configures MCAN module.
uint8_t fdf
Definition: MCAN.h:1189
uint32_t xtd
Definition: MCAN.h:958
uint32_t asmEnable
Definition: MCAN.h:620
uint32_t txEventFIFOWatermark
Definition: MCAN.h:815
uint32_t nomTimeSeg2
Definition: MCAN.h:485
uint32_t putIdx
Definition: MCAN.h:909
uint32_t recErrCnt
Definition: MCAN.h:663
uint32_t txEventFIFOStartAddr
Definition: MCAN.h:808
uint8_t rtr
Definition: MCAN.h:1163
uint32_t MCAN_getTxBufTransmissionStatus(void)
Returns Tx Buffer Transmission Occurred status.
uint32_t tsPrescalar
Definition: MCAN.h:626
Structure for MCAN error logging counters status.
Definition: MCAN.h:659
void MCAN_writeReg(uint32_t offset, uint32_t value)
uint32_t efid1
Definition: MCAN.h:1243
uint32_t timeoutSelect
Definition: MCAN.h:635
uint32_t dataRatePrescalar
Definition: MCAN.h:495
uint32_t brs
Definition: MCAN.h:1023
int_fast16_t MCAN_init(const MCAN_InitParams *initParams)
Initializes MCAN module.
uint32_t dataTimeSeg2
Definition: MCAN.h:505
uint8_t anmf
Definition: MCAN.h:1092
uint8_t esi
Definition: MCAN.h:1173
void MCAN_getNewDataStatus(MCAN_RxNewDataStatus *newDataStatus)
Returns New Data Message Status.
void MCAN_clearNewDataStatus(const MCAN_RxNewDataStatus *newDataStatus)
Clears New Data Message Status.
uint32_t tdcv
Definition: MCAN.h:728
const uint8_t * data
Definition: MCAN.h:1040
uint32_t errPassive
Definition: MCAN.h:687
uint32_t freeLvl
Definition: MCAN.h:903
uint32_t MCAN_TSCCTimestampSel
Enum to represent the MCAN timestamp select.
Definition: MCAN.h:406
uint32_t getIdx
Definition: MCAN.h:905
uint32_t MCAN_ECCErrType
Enum to represent the ECC Error Types.
Definition: MCAN.h:329
uint32_t id
Definition: MCAN.h:951
Structure for bit timing calculation. Bit timing related to data phase will be valid only if CAN-FD m...
Definition: MCAN.h:473
uint32_t id
Definition: MCAN.h:1055
uint8_t rtr
Definition: MCAN.h:1059
uint32_t putIdx
Definition: MCAN.h:927
void MCAN_writeTxMsg(uint32_t bufIdx, const MCAN_TxBufElement *elem)
Writes Tx message to message RAM.
void MCAN_setIntrLineEnable(uint32_t lineNum, uint32_t enable)
Enables/disables selected interrupt line.
uint32_t rxFIFO1Watermark
Definition: MCAN.h:789
uint32_t fifoFull
Definition: MCAN.h:929
uint32_t MCAN_getClkStopAck(void)
Returns clock stop acknowledgement for MCAN module.
uint8_t anmf
Definition: MCAN.h:1143
M_CAN controller v3.2.1 register definitions.
uint32_t rxFIFO0Watermark
Definition: MCAN.h:772
uint32_t rpStatus
Definition: MCAN.h:665
Structure for MCAN initialization parameters.
Definition: MCAN.h:560
uint32_t MCAN_OperationMode
Enum to represent the MCAN mode of operation.
Definition: MCAN.h:145
uint32_t MCAN_ElemSize
Enum to represent FIFO/Buffer element Size.
Definition: MCAN.h:209
Structure for MCAN protocol status.
Definition: MCAN.h:677
uint32_t eft
Definition: MCAN.h:1261
uint32_t dlc
Definition: MCAN.h:968
uint32_t rxFIFO1ElemSize
Definition: MCAN.h:805
uint32_t canErrLogCnt
Definition: MCAN.h:670
uint32_t rtr
Definition: MCAN.h:953
void MCAN_cancelTxBufReq(uint32_t bufIdx)
Cancels a Tx Buffer Request.
uint32_t resi
Definition: MCAN.h:707
uint8_t brs
Definition: MCAN.h:1080
uint32_t warningStatus
Definition: MCAN.h:692
uint32_t rxFIFO0OpMode
Definition: MCAN.h:777
uint32_t nomRatePrescalar
Definition: MCAN.h:475
uint32_t bufIdx
Definition: MCAN.h:847
uint32_t MCAN_MemType
Enum to represent the MCAN Message RAM type.
Definition: MCAN.h:161
void MCAN_getProtocolStatus(MCAN_ProtocolStatus *protStatus)
Returns protocol status for MCAN module.
uint32_t efbi
Definition: MCAN.h:578
uint32_t MCAN_LpbkMode
Enum to select the MCAN Loopback mode.
Definition: MCAN.h:345
uint32_t sidFilterStartAddr
Definition: MCAN.h:750
int_fast16_t MCAN_setRxFIFOAck(uint32_t fifoNum, uint32_t idx)
Sets Rx FIFO Acknowledgement.
uint32_t getIdx
Definition: MCAN.h:925
uint8_t dlc
Definition: MCAN.h:1178
void MCAN_configMsgRAM(const MCAN_MsgRAMConfig *msgRAMConfig)
Configures the various sections of Message RAM.
uint32_t wdcPreload
Definition: MCAN.h:595
uint8_t mm
Definition: MCAN.h:1202
uint8_t brs
Definition: MCAN.h:1184
uint32_t rxFIFO0Size
Definition: MCAN.h:767
uint32_t nomSynchJumpWidth
Definition: MCAN.h:490
uint32_t tdcEnable
Definition: MCAN.h:603
uint32_t msgLost
Definition: MCAN.h:894
uint32_t transErrLogCnt
Definition: MCAN.h:661
uint32_t anfs
Definition: MCAN.h:551
void MCAN_writeMsgRAM(uint32_t offset, const uint8_t *src, size_t numBytes)
uint32_t dataTimeSeg1
Definition: MCAN.h:500
uint32_t anfe
Definition: MCAN.h:547
uint32_t tsSelect
Definition: MCAN.h:631
uint16_t txts
Definition: MCAN.h:1161
uint32_t txBufStartAddr
Definition: MCAN.h:821
MCAN_GlobalFiltConfig filterConfig
Definition: MCAN.h:650
uint32_t MCAN_IntrSrc
Enum for MCAN interrupts.
Definition: MCAN.h:257
uint32_t timeoutCntEnable
Definition: MCAN.h:645
uint32_t txFIFOQMode
Definition: MCAN.h:833
uint32_t xidFilterStartAddr
Definition: MCAN.h:757
uint32_t msi
Definition: MCAN.h:851
uint32_t xidFilterListSize
Definition: MCAN.h:759
void MCAN_setIntrLineSel(uint32_t intrMask, uint32_t lineNum)
Sets interrupt line select.
uint32_t rrfe
Definition: MCAN.h:537
void MCAN_clearIntrStatus(uint32_t intrMask)
Clears the interrupt status.
Structure for MCAN new data flag for Rx buffer.
Definition: MCAN.h:870
Structure for MCAN Global Filter Configuration parameters.
Definition: MCAN.h:535
Structure for MCAN Tx Event FIFO Status.
Definition: MCAN.h:921
uint32_t mm
Definition: MCAN.h:989
uint32_t busOffStatus
Definition: MCAN.h:698
uint32_t efc
Definition: MCAN.h:984
MCAN_TDCConfig tdcConfig
Definition: MCAN.h:599
uint32_t txEventFIFOSize
Definition: MCAN.h:810
uint32_t filterList
Definition: MCAN.h:860
void MCAN_disableLoopbackMode(void)
Disables Loopback Test Mode for MCAN module.
uint8_t rtr
Definition: MCAN.h:1110
uint32_t rfdf
Definition: MCAN.h:717
uint32_t rxFIFO1Size
Definition: MCAN.h:784
uint8_t * data
Definition: MCAN.h:1148
Structure for MCAN Tx Buffer element.
Definition: MCAN.h:945
uint8_t xtd
Definition: MCAN.h:1064
uint32_t MCAN_IntrLineNum
Enum to select the MCAN interrupt lines.
Definition: MCAN.h:113
uint32_t pxhDisable
Definition: MCAN.h:584
uint32_t rxBufElemSize
Definition: MCAN.h:801
uint32_t mm
Definition: MCAN.h:1038
uint32_t txBufNum
Definition: MCAN.h:823
Structure for MCAN Tx FIFO/Queue Status.
Definition: MCAN.h:901
uint32_t rxFIFO0ElemSize
Definition: MCAN.h:803
void MCAN_readRxMsgNoCpy(uint32_t memType, uint32_t num, MCAN_RxBufElementNoCpy *elem)
Reads received message from message RAM.
uint32_t rxFIFO0StartAddr
Definition: MCAN.h:765
uint32_t MCAN_getOpMode(void)
Returns MCAN module mode of operation.
uint32_t putIdx
Definition: MCAN.h:887
uint32_t MCAN_GFCNonMatching
Enum to represent the MCAN general filter configuration for non-matching frames.
Definition: MCAN.h:388
uint32_t MCAN_getMRAMOffset(void)
#define MCAN_MAX_PAYLOAD_SIZE
Maximum payload supported by CAN-FD protocol in bytes.
Definition: MCAN.h:91
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:1157
uint32_t esi
Definition: MCAN.h:963
void MCAN_readTxEventFIFO(MCAN_TxEventFIFOElement *txEventElem)
Reads message from Tx Event FIFO.
uint32_t fdMode
Definition: MCAN.h:562
uint8_t esi
Definition: MCAN.h:1120
uint16_t rxts
Definition: MCAN.h:1108
void MCAN_enableLoopbackMode(uint32_t lpbkMode)
Enables Loopback Test Mode for MCAN module.
uint32_t MCAN_ComState
Enum to represent MCAN's communication state.
Definition: MCAN.h:368
uint32_t filterIdx
Definition: MCAN.h:858
Structure for MCAN configuration parameters.
Definition: MCAN.h:613
Structure for MCAN Rx Buffer element.
Definition: MCAN.h:1049
uint32_t txpEnable
Definition: MCAN.h:573
uint8_t brs
Definition: MCAN.h:1131
uint32_t efc
Definition: MCAN.h:1033
uint32_t MCAN_TimeOutSelect
Enum to represent the MCAN time-out counter configuration.
Definition: MCAN.h:237
uint16_t rxts
Definition: MCAN.h:1057
uint32_t MCAN_getTxBufCancellationStatus(void)
Returns Transmit Buffer Cancellation Finished status.
uint32_t getIdx
Definition: MCAN.h:885
uint32_t MCAN_readReg(uint32_t offset)
Structure for MCAN Message RAM Configuration Parameters. Message RAM can contain following sections: ...
Definition: MCAN.h:748
Structure for MCAN Transmitter Delay Compensation parameters.
Definition: MCAN.h:520
uint32_t fifoFull
Definition: MCAN.h:889
uint32_t tdco
Definition: MCAN.h:526
uint32_t act
Definition: MCAN.h:683
void MCAN_addExtMsgIDFilter(uint32_t filtNum, const MCAN_ExtMsgIDFilterElement *elem)
Adds Extended Message ID Filter Element.
uint8_t fdf
Definition: MCAN.h:1085
uint32_t MCAN_RxFIFONum
Enum to represent the MCAN Rx FIFO number.
Definition: MCAN.h:177
void MCAN_getRxFIFOStatus(uint32_t fifoNum, MCAN_RxFIFOStatus *fifoStatus)
Reads Rx FIFO status.